<?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>230667</bug_id>
          
          <creation_ts>2021-09-22 21:55:10 -0700</creation_ts>
          <short_desc>Promote _WKExperimentalFeature to API</short_desc>
          <delta_ts>2021-09-23 10:26:02 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796362</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-22 21:55:10 -0700</bug_when>
    <thetext>Promote _WKExperimentalFeature to API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796364</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-22 21:56:57 -0700</bug_when>
    <thetext>&lt;rdar://83255503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796370</commentid>
    <comment_count>2</comment_count>
      <attachid>439012</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-22 22:31:57 -0700</bug_when>
    <thetext>Created attachment 439012
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796371</commentid>
    <comment_count>3</comment_count>
      <attachid>439013</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-22 22:36:47 -0700</bug_when>
    <thetext>Created attachment 439013
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796372</commentid>
    <comment_count>4</comment_count>
      <attachid>439014</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-22 23:06:33 -0700</bug_when>
    <thetext>Created attachment 439014
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796553</commentid>
    <comment_count>5</comment_count>
      <attachid>439059</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-23 10:26:02 -0700</bug_when>
    <thetext>Created attachment 439059
WIP patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439012</attachid>
            <date>2021-09-22 22:31:57 -0700</date>
            <delta_ts>2021-09-22 22:36:44 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230667-20210922223156.patch</filename>
            <type>text/plain</type>
            <size>112832</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhNGE3ZGJmOGMxNmRhYjk1
N2IzNjViZjQ1ZjEyZGU0N2Q0NjFjYTQuLmNjNmI3NWViNmU4MTI4OGUyMjA4ZWZkMDUxMDY2NmZl
MmE4ZjQ3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9Db2NvYS9BUElPYmplY3QubW06CisgICAgICAgIChBUEk6Ok9iamVj
dDo6bmV3T2JqZWN0KToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW06
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5tbS4KKyAgICAgICAgKC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIGRlYWxs
b2NdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIG5hbWVdKToKKyAgICAgICAg
KC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIGtleV0pOgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRh
bEZlYXR1cmUgZGV0YWlsc10pOgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGVm
YXVsdFZhbHVlXSk6CisgICAgICAgICgtW1dLRXhwZXJpbWVudGFsRmVhdHVyZSBpc0hpZGRlbl0p
OgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgX2FwaU9iamVjdF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmlt
ZW50YWxGZWF0dXJlSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgrW1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKToK
KyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJl
Ol0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHNldEVuYWJsZWQ6Zm9yRXhwZXJpbWVudGFs
RmVhdHVyZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfaXNFbmFibGVkRm9yRXhwZXJp
bWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpm
b3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Hcm91
cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIHR5cGVk
IGlkZW50aWZpZXIgZm9yIFdlYlNvY2tldENoYW5uZWwgaWRlbnRpZmllcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBkMDc5OWI1ZmFkODZjN2I1MDRjMWU3M2RlOTAxNjgwZjJmNzQ4
OTk2Li5hMjFjYTNmYmI0Y2JhZjhhYjg2Yjc0YzMyYzFlNDI4OTEzYmIxZDI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWxGZWF0dXJlcy5tbS5lcmI6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaDoKKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJlZigqdGhpcykgLyBtYWtlUmVmUHRyKHRoaXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KaW5kZXggMWQ3YjhkZDJlOGM4
MjJkZmI3ZmU2MzkwMzAxNzI3Y2U1ZWQ0ZDU2Yi4uOThlN2MzMGU4ZTYzMTAwZTExYjU2NzgyMjAx
NTU5MzEwN2ZiODU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiV0tDb250ZW50V29ybGRJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRG93
bmxvYWRJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSFRUUENvb2tp
ZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgpAQCAtNzQsNyArNzUsNiBA
QAogI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dL
Q29udGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0N1c3RvbUhlYWRl
ckZpZWxkc0ludGVybmFsLmgiCi0jaW1wb3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0Zy
YW1lVHJlZU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLR2VvbG9jYXRpb25Qb3NpdGlvbklu
dGVybmFsLmgiCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCogT2JqZWN0OjpuZXdPYmplY3Qoc2l6
ZV90IHNpemUsIFR5cGUgdHlwZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6OkV4
cGVyaW1lbnRhbEZlYXR1cmU6Ci0gICAgICAgIHdyYXBwZXIgPSBbX1dLRXhwZXJpbWVudGFsRmVh
dHVyZSBhbGxvY107CisgICAgICAgIHdyYXBwZXIgPSBbV0tFeHBlcmltZW50YWxGZWF0dXJlIGFs
bG9jXTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6OkVycm9yOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDExZTcyOTY4NGU0YTJhZGYwYjVjYjg5M2FkNjc5MWQ5MDA1ODI2MDUu
Ljk1NzgwMWFjNGZkNGU3ODRlNzc4NzgyNzg2MDI4MTliNzU1MmJjNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTI4MCw3ICsyODAsNiBAQCBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0N1c3Rv
bUhlYWRlckZpZWxkcy5tbSBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxv
YWQubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tbQotVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zy
YW1lVHJlZU5vZGUubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlv
bi5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMyOCw2ICszMjcs
NyBAQCBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLm1tCiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Rvd25sb2FkLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IubW0KK1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
RmluZENvbmZpZ3VyYXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGaW5kUmVzdWx0Lm1t
CiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2YxN2Q3Njk5Yjk1MmIxYzhlNjhhNTIyY2Q4M2RlYmIwMDk4NDAxYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpCitAaW50ZXJmYWNlIFdLRXhwZXJpbWVudGFsRmVhdHVyZSA6IE5TT2JqZWN0CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpkZXRhaWxzOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGRlZmF1bHRWYWx1ZTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzSGlkZGVuKSBCT09MIGhpZGRlbjsKKworQGVuZAor
CitAaW50ZXJmYWNlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgOiBXS0V4cGVyaW1lbnRhbEZlYXR1
cmUKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNTMwZDM4MTI0ZGE0MzYw
M2JjZTQ5YjU1NGI3ZTdkOGMyMWNiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCkBAIC0wLDAgKzEs
ODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tF
eHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgorCitAaW1wbGVtZW50YXRpb24gV0tFeHBlcmltZW50YWxGZWF0dXJlCisK
Ky0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0
ZU9uTWFpblJ1bkxvb3AoV0tFeHBlcmltZW50YWxGZWF0dXJlLmNsYXNzLCBzZWxmKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZXhwZXJpbWVudGFsRmVhdHVyZS0+QVBJOjpFeHBlcmltZW50YWxG
ZWF0dXJlOjp+RXhwZXJpbWVudGFsRmVhdHVyZSgpOworCisgICAgW3N1cGVyIGRlYWxsb2NdOwor
fQorCistIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCit7CisgICAgcmV0dXJuIFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsgbmFtZSA9ICVAOyBrZXkgPSAlQDsgZGVmYXVsdFZh
bHVlID0gJXMgPiIsIE5TU3RyaW5nRnJvbUNsYXNzKHNlbGYuY2xhc3MpLCBzZWxmLCBzZWxmLm5h
bWUsIHNlbGYua2V5LCBzZWxmLmRlZmF1bHRWYWx1ZSA/ICJvbiIgOiAib2ZmIl07Cit9CisKKy0g
KE5TU3RyaW5nICopbmFtZQoreworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5uYW1l
KCk7Cit9CisKKy0gKE5TU3RyaW5nICopa2V5Cit7CisgICAgcmV0dXJuIGV4cGVyaW1lbnRhbEZl
YXR1cmUtPmtleSgpOworfQorCistIChOU1N0cmluZyAqKWRldGFpbHMKK3sKKyAgICByZXR1cm4g
ZXhwZXJpbWVudGFsRmVhdHVyZS0+ZGV0YWlscygpOworfQorCistIChCT09MKWRlZmF1bHRWYWx1
ZQoreworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5kZWZhdWx0VmFsdWUoKTsKK30K
KworLSAoQk9PTClpc0hpZGRlbgoreworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5p
c0hpZGRlbigpOworfQorCisjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sKKyAgICByZXR1cm4gKmV4cGVy
aW1lbnRhbEZlYXR1cmU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjNiMDI5ODRjYjZhMzc3YmZiYTU4Y2I1OTFhODhkNjY0MjYwY2JmYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4
cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgIkFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCIKKyNpbXBvcnQgIldLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oIgorI2ltcG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3RlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpFeHBlcmltZW50
YWxGZWF0dXJlPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gV0tFeHBlcmltZW50YWxGZWF0
dXJlOworfTsKKworfQorCitAaW50ZXJmYWNlIFdLRXhwZXJpbWVudGFsRmVhdHVyZSAoKSA8V0tP
YmplY3Q+IHsKK0BwYWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RXhwZXJpbWVu
dGFsRmVhdHVyZT4gZXhwZXJpbWVudGFsRmVhdHVyZTsKK30KK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGUwY2UxN2Jk
MzZmMjUzMjdhNzBkODczNTkxMGExYjZhNzRlNjNjM2EuLjZiMThhMjY3NGIwMWZjY2IyMDkyZGEz
YWJmNTdiMzdkNjQ3Y2Q1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0IDxDb3Jl
R3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KIAogLyohIEEgV0tQcmVmZXJlbmNlcyBvYmplY3QgZW5jYXBz
dWxhdGVzIHRoZSBwcmVmZXJlbmNlIHNldHRpbmdzIGZvciBhIHdlYgpAQCAtNjQsNiArNjUsMTMg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAqLwogQHByb3Bl
cnR5IChub25hdG9taWMsIGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJsZWQpIEJPT0wgdGV4
dEludGVyYWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjMpLCBpb3MoMTQu
NSkpOwogCisvKiEKKyAqLworKyAoTlNBcnJheTxXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKill
eHBlcmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworCistIChCT09MKWlzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6KFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0RW5hYmxlZDooQk9P
TCl2YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilm
ZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKIEBlbmQKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
CmluZGV4IDcxNjRmODg2MDA3OGUyMDcxYWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjA4MGZkYjAx
NmU2ZmJiMTc3ZjZkNmMwOGJlYWRhNTYzMmUwMWQ1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0yOCw5ICsyOCw5IEBA
CiAKICNpbXBvcnQgIkFQSUFycmF5LmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5o
IgorI2ltcG9ydCAiV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
TlNBcnJheS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKLSNpbXBvcnQgIl9XS0V4cGVy
aW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMTUzLDYgKzE1MywyMiBAQCBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcHJlZmVyZW5jZXMtPnNldFRleHRJbnRlcmFjdGlv
bkVuYWJsZWQodGV4dEludGVyYWN0aW9uRW5hYmxlZCk7CiB9CiAKKysgKE5TQXJyYXk8V0tFeHBl
cmltZW50YWxGZWF0dXJlICo+ICopZXhwZXJpbWVudGFsRmVhdHVyZXMKK3sKKyAgICBhdXRvIGZl
YXR1cmVzID0gV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6ZXhwZXJpbWVudGFsRmVhdHVyZXMoKTsK
KyAgICByZXR1cm4gd3JhcHBlcihBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShmZWF0dXJlcykp
KTsKK30KKworLSAoQk9PTClpc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+aXNG
ZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSk7Cit9CisKKy0gKHZv
aWQpc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRGZWF0dXJl
RW5hYmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSwgdmFsdWUpOworfQorCiAjcHJh
Z21hIG1hcmsgT1MgWC1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC01
NjQsMTQgKzU4MCwxNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdl
YkNvcmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiAgICAgW3NlbGYgX3NldEVuYWJs
ZWQ6dmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKIH0KIAorLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG9uY2UgU2FmYXJpIGhhcyBhZG9wdGVkIHRoZSBuZXcgQVBJLgogLSAoQk9P
TClfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqKWZlYXR1cmUKIHsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5pc0ZlYXR1cmVFbmFibGVk
KCpmZWF0dXJlLT5fZXhwZXJpbWVudGFsRmVhdHVyZSk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNl
cy0+aXNGZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSk7CiB9CiAK
Ky8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFyaSBoYXMgYWRvcHRlZCB0aGUgbmV3IEFQ
SS4KIC0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUKIHsKLSAgICBfcHJlZmVyZW5jZXMt
PnNldEZlYXR1cmVFbmFibGVkKCpmZWF0dXJlLT5fZXhwZXJpbWVudGFsRmVhdHVyZSwgdmFsdWUp
OworICAgIF9wcmVmZXJlbmNlcy0+c2V0RmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1l
bnRhbEZlYXR1cmUsIHZhbHVlKTsKIH0KIAogLSAoQk9PTClfYXBwbGVQYXlDYXBhYmlsaXR5RGlz
Y2xvc3VyZUFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCmluZGV4IDFkNDRmN2IzZjc2YmYyOWRh
MTU4MjZmMzU5YWQxZjBmZTAwNDY4Y2QuLjA3MzNhMDFhMjdkZTVkOGY2M2U4OGJlYzE5MzIzMzBk
ZGI0OTBhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFeHBlcmltZW50YWxGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTcgKzIzLDQgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9u
Lmg+Ci0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi1XS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCi1AaW50ZXJmYWNlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgOiBOU09iamVjdAotCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNv
cHkpIE5TU3RyaW5nICprZXk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICpuYW1lOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqZGV0YWlsczsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBk
ZWZhdWx0VmFsdWU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0hp
ZGRlbikgQk9PTCBoaWRkZW47Ci0KLUBlbmQKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVhdHVy
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzMwYjNmOTI1OTY1ODM0NWMwY2M4Mjc2ZDNlOGYzZTQzNzFkY2U1Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDgw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0V4
cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIgotCi0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVP
YmpDRXh0cmFzLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBfV0tFeHBlcmltZW50YWxGZWF0dXJlCi0K
LS0gKHZvaWQpZGVhbGxvYwotewotICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0
ZU9uTWFpblJ1bkxvb3AoX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5jbGFzcywgc2VsZikpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIF9leHBlcmltZW50YWxGZWF0dXJlLT5BUEk6OkV4cGVyaW1lbnRh
bEZlYXR1cmU6On5FeHBlcmltZW50YWxGZWF0dXJlKCk7Ci0KLSAgICBbc3VwZXIgZGVhbGxvY107
Ci19Ci0KLS0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KLXsKLSAgICByZXR1cm4gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA6ICVwOyBuYW1lID0gJUA7IGtleSA9ICVAOyBkZWZhdWx0
VmFsdWUgPSAlcyA+IiwgTlNTdHJpbmdGcm9tQ2xhc3Moc2VsZi5jbGFzcyksIHNlbGYsIHNlbGYu
bmFtZSwgc2VsZi5rZXksIHNlbGYuZGVmYXVsdFZhbHVlID8gIm9uIiA6ICJvZmYiXTsKLX0KLQot
LSAoTlNTdHJpbmcgKiluYW1lCi17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50YWxGZWF0dXJlLT5u
YW1lKCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopa2V5Ci17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50
YWxGZWF0dXJlLT5rZXkoKTsKLX0KLQotLSAoTlNTdHJpbmcgKilkZXRhaWxzCi17Ci0gICAgcmV0
dXJuIF9leHBlcmltZW50YWxGZWF0dXJlLT5kZXRhaWxzKCk7Ci19Ci0KLS0gKEJPT0wpZGVmYXVs
dFZhbHVlCi17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50YWxGZWF0dXJlLT5kZWZhdWx0VmFsdWUo
KTsKLX0KLQotLSAoQk9PTClpc0hpZGRlbgotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVh
dHVyZS0+aXNIaWRkZW4oKTsKLX0KLQotI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGlt
cGxlbWVudGF0aW9uCi0KLS0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAgcmV0dXJu
ICpfZXhwZXJpbWVudGFsRmVhdHVyZTsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1
cmVJbnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTBjMzBiN2E4YmI4
MzYyMWVjZWE0M2IxYmE0MjY0NzU5N2M5YjViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
eHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIl9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCIK
LQotI2ltcG9ydCAiQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oIgotI2ltcG9ydCAiV0tPYmplY3Qu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFp
dHM8QVBJOjpFeHBlcmltZW50YWxGZWF0dXJlPiB7Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNzID0g
X1dLRXhwZXJpbWVudGFsRmVhdHVyZTsKLX07Ci0KLX0KLQotQGludGVyZmFjZSBfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICgpIDxXS09iamVjdD4gewotQHBhY2thZ2UKLSAgICBBUEk6Ok9iamVjdFN0
b3JhZ2U8QVBJOjpFeHBlcmltZW50YWxGZWF0dXJlPiBfZXhwZXJpbWVudGFsRmVhdHVyZTsKLX0K
LUBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0
aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNTZXNzaW9uTm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5v
dGlmaWVyLm1tCmluZGV4IDU1MjdlYjg1NTg3ZmZiNDE5ZDUyZjYzZjU4MDE0YzAyNjRjNzQ2YzMu
LjY5NzZiYmI0NjgyOGEzY2M5MmExNTVlNWI5Y2RkOWM2MzAyMTI5NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRp
ZXNTZXNzaW9uTm90aWZpZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
R3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc1Nlc3Npb25Ob3RpZmllci5tbQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIEhB
VkUoR1JPVVBfQUNUSVZJVElFUykKIAorI2ltcG9ydCAiR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0
b3IuaCIKICNpbXBvcnQgIldLR3JvdXBTZXNzaW9uLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHku
aCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNTdmMmQyN2U2ZjU0MGQ2NDgwMGNiYjNhNmY0ZjlmMWY0ZWY4ZTVkMy4uZmM1NTgxYTQ1
MjdkNjk4YjgxZDI5NjM1YmE3MDYxY2ZjMDM2OGFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDIsNiArNDQyLDggQEAKIAkJMUNC
QkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlF
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OwogCQkx
Q0YxOEYzRjI2QkI1RDk1MDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGMThGM0UyNkJCNUQ5MDAw
NEIxNzIyIC8qIExvZ0luaXRpYWxpemF0aW9uLmNwcCAqLzsgfTsKKwkJMUQwNkNCRjQyNkZDMUMz
MDAwNzQ4N0Q4IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDA2Q0JGMzI2RkMxQzJGMDA3NDg3
RDggLyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLzsgfTsKKwkJMUQwNkNCRjYy
NkZDNDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDZDQkY1MjZGQzQyMjYwMDc0ODdE
OCAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
MUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC04MjAsOCArODIy
LDcgQEAKIAkJMzE1NzEzNUYyMDQwQTlCMjAwODRGOUNGIC8qIFN5c3RlbVByZXZpZXdDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTU3
MTM1RDIwNDBBOUIyMDA4NEY5Q0YgLyogU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsK
IAkJMzE2QjhCNjQyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkI4QjYyMjA1NEI1
NTgwMEJENEE2MiAvKiBXS1N5c3RlbVByZXZpZXdWaWV3LmggKi87IH07CiAJCTMxN0ZFN0M1MUM0
ODdBNkMwMEEwQ0E4OSAvKiBBUElFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDMjFDNDg3QTY2MDBBMENBODkg
LyogQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oICovOyB9OwotCQkzMTdGRTdDRDFDNDg3REFFMDBB
MENBODkgLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDOTFDNDg3RDlEMDBBMENBODkg
LyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggKi87IH07Ci0JCTMxN0ZFN0NGMUM0
ODdEQkQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkg
LyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTMxN0ZFN0NGMUM0ODdEQkQwMEEwQ0E4OSAvKiBXS0V4cGVy
aW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTMxOEJF
MTcxMTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTcwMTQ3NDNEQjEwMEE4
RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxQTJFQzQ5MTQ4OTk3
QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3Rp
ZmljYXRpb24uaCAqLzsgfTsKQEAgLTMwNjgsNiArMzA2OSw4IEBACiAJCTFEMDUzMEQzMjU5MTYy
QzkwMEU0MzZGNyAvKiBXZWJLaXQtbWFjb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXQt
bWFjb3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBENDI1OTE2
MkM5MDBFNDM2RjcgLyogV2ViS2l0LXdhdGNob3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJL
aXQtd2F0Y2hvcy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDUzMEQ1
MjU5MTk0MTUwMEU0MzZGNyAvKiBnZW5lcmF0ZS1mZWF0dXJlLWZsYWdzLXBsaXN0LnNoICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
c2g7IHBhdGggPSAiZ2VuZXJhdGUtZmVhdHVyZS1mbGFncy1wbGlzdC5zaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFEMDZDQkYzMjZGQzFDMkYwMDc0ODdEOCAvKiBXS0V4cGVyaW1l
bnRhbEZlYXR1cmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDA2Q0JGNTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMEI2NjE5MjYyNEMxMTgwMEY5NzEyRiAvKiBXZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJN
ZWRpYUtleVN5c3RlbUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
MEI2NjFBMjYyNEMxOTYwMEY5NzEyRiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHBhdGggPSBFbmNyeXB0ZWRNZWRp
YS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllclByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjAxLDkg
KzM2MDQsOCBAQAogCQkzMTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBERktpdFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTdGRTdDMTFDNDg3QTY2MDBBMENBODkgLyogQVBJRXhwZXJpbWVu
dGFsRmVhdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElF
eHBlcmltZW50YWxGZWF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE3
RkU3QzIxQzQ4N0E2NjAwQTBDQTg5IC8qIEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkgLyogX1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tFeHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
N0ZFN0M4MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzE3RkU3QzkxQzQ4N0Q5RDAwQTBD
QTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE3RkU3QzcxQzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE3RkU3
QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8q
IFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN5c3RlbVBy
ZXZpZXdDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUx
NzAxNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdLTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDU5NCw4ICs0NTk2LDggQEAKIAkJNUNEMjg2NEUxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Q0QyODY0RjFFNzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZUludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGVudFJ1bGVMaXN0
U3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0QyODY1MDFF
NzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNENzQ4QjUyM0M4RUIxOTAwOTJBOUI1
IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDRDc0OEI1MjNDOEVCMTkwMDkyQTk5OSAvKiBXZWJVUkxTY2hl
bWVIYW5kbGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1Q0Q3NDhCNTIzQzhFQjE5MDA5MkE5QjUgLyogTmV0d29ya1Jlc291cmNlTG9hZElkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNFMEMzNjYy
MjlGMkQzRDAwMzY5NUYwIC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTBDMzY3MjI5RjJEM0UwMDM2OTVG
MCAvKiBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNFMEMzNjgyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQ29u
dGV4dE1lbnVFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1
NzksNiArNjU4MSw3IEBACiAJCTFBNDNFODI2MTg4RjM4RTIwMDlFNEQzMCAvKiBEZXByZWNhdGVk
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDA2Q0JG
NTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICovLAogCQkJCTFB
RkI0QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJ
MUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8sCiAJ
CQkJMUE0QTkzQjYxQUVCMDhFQTAwMTUwRTlDIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5h
bC5oICovLApAQCAtODEyNyw5ICs4MTMwLDYgQEAKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhB
RjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFsLmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3
RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFC
QzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAot
CQkJCTMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmgg
Ki8sCi0JCQkJMzE3RkU3QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUubW0gKi8sCi0JCQkJMzE3RkU3QzkxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmVJbnRlcm5hbC5oICovLAogCQkJCTAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBf
V0tGaW5kRGVsZWdhdGUuaCAqLywKIAkJCQkyREVBQzVDRTFBQzM2OEJCMDBBMTk1RDggLyogX1dL
RmluZE9wdGlvbnMuaCAqLywKIAkJCQkyRTdBOTQ0OTFCQkQ5NUM2MDA5NDU1NDcgLyogX1dLRm9j
dXNlZEVsZW1lbnRJbmZvLmggKi8sCkBAIC04Mjk1LDYgKzgyOTUsOSBAQAogCQkJCTFBRjQ1OTJD
MTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLm1tICovLAogCQkJCTFBMkQyNTJBMTk0Njg4RkQw
MDQ1MzdCMCAvKiBXS0Vycm9ySW50ZXJuYWwuaCAqLywKIAkJCQkzN0I1MDQ1MTE5RUVGMzEzMDBD
RTJDRjggLyogV0tFcnJvclByaXZhdGUuaCAqLywKKwkJCQkzMTdGRTdDNzFDNDg3RDlEMDBBMENB
ODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi8sCisJCQkJMzE3RkU3QzgxQzQ4N0Q5RDAw
QTBDQTg5IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLywKKwkJCQkxRDA2Q0JGMzI2RkMx
QzJGMDA3NDg3RDggLyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLywKIAkJCQk1
MTRBQjlFRjIzNUZBNTlCMDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJhdGlvbi5oICovLAogCQkJ
CTUxNEFCOUYxMjM2MEU4M0QwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLm1tICovLAog
CQkJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAqLywKQEAgLTEx
OTAyLDggKzExOTA1LDcgQEAKIAkJCQkzNzlBODczQTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxl
bWVudEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5QTg3M0MxOEJCRkYwNzAwNTg4QUYy
IC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMDFC
QzkxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkzMTdGRTdDRjFDNDg3REJEMDBBMENBODkgLyogX1dLRXhwZXJpbWVudGFs
RmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzE3RkU3Q0QxQzQ4N0RBRTAwQTBDQTg5IC8q
IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQw
NkNCRjYyNkZDNDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJERUFDNUNGMUFDMzY4QkIwMEExOTVEOCAvKiBfV0tGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU3QTk0NEExQkJEOTdDMzAwOTQ1NTQ3IC8q
IF9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzAwMyw2ICsxMzAw
NSw4IEBACiAJCQkJMzdCNTA0NTIxOUVFRjMxMzAwQ0UyQ0Y4IC8qIFdLRXJyb3JQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tFcnJvclJl
Zi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc4M0QxMjUwRkFERDAwNjhGMjBBIC8qIFdLRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxN0ZFN0NGMUM0ODdEQkQwMEEwQ0E4OSAvKiBXS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMDZDQkY0MjZGQzFDMzAw
MDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU4QjZGMDgxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8q
IFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYiBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Njcmlw
dHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJl
cy5tbS5lcmIKaW5kZXggYWIxZWQyNGNjNDE3NTYwZmVhNmRkODUwNDJkZDkyNzU4YWY0OGM2Ny4u
Y2ExY2JkNTgwYzA4ZmI1MjNmYmMwZjNjODEzNGVjNWQ0OWJkYzNmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYgorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsRmVhdHVyZXMubW0uZXJiCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZUV4cGVy
aW1lbnRhbEZlYXR1cmVzKQogCi0rIChOU0FycmF5PFdlYkZlYXR1cmUgKj4gKilfZXhwZXJpbWVu
dGFsRmVhdHVyZXMKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1
cmVzCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0FycmF5PFdlYkZl
YXR1cmUgKj4+PiBmZWF0dXJlcyA9IEBbCiA8JS0gZm9yIEBwcmVmIGluIEBleHBvc2VkRXhwZXJp
bWVudGFsRmVhdHVyZXMgZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBmYzcxNGE1ZGU0OTEzZjY4
MThmYTM2ZTIwOTUxNTJiYzA4ZDFhNzFkLi4yZTM0MTk1NzNiN2E2YzdlMDhjNTJiN2QwNTI4MTkz
MGIzZmFmOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI5OSw3ICsyOTksNyBAQCBleHRlcm4gTlNT
dHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlv
biBXRUJLSVRfREVQUgogLy8gRm9yIHVzZSBieSBNaW5pQnJvd3NlciBhbmQgdGVzdGluZyBpbmZy
YXN0cnVjdHVyZSBvbmx5CiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVF
eHBlcmltZW50YWxGZWF0dXJlcykKLSsgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKV9leHBlcmlt
ZW50YWxGZWF0dXJlczsKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZl
YXR1cmVzOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlSW50
ZXJuYWxGZWF0dXJlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAyMDRhYTQzMmFhNTJhZTdkMDkxNzMwMDkwZTQ1NmEwZDYyYmZhNzJiLi4yNTNi
MGI5YzIwYmI1OTY5NDY4ZGRjODc3OWU3NTdkZmIxNzA0ZDc0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMDkt
MjIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVs
ZWdhdGUgZGVmYXVsdENvbmZpZ3VyYXRpb25dKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMv
U2V0dGluZ3NDb250cm9sbGVyLm06CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBfcG9w
dWxhdGVNZW51XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB2YWxpZGF0ZU1lbnVJ
dGVtOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgdG9nZ2xlRXhwZXJpbWVudGFs
RmVhdHVyZTpdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHJlc2V0QWxsRXhwZXJp
bWVudGFsRmVhdHVyZXM6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NsaXBib2FyZFRlc3RzLm1tOgorICAgICAgICAoY3JlYXRlV2ViVmll
d0ZvckNsaXBib2FyZFRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6V2ViQ29yZTo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA5LTIxICBQaGlsaXAg
Q2hpbWVudG8gIDxwY2hpbWVudG9AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgTExWTS9GTGFu
ZydzIGludDEyOF90IGltcGxlbWVudGF0aW9uIHRvIFdURgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDIxOWZjOTY1ZWUxYWNkNjIyNzBhZjAyODVlODg4
YjUyZDQ2YzRiNzEuLjBkNjVlNWM4ODAzZTQ2OGFjZWI4ZmRiOTQ1YTkxZTNlZGYwMDEyNjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg2NSw3ICs4
NjUsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKFdlYlBy
ZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgY29uc3QgVwogICAgICAgICBbcHJlZmVyZW5jZXMgX3Jl
c2V0Rm9yVGVzdGluZ107CiAKICAgICAgICAgaWYgKGVuYWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1
cmVzKSB7Ci0gICAgICAgICAgICBmb3IgKFdlYkZlYXR1cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZl
cmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pCisgICAgICAgICAgICBmb3IgKFdlYkZlYXR1
cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkKICAg
ICAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVh
dHVyZV07CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Fw
cERlbGVnYXRlLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQppbmRleCA3
NWQ2OTFkZTI2YmZhOWYzZWRjMjBjNTMzMDBiN2EzMTQ5YjczOWRhLi44NWUxMDljNDkxZDViODNk
M2JhNzM4YTU0M2Q3ZmE1ODIyMTY2MGFhIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvQXBwRGVsZWdhdGUubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUu
bQpAQCAtMjksMTMgKzI5LDEzIEBACiAjaW1wb3J0ICJTZXR0aW5nc0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXSzJCcm93c2Vy
V2luZG93Q29udHJvbGxlci5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250
ZW50Q29udHJvbGxlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmg+CkBAIC0xMjAsMTQg
KzEyMCwxNCBAQCAtIChXS1dlYlZpZXdDb25maWd1cmF0aW9uICopZGVmYXVsdENvbmZpZ3VyYXRp
b24KICAgICAgICAgCiAgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgPSBbW1tXS1By
b2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NDb25maWd1cmF0
aW9uXSBhdXRvcmVsZWFzZV07CiAKLSAgICAgICAgTlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0
dXJlICo+ICpleHBlcmltZW50YWxGZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50
YWxGZWF0dXJlc107Ci0gICAgICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVy
ZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgeworICAgICAgICBOU0FycmF5PFdLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBl
cmltZW50YWxGZWF0dXJlc107CisgICAgICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIGV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7CiAgICAgICAgICAgICBCT09MIGVuYWJs
ZWQ7CiAgICAgICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gb2JqZWN0Rm9yS2V5OmZlYXR1cmUua2V5XSkKICAgICAgICAgICAgICAgICBlbmFibGVkID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpmZWF0dXJl
LmtleV07CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IFtmZWF0
dXJlIGRlZmF1bHRWYWx1ZV07Ci0gICAgICAgICAgICBbY29uZmlndXJhdGlvbi5wcmVmZXJlbmNl
cyBfc2V0RW5hYmxlZDplbmFibGVkIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Cisg
ICAgICAgICAgICBbY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcyBzZXRFbmFibGVkOmVuYWJsZWQg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKICAgICAgICAgfQogCiAgICAgICAgIE5T
QXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4gKmludGVybmFsRGVidWdGZWF0dXJlcyA9
IFtXS1ByZWZlcmVuY2VzIF9pbnRlcm5hbERlYnVnRmVhdHVyZXNdOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5tCmluZGV4IDg0YmQxYThlZjBmYTE2YWMzODQyZWQ0
YjdjYjk1ODhhNGQwNzUzYWQuLmZkNDkyMTU3ZjhmMGIwYWQ4ZjVmMzZlNDlmNTE1N2FlZTM5M2Rm
YzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIu
bQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm0KQEAgLTI3
LDggKzI3LDggQEAKIAogI2ltcG9ydCAiQXBwRGVsZWdhdGUuaCIKICNpbXBvcnQgIkJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KLSNpbXBvcnQgPFdl
YktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmUuaD4KIAogTlNTdHJpbmcgKiBjb25zdCBrVXNlckFnZW50Q2hhbmdlZE5v
dGlmaWNhdGlvbk5hbWUgPSBAIlVzZXJBZ2VudENoYW5nZWROb3RpZmljYXRpb24iOwpAQCAtMjA0
LDkgKzIwNCw5IEBAIC0gKHZvaWQpX3BvcHVsYXRlTWVudQogICAgIE5TTWVudSAqZXhwZXJpbWVu
dGFsRmVhdHVyZXNNZW51ID0gW1tOU01lbnUgYWxsb2NdIGluaXRXaXRoVGl0bGU6QCJFeHBlcmlt
ZW50YWwgRmVhdHVyZXMiXTsKICAgICBbZXhwZXJpbWVudGFsRmVhdHVyZXNTdWJtZW51SXRlbSBz
ZXRTdWJtZW51OmV4cGVyaW1lbnRhbEZlYXR1cmVzTWVudV07CiAKLSAgICBOU0FycmF5PF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gW1dLUHJlZmVyZW5j
ZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBOU0FycmF5PFdLRXhwZXJpbWVudGFsRmVh
dHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBlcmltZW50
YWxGZWF0dXJlc107CiAKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUg
aW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgewogICAgICAgICBOU01lbnVJdGVt
ICppdGVtID0gW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxlOmZlYXR1cmUubmFtZSBh
Y3Rpb246QHNlbGVjdG9yKHRvZ2dsZUV4cGVyaW1lbnRhbEZlYXR1cmU6KSBrZXlFcXVpdmFsZW50
OkAiIl07CiAgICAgICAgIGl0ZW0udG9vbFRpcCA9IGZlYXR1cmUuZGV0YWlsczsKICAgICAgICAg
aXRlbS5yZXByZXNlbnRlZE9iamVjdCA9IGZlYXR1cmU7CkBAIC00MDksOCArNDA5LDggQEAgLSAo
Qk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0KIAogICAgIFdLUHJl
ZmVyZW5jZXMgKmRlZmF1bHRQcmVmZXJlbmNlcyA9IFtbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBs
aWNhdGlvbl0gYnJvd3NlckFwcERlbGVnYXRlXS5kZWZhdWx0UHJlZmVyZW5jZXM7CiAgICAgaWYg
KG1lbnVJdGVtLnRhZyA9PSBFeHBlcmltZW50YWxGZWF0dXJlVGFnKSB7Ci0gICAgICAgIF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgPSBtZW51SXRlbS5yZXByZXNlbnRlZE9iamVjdDsK
LSAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltkZWZhdWx0UHJlZmVyZW5jZXMgX2lzRW5hYmxl
ZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV0gPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24g
OiBOU0NvbnRyb2xTdGF0ZVZhbHVlT2ZmXTsKKyAgICAgICAgV0tFeHBlcmltZW50YWxGZWF0dXJl
ICpmZWF0dXJlID0gbWVudUl0ZW0ucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIFttZW51SXRl
bSBzZXRTdGF0ZTpbZGVmYXVsdFByZWZlcmVuY2VzIGlzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6ZmVhdHVyZV0gPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZh
bHVlT2ZmXTsKICAgICB9CiAgICAgaWYgKG1lbnVJdGVtLnRhZyA9PSBJbnRlcm5hbERlYnVnRmVh
dHVyZVRhZykgewogICAgICAgICBfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqZmVhdHVyZSA9IG1l
bnVJdGVtLnJlcHJlc2VudGVkT2JqZWN0OwpAQCAtNzMyLDExICs3MzIsMTEgQEAgLSAodm9pZCl0
b2dnbGVEZWJ1Z092ZXJsYXk6KGlkKXNlbmRlcgogCiAtICh2b2lkKXRvZ2dsZUV4cGVyaW1lbnRh
bEZlYXR1cmU6KGlkKXNlbmRlcgogewotICAgIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgPSAoKE5TTWVudUl0ZW0gKilzZW5kZXIpLnJlcHJlc2VudGVkT2JqZWN0OworICAgIFdLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSA9ICgoTlNNZW51SXRlbSAqKXNlbmRlcikucmVwcmVz
ZW50ZWRPYmplY3Q7CiAgICAgV0tQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSBbW05TQXBwbGlj
YXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBEZWxlZ2F0ZV0uZGVmYXVsdFByZWZl
cmVuY2VzOwogCi0gICAgQk9PTCBjdXJyZW50bHlFbmFibGVkID0gW3ByZWZlcmVuY2VzIF9pc0Vu
YWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwotICAgIFtwcmVmZXJlbmNlcyBf
c2V0RW5hYmxlZDohY3VycmVudGx5RW5hYmxlZCBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1
cmVdOworICAgIEJPT0wgY3VycmVudGx5RW5hYmxlZCA9IFtwcmVmZXJlbmNlcyBpc0VuYWJsZWRG
b3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgIFtwcmVmZXJlbmNlcyBzZXRFbmFi
bGVkOiFjdXJyZW50bHlFbmFibGVkIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAK
ICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOiFjdXJy
ZW50bHlFbmFibGVkIGZvcktleTpmZWF0dXJlLmtleV07CiB9CkBAIC03NTUsMTAgKzc1NSwxMCBA
QCAtICh2b2lkKXRvZ2dsZUludGVybmFsRGVidWdGZWF0dXJlOihpZClzZW5kZXIKIC0gKHZvaWQp
cmVzZXRBbGxFeHBlcmltZW50YWxGZWF0dXJlczooaWQpc2VuZGVyCiB7CiAgICAgV0tQcmVmZXJl
bmNlcyAqcHJlZmVyZW5jZXMgPSBbW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJy
b3dzZXJBcHBEZWxlZ2F0ZV0uZGVmYXVsdFByZWZlcmVuY2VzOwotICAgIE5TQXJyYXk8X1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNl
cyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdOworICAgIE5TQXJyYXk8V0tFeHBlcmltZW50YWxGZWF0
dXJlICo+ICpleHBlcmltZW50YWxGZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRh
bEZlYXR1cmVzXTsKIAotICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBp
biBleHBlcmltZW50YWxGZWF0dXJlcykgewotICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJs
ZWQ6ZmVhdHVyZS5kZWZhdWx0VmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsK
KyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxG
ZWF0dXJlcykgeworICAgICAgICBbcHJlZmVyZW5jZXMgc2V0RW5hYmxlZDpmZWF0dXJlLmRlZmF1
bHRWYWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOmZlYXR1cmUuZGVmYXVsdFZh
bHVlIGZvcktleTpmZWF0dXJlLmtleV07CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IDgxZjIzNGFiNzc5ZmYxODVk
ODM2N2U4OWE0ZmI1YTQ3YmVjM2MxNmQuLmQ3ZWUyMjQyMTMzN2Q2NjA3ZGJhYjJmNTU1NzI0Mzdl
ODM5ZmY3ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
dFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWEubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIK
ICNpbXBvcnQgIlVzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZp
ZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxG
ZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaD4KQEAgLTQxLDcgKzQyLDYgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgot
I2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktp
dC9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpA
QCAtNzM2LDkgKzczNiw5IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0
dXJpbmdBbmRDYWxsaW5nKQogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiXSkKICAgICAgICAgICAgIFtwcmVm
ZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07
CiAgICAgfQotICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQ
cmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgZm9yIChXS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVy
ZXNdKSB7CiAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViUlRD
UGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVkIl0pCi0gICAgICAgICAgICBbcHJlZmVy
ZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBb
cHJlZmVyZW5jZXMgc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJl
XTsKICAgICB9CiAKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9NZWRpYVNlc3Npb25Db29yZGluYXRvclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NZWRpYVNlc3Npb25Db29yZGluYXRvclRlc3QubW0KaW5kZXggZDhhOWEy
YjQ0MmFhYTkxMGM2ODFlMmRkZjVmNTAwYWNhZGU3ZmE0MC4uYzRkMTM0Nzk3NzRjOWE4YzM1NmI5
NjQ4ZWViZjY2MzBiM2VhZGRlNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbQpAQCAt
MjksMTEgKzI5LDExIEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgot
I2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktp
dC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KQEAgLTE5MCwxMSArMTkwLDkgQEAgcHVibGljOgog
ICAgICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwogCi0gICAgICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7Ci0g
ICAgICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yRW5hYmxlZCJdKQotICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0
RW5hYmxlZDpZRVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAgIGlmIChbZmVhdHVy
ZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiTWVkaWFTZXNzaW9uRW5hYmxlZCJdKQotICAgICAgICAg
ICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsK
KyAgICAgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVy
ZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgICAgICBpZiAoW2ZlYXR1cmUu
a2V5IGlzRXF1YWxUb1N0cmluZzpAIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZCJdIHx8
IFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJNZWRpYVNlc3Npb25FbmFibGVkIl0pCisg
ICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAgIH0KIAogICAgICAgICBfd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
NDAwLCA0MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DbGlwYm9hcmRUZXN0cy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xpcGJvYXJkVGVzdHMu
bW0KaW5kZXggNjVjMDc3OGRhMTFmYzBiZjFhOGJkMjU3MzlkMjI2OGUwOTQ4ZTE2My4uNzdkZDJi
MmFmYmQyNjFiNGU1YWQ5ZGVkZGRiYmViNDI5Mzk5ZDc2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DbGlwYm9hcmRUZXN0cy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NsaXBib2FyZFRlc3RzLm1tCkBAIC0z
MCw4ICszMCw4IEBACiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8Q29yZVNlcnZpY2Vz
L0NvcmVTZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBl
cy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5oPgogCiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgKENsaXBib2FyZFRl
c3RzKQogCkBAIC03Niw5ICs3Niw5IEBAIHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4g
Y3JlYXRlV2ViVmlld0ZvckNsaXBib2FyZFRlc3RzKCkKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldERPTVBhc3RlQWxsb3dlZDpZRVNdOwogICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQ6WUVTXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4g
W1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgIGZvciAoV0tFeHBl
cmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZl
YXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkFz
eW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCJdKSB7Ci0gICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1
cmVdOworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbQppbmRleCBlMjgzZjQ1OTA0NjM4MDk2ZjBiZjk4NDcz
ODg0MWEyNmQwNjRlMzVlLi41MjI2ZmQ4Mjc0MDllMWJjNTczY2U1OTc4ZDBlZjI0YWM5NjFiNGEy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZl
cmVuY2VzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJl
ZmVyZW5jZXMubW0KQEAgLTI4LDEwICsyOCwxMCBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2ltcG9ydCA8
V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRh
dGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tVSURlbGVnYXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFs
RmVhdHVyZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBURVNUKFdlYktpdCwgRGVm
YXVsdFdLUHJlZmVyZW5jZXMpCkBAIC01NiwxNCArNTYsMTQgQEAgVEVTVChXZWJLaXQsIExvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSkKIAogVEVTVChXZWJLaXQsIEV4cGVyaW1lbnRhbEZlYXR1cmVz
KQogewotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRh
bEZlYXR1cmVzXTsKKyAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIGV4cGVy
aW1lbnRhbEZlYXR1cmVzXTsKICAgICBFWFBFQ1RfTk9UX05VTEwoZmVhdHVyZXMpOwogCiAgICAg
UmV0YWluUHRyPFdLUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLUHJlZmVy
ZW5jZXMgYWxsb2NdIGluaXRdKTsKIAotICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
ZmVhdHVyZSBpbiBmZWF0dXJlcykgewotICAgICAgICBCT09MIHZhbHVlID0gW3ByZWZlcmVuY2Vz
IF9pc0VuYWJsZWRGb3JGZWF0dXJlOmZlYXR1cmVdOwotICAgICAgICBbcHJlZmVyZW5jZXMgX3Nl
dEVuYWJsZWQ6dmFsdWUgZm9yRmVhdHVyZTpmZWF0dXJlXTsKKyAgICBmb3IgKFdLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgeworICAgICAgICBCT09MIHZhbHVlID0g
W3ByZWZlcmVuY2VzIGlzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Cisg
ICAgICAgIFtwcmVmZXJlbmNlcyBzZXRFbmFibGVkOnZhbHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6ZmVhdHVyZV07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpp
bmRleCBjNjMzMTY3ODU4NTA3M2RkZWJkZjQ0MjZkMjAzZGZiMWQ1NmJiNzIyLi44YmRlNmYwNjJj
MzdhMjg5MmEyNDk0YjQ5MzZhNzdjMjk4OGE5N2FkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlVzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0hUVFBDb29r
aWVTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25Qcml2YXRlLmg+CkBAIC00Niw3
ICs0Nyw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oPgogI2ltcG9ydCA8V2ViS2l0
L1dlYktpdC5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oPgpAQCAtNzIwOCwxMSArNzIwOCwxMSBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwotICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQ
cmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgZm9yIChXS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVy
ZXNdKSB7CiAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pCi0gICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAgICAg
ICAgIGVsc2UgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5RW5hYmxlZCJdKQotICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVh
dHVyZV07CisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KIAog
ICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGY3NTY1NzcyY2Y5OWM2NWY1OWI4OWY2NWY3ZWEyYjRh
NmM0MDMwNmUuLjIyMjBlNTI5MThkZWFjNzAzNzhhNTVlYTM0MmVhN2JjYmU4Y2I5Y2EgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJUZXN0VUlEZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0
aWZpY2F0ZUluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxTY2hlbWVIYW5k
bGVyLmg+CkBAIC00Myw3ICs0NCw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRh
bEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgog
I2ltcG9ydCA8d3RmL0RlcXVlLmg+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
aW5kZXggYWJhNGZiOTA3ZmIyMjdjMzc0MGRhZjA5YWYxMWM3MTQ4MDY5N2UyNC4uNDg4Mzk4Njc3
MThmOGUzM2NmNTJkZTUyOWYzMDg1MTdiMjkyNTdmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50
aWNhdG9yQXR0YWNobWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQ
cml2YXRlLmg+CkBAIC00NCw3ICs0NSw2IEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tBdXRoZW50aWNhdG9y
U2VsZWN0aW9uQ3JpdGVyaWEuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0
dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9y
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMuaD4K
QEAgLTI5MCwxNCArMjkwLDE0IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiPC9zY3JpcHQ+
IgogIjwvaHRtbD4iOwogCi1zdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKK3N0YXRpYyBXS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7Ci0gICAgc3RhdGlj
IFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOworICAgIHN0YXRp
YyBSZXRhaW5QdHI8V0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOwogICAgIGlmICh0
aGVGZWF0dXJlKQogICAgICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKIAotICAgIE5TQXJy
YXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKLSAg
ICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAg
ICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVz
XTsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykg
ewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWw6QCJXZWJBdXRoZW50aWNhdGlvbkVu
YWJsZWQiXSkgewogICAgICAgICAgICAgdGhlRmVhdHVyZSA9IGZlYXR1cmU7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTMwNiwxNCArMzA2LDE0IEBAIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0
dXJlICp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogICAgIHJldHVybiB0
aGVGZWF0dXJlLmdldCgpOwogfQogCi1zdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKK3N0YXRpYyBXS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpCiB7Ci0gICAgc3RhdGljIFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVG
ZWF0dXJlOworICAgIHN0YXRpYyBSZXRhaW5QdHI8V0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVG
ZWF0dXJlOwogICAgIGlmICh0aGVGZWF0dXJlKQogICAgICAgICByZXR1cm4gdGhlRmVhdHVyZS5n
ZXQoKTsKIAotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1l
bnRhbEZlYXR1cmVzXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUg
aW4gZmVhdHVyZXMpIHsKKyAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIGV4
cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVh
dHVyZSBpbiBmZWF0dXJlcykgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWw6QCJX
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQiXSkgewogICAgICAgICAgICAgdGhlRmVhdHVy
ZSA9IGZlYXR1cmU7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQzMCw3ICs0MzAsNyBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxOZmNTdWNjZWVkKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtNDQ1
LDcgKzQ0NSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTm9QYW5lbEhpZFN1Y2Nl
c3MpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmll
dyBmb2N1c107CkBAIC00NjAsOCArNDYwLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBQYW5lbEhpZFN1Y2Nlc3MxKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTQ4Myw4ICs0ODMsOCBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkU3VjY2VzczIpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC01MTEsOCArNTExLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQYW5lbFJhY3kxKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTUzNiw4ICs1MzYsOCBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTIpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtNTYxLDggKzU2MSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxU
d2ljZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01ODUsOCArNTg1LDggQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBSZWxvYWRIaWRDYW5jZWwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTYwNiw4ICs2MDYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExvY2F0
aW9uQ2hhbmdlSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC02MjcsOCArNjI3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBOZXdMb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC02NDcsOCArNjQ3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBDbG9zZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjg2LDggKzY4
Niw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3ViRnJhbWVDaGFuZ2VMb2NhdGlv
bkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03MzEsOCArNzMxLDggQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBTdWJGcmFtZURlc3RydWN0aW9uSGlkQ2FuY2Vs
KQogICAgIH0pOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc1MSw4ICs3NTEsOCBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC03NzIsOCArNzcyLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5l
bEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtNzkxLDggKzc5MSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFu
ZWxVMmZDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTgxMCw4ICs4MTAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZh
a2VQYW5lbEhpZFN1Y2Nlc3MpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODMwLDggKzgzMCw4IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRmFrZVBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlh
bHNGb3VuZCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NTAsOCArODUw
LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRTdWNjZXNzKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTg3MCw4ICs4NzAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIE51bGxQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODkxLDggKzg5MSw4IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgUGFuZWxNdWx0aXBsZU5GQ1RhZ3NQcmVzZW50KQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTExLDggKzkxMSw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWxSZWxvYWROb0NyYXNoKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC05MzIsOCArOTMyLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBQYW5lbEhpZFN1Y2Nlc3NDYW5jZWxOb0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTk1
MSw4ICs5NTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ3RhcE5v
Q3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtOTcwLDggKzk3MCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGluR2V0UmV0cmllc0Vycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNd
OwpAQCAtOTg1LDggKzk4NSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0
S2V5QWdyZWVtZW50RXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvciIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBm
b2N1c107CkBAIC0xMDAwLDggKzEwMDAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBpblJlcXVlc3RQaW5FcnJvck5vRGVsZWdhdGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBmb2N1c107CkBAIC0x
MDE1LDggKzEwMTUsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQ
aW5FcnJvck51bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDM0LDgg
KzEwMzQsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJv
cikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTA1NSw4ICsxMDU1LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGlu
LWJsb2NrZWQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNzYsOCArMTA3Niw4
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5BdXRoQmxv
Y2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xMDk3LDggKzEwOTcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGlu
LXRva2VuLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC0xMTE3LDggKzExMTcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBp
blRva2VuUGluQXV0aEludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0
aC1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTM3LDgg
KzExMzcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGlu
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExNTYsOCArMTE1Niw4IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5BdXRoQmxvY2tlZEVycm9yKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
YXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTc3LDggKzEx
NzcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGluSW52
YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMTk3LDggKzExOTcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IEdldEFzc2VydGlvblBpbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5h
YmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTIxNiw4ICsxMjE2
LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5BdXRoQmxv
Y2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTIzNyw4ICsxMjM3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRp
b25QaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC0xMjU4LDggKzEyNTgsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIE5mY1BpbkNhY2hlZERpc2Nvbm5lY3QpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1waW4tZGlzY29ubmVjdCIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtMTI3OCw4ICsxMjc4LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBNdWx0aXBsZUFjY291bnRzTnVsbERlbGVnYXRlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbXVsdGlwbGUtYWNjb3VudHMiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTEyOTcsOCArMTI5Nyw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTXVsdGlwbGVBY2NvdW50cykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC0xMzIwLDggKzEzMjAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExB
RXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
bGEtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzMzgsOCArMTMzOCw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFEdXBsaWNhdGVDcmVkZW50aWFsKQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWR1cGxpY2F0ZS1j
cmVkZW50aWFsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzU4LDggKzEzNTgsOCBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTm9DcmVkZW50aWFsKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtMTM3Niw4ICsxMzc2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBM
QU1ha2VDcmVkZW50aWFsTnVsbERlbGVnYXRlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzk1
LDggKzEzOTUsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRp
YWxEaXNhbGxvd0xvY2FsQXV0aGVudGljYXRvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQx
Myw4ICsxNDEzLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50
aWFsQWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0MzQs
OCArMTQzNCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlh
bE5vTW9ja05vVXNlckdlc3R1cmUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQ1
Miw4ICsxNDUyLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50
aWFsUm9sbEJhY2tDcmVkZW50aWFsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWxhLW5vLWF0dGVzdGF0aW9uIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xNDg2LDggKzE0ODYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0
QXNzZXJ0aW9uKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTUwNyw4ICsxNTA3LDggQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbk5vTW9ja05vVXNlckdlc3R1cmUp
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1v
Y2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1MjUsOCArMTUyNSw4IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb25NdWx0aXBsZU9yZGVyKQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMjA2MSw4ICsyMDYxLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBEZWxldGVPbmVDcmVkZW50aWFsKQogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBS
ZWNvdmVyQWZ0ZXJBdXRoTlByb2Nlc3NDcmFzaCkKIHsKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIEVYUEVDVF9FUShbV0tQcm9jZXNzUG9vbCBfd2Vi
QXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0sIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439013</attachid>
            <date>2021-09-22 22:36:47 -0700</date>
            <delta_ts>2021-09-22 23:06:31 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230667-20210922223646.patch</filename>
            <type>text/plain</type>
            <size>112913</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhNGE3ZGJmOGMxNmRhYjk1
N2IzNjViZjQ1ZjEyZGU0N2Q0NjFjYTQuLjk5OGEyMWRkY2VlNzMwNmRlNzkzYmY1OTI4ZWUwM2Vl
YmUwYmIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50
YWxGZWF0dXJlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbS4KKyAgICAgICAgKC1b
V0tFeHBlcmltZW50YWxGZWF0dXJlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50
YWxGZWF0dXJlIG5hbWVdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIGtleV0p
OgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGV0YWlsc10pOgorICAgICAgICAo
LVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGVmYXVsdFZhbHVlXSk6CisgICAgICAgICgtW1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSBpc0hpZGRlbl0pOgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZl
YXR1cmUgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dLUHJlZmVyZW5j
ZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpc0Vu
YWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2Vz
IHNldEVuYWJsZWQ6Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpmb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vz
c2lvbk5vdGlmaWVyLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVXNlIHR5cGVkIGlkZW50aWZpZXIgZm9yIFdlYlNvY2tldENoYW5u
ZWwgaWRlbnRpZmllcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBkMDc5OWI1ZmFk
ODZjN2I1MDRjMWU3M2RlOTAxNjgwZjJmNzQ4OTk2Li4yMDhkNTRjMTMxMTQ0NWFkMjc5NzFhMWU1
YTJjN2Q5Y2ExZDQ4Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6
Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWxGZWF0dXJlcy5tbS5lcmI6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaDoKKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJlZigqdGhpcykgLyBtYWtlUmVmUHRyKHRoaXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KaW5kZXggMWQ3YjhkZDJlOGM4MjJk
ZmI3ZmU2MzkwMzAxNzI3Y2U1ZWQ0ZDU2Yi4uOThlN2MzMGU4ZTYzMTAwZTExYjU2NzgyMjAxNTU5
MzEwN2ZiODU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2Jq
ZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQpAQCAt
MzYsNiArMzYsNyBAQAogI2ltcG9ydCAiV0tDb250ZW50V29ybGRJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRG93bmxv
YWRJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0
b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgpAQCAtNzQsNyArNzUsNiBAQAog
I2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLQ29u
dGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0N1c3RvbUhlYWRlckZp
ZWxkc0ludGVybmFsLmgiCi0jaW1wb3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ZyYW1l
VHJlZU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsLmgiCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCogT2JqZWN0OjpuZXdPYmplY3Qoc2l6ZV90
IHNpemUsIFR5cGUgdHlwZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6OkV4cGVy
aW1lbnRhbEZlYXR1cmU6Ci0gICAgICAgIHdyYXBwZXIgPSBbX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSBhbGxvY107CisgICAgICAgIHdyYXBwZXIgPSBbV0tFeHBlcmltZW50YWxGZWF0dXJlIGFsbG9j
XTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6OkVycm9yOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDExZTcyOTY4NGU0YTJhZGYwYjVjYjg5M2FkNjc5MWQ5MDA1ODI2MDUuLjk1
NzgwMWFjNGZkNGU3ODRlNzc4NzgyNzg2MDI4MTliNzU1MmJjNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTI4MCw3ICsyODAsNiBAQCBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0N1c3RvbUhl
YWRlckZpZWxkcy5tbSBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
bW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tbQotVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZyYW1l
VHJlZU5vZGUubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5t
bQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMyOCw2ICszMjcsNyBA
QCBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Rv
d25sb2FkLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IubW0KK1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRmlu
ZENvbmZpZ3VyYXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGaW5kUmVzdWx0Lm1tCiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2YxN2Q3Njk5Yjk1MmIxYzhlNjhhNTIyY2Q4M2RlYmIwMDk4NDAxYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4K
KworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
CitAaW50ZXJmYWNlIFdLRXhwZXJpbWVudGFsRmVhdHVyZSA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpkZXRhaWxzOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGRlZmF1bHRWYWx1ZTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzSGlkZGVuKSBCT09MIGhpZGRlbjsKKworQGVuZAorCitA
aW50ZXJmYWNlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgOiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUK
K0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNTMwZDM4MTI0ZGE0MzYwM2Jj
ZTQ5YjU1NGI3ZTdkOGMyMWNiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCkBAIC0wLDAgKzEsODAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgorCitAaW1wbGVtZW50YXRpb24gV0tFeHBlcmltZW50YWxGZWF0dXJlCisKKy0g
KHZvaWQpZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9u
TWFpblJ1bkxvb3AoV0tFeHBlcmltZW50YWxGZWF0dXJlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZXhwZXJpbWVudGFsRmVhdHVyZS0+QVBJOjpFeHBlcmltZW50YWxGZWF0
dXJlOjp+RXhwZXJpbWVudGFsRmVhdHVyZSgpOworCisgICAgW3N1cGVyIGRlYWxsb2NdOworfQor
CistIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCit7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsgbmFtZSA9ICVAOyBrZXkgPSAlQDsgZGVmYXVsdFZhbHVl
ID0gJXMgPiIsIE5TU3RyaW5nRnJvbUNsYXNzKHNlbGYuY2xhc3MpLCBzZWxmLCBzZWxmLm5hbWUs
IHNlbGYua2V5LCBzZWxmLmRlZmF1bHRWYWx1ZSA/ICJvbiIgOiAib2ZmIl07Cit9CisKKy0gKE5T
U3RyaW5nICopbmFtZQoreworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5uYW1lKCk7
Cit9CisKKy0gKE5TU3RyaW5nICopa2V5Cit7CisgICAgcmV0dXJuIGV4cGVyaW1lbnRhbEZlYXR1
cmUtPmtleSgpOworfQorCistIChOU1N0cmluZyAqKWRldGFpbHMKK3sKKyAgICByZXR1cm4gZXhw
ZXJpbWVudGFsRmVhdHVyZS0+ZGV0YWlscygpOworfQorCistIChCT09MKWRlZmF1bHRWYWx1ZQor
eworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5kZWZhdWx0VmFsdWUoKTsKK30KKwor
LSAoQk9PTClpc0hpZGRlbgoreworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5pc0hp
ZGRlbigpOworfQorCisjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRp
b24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sKKyAgICByZXR1cm4gKmV4cGVyaW1l
bnRhbEZlYXR1cmU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjNiMDI5ODRjYjZhMzc3YmZiYTU4Y2I1OTFhODhkNjY0MjYwY2JmYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVy
aW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgIkFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCIKKyNpbXBvcnQgIldLRXhwZXJp
bWVudGFsRmVhdHVyZS5oIgorI2ltcG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3RlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpFeHBlcmltZW50YWxG
ZWF0dXJlPiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gV0tFeHBlcmltZW50YWxGZWF0dXJl
OworfTsKKworfQorCitAaW50ZXJmYWNlIFdLRXhwZXJpbWVudGFsRmVhdHVyZSAoKSA8V0tPYmpl
Y3Q+IHsKK0BwYWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RXhwZXJpbWVudGFs
RmVhdHVyZT4gZXhwZXJpbWVudGFsRmVhdHVyZTsKK30KK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGUwY2UxN2JkMzZm
MjUzMjdhNzBkODczNTkxMGExYjZhNzRlNjNjM2EuLjZiMThhMjY3NGIwMWZjY2IyMDkyZGEzYWJm
NTdiMzdkNjQ3Y2Q1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0IDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
KyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KIAogLyohIEEgV0tQcmVmZXJlbmNlcyBvYmplY3QgZW5jYXBzdWxh
dGVzIHRoZSBwcmVmZXJlbmNlIHNldHRpbmdzIGZvciBhIHdlYgpAQCAtNjQsNiArNjUsMTMgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAqLwogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJsZWQpIEJPT0wgdGV4dElu
dGVyYWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjMpLCBpb3MoMTQuNSkp
OwogCisvKiEKKyAqLworKyAoTlNBcnJheTxXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKilleHBl
cmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworCistIChCT09MKWlzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
KFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0RW5hYmxlZDooQk9PTCl2
YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0
dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CisKIEBlbmQKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmlu
ZGV4IDcxNjRmODg2MDA3OGUyMDcxYWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjA4MGZkYjAxNmU2
ZmJiMTc3ZjZkNmMwOGJlYWRhNTYzMmUwMWQ1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0yOCw5ICsyOCw5IEBACiAK
ICNpbXBvcnQgIkFQSUFycmF5LmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgor
I2ltcG9ydCAiV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNB
cnJheS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKLSNpbXBvcnQgIl9XS0V4cGVyaW1l
bnRhbEZlYXR1cmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVJ
bnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMTUzLDYgKzE1MywyMiBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcHJlZmVyZW5jZXMtPnNldFRleHRJbnRlcmFjdGlvbkVu
YWJsZWQodGV4dEludGVyYWN0aW9uRW5hYmxlZCk7CiB9CiAKKysgKE5TQXJyYXk8V0tFeHBlcmlt
ZW50YWxGZWF0dXJlICo+ICopZXhwZXJpbWVudGFsRmVhdHVyZXMKK3sKKyAgICBhdXRvIGZlYXR1
cmVzID0gV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6ZXhwZXJpbWVudGFsRmVhdHVyZXMoKTsKKyAg
ICByZXR1cm4gd3JhcHBlcihBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShmZWF0dXJlcykpKTsK
K30KKworLSAoQk9PTClpc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKilmZWF0dXJlCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+aXNGZWF0
dXJlRW5hYmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSk7Cit9CisKKy0gKHZvaWQp
c2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKilmZWF0dXJlCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRGZWF0dXJlRW5h
YmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSwgdmFsdWUpOworfQorCiAjcHJhZ21h
IG1hcmsgT1MgWC1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC01NjQs
MTQgKzU4MCwxNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNv
cmU6OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpCiAgICAgW3NlbGYgX3NldEVuYWJsZWQ6
dmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKIH0KIAorLy8gRklYTUU6IFJl
bW92ZSB0aGlzIG9uY2UgU2FmYXJpIGhhcyBhZG9wdGVkIHRoZSBuZXcgQVBJLgogLSAoQk9PTClf
aXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
KWZlYXR1cmUKIHsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5pc0ZlYXR1cmVFbmFibGVkKCpm
ZWF0dXJlLT5fZXhwZXJpbWVudGFsRmVhdHVyZSk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
aXNGZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+ZXhwZXJpbWVudGFsRmVhdHVyZSk7CiB9CiAKKy8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFyaSBoYXMgYWRvcHRlZCB0aGUgbmV3IEFQSS4K
IC0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZToo
X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNl
dEZlYXR1cmVFbmFibGVkKCpmZWF0dXJlLT5fZXhwZXJpbWVudGFsRmVhdHVyZSwgdmFsdWUpOwor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0RmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1lbnRh
bEZlYXR1cmUsIHZhbHVlKTsKIH0KIAogLSAoQk9PTClfYXBwbGVQYXlDYXBhYmlsaXR5RGlzY2xv
c3VyZUFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCmluZGV4IDFkNDRmN2IzZjc2YmYyOWRhMTU4
MjZmMzU5YWQxZjBmZTAwNDY4Y2QuLjA3MzNhMDFhMjdkZTVkOGY2M2U4OGJlYzE5MzIzMzBkZGI0
OTBhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
eHBlcmltZW50YWxGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTcgKzIzLDQgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+
Ci0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCi1AaW50ZXJmYWNlIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgOiBOU09iamVjdAotCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICprZXk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5T
U3RyaW5nICpuYW1lOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqZGV0YWlsczsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBkZWZh
dWx0VmFsdWU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0hpZGRl
bikgQk9PTCBoaWRkZW47Ci0KLUBlbmQKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVhdHVyZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVy
aW1lbnRhbEZlYXR1cmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMw
YjNmOTI1OTY1ODM0NWMwY2M4Mjc2ZDNlOGYzZTQzNzFkY2U1Ny4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDgwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0V4cGVy
aW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIgotCi0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBfV0tFeHBlcmltZW50YWxGZWF0dXJlCi0KLS0g
KHZvaWQpZGVhbGxvYwotewotICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9u
TWFpblJ1bkxvb3AoX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5jbGFzcywgc2VsZikpCi0gICAgICAg
IHJldHVybjsKLQotICAgIF9leHBlcmltZW50YWxGZWF0dXJlLT5BUEk6OkV4cGVyaW1lbnRhbEZl
YXR1cmU6On5FeHBlcmltZW50YWxGZWF0dXJlKCk7Ci0KLSAgICBbc3VwZXIgZGVhbGxvY107Ci19
Ci0KLS0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KLXsKLSAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCI8JUA6ICVwOyBuYW1lID0gJUA7IGtleSA9ICVAOyBkZWZhdWx0VmFs
dWUgPSAlcyA+IiwgTlNTdHJpbmdGcm9tQ2xhc3Moc2VsZi5jbGFzcyksIHNlbGYsIHNlbGYubmFt
ZSwgc2VsZi5rZXksIHNlbGYuZGVmYXVsdFZhbHVlID8gIm9uIiA6ICJvZmYiXTsKLX0KLQotLSAo
TlNTdHJpbmcgKiluYW1lCi17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50YWxGZWF0dXJlLT5uYW1l
KCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopa2V5Ci17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50YWxG
ZWF0dXJlLT5rZXkoKTsKLX0KLQotLSAoTlNTdHJpbmcgKilkZXRhaWxzCi17Ci0gICAgcmV0dXJu
IF9leHBlcmltZW50YWxGZWF0dXJlLT5kZXRhaWxzKCk7Ci19Ci0KLS0gKEJPT0wpZGVmYXVsdFZh
bHVlCi17Ci0gICAgcmV0dXJuIF9leHBlcmltZW50YWxGZWF0dXJlLT5kZWZhdWx0VmFsdWUoKTsK
LX0KLQotLSAoQk9PTClpc0hpZGRlbgotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVhdHVy
ZS0+aXNIaWRkZW4oKTsKLX0KLQotI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxl
bWVudGF0aW9uCi0KLS0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAgcmV0dXJuICpf
ZXhwZXJpbWVudGFsRmVhdHVyZTsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmVJ
bnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTBjMzBiN2E4YmI4MzYy
MWVjZWE0M2IxYmE0MjY0NzU5N2M5YjViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIl9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCIKLQot
I2ltcG9ydCAiQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oIgotI2ltcG9ydCAiV0tPYmplY3QuaCIK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8
QVBJOjpFeHBlcmltZW50YWxGZWF0dXJlPiB7Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNzID0gX1dL
RXhwZXJpbWVudGFsRmVhdHVyZTsKLX07Ci0KLX0KLQotQGludGVyZmFjZSBfV0tFeHBlcmltZW50
YWxGZWF0dXJlICgpIDxXS09iamVjdD4gewotQHBhY2thZ2UKLSAgICBBUEk6Ok9iamVjdFN0b3Jh
Z2U8QVBJOjpFeHBlcmltZW50YWxGZWF0dXJlPiBfZXhwZXJpbWVudGFsRmVhdHVyZTsKLX0KLUBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZp
dGllcy9Hcm91cEFjdGl2aXRpZXNTZXNzaW9uTm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlm
aWVyLm1tCmluZGV4IDU1MjdlYjg1NTg3ZmZiNDE5ZDUyZjYzZjU4MDE0YzAyNjRjNzQ2YzMuLjY5
NzZiYmI0NjgyOGEzY2M5MmExNTVlNWI5Y2RkOWM2MzAyMTI5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNT
ZXNzaW9uTm90aWZpZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3Jv
dXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc1Nlc3Npb25Ob3RpZmllci5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIEhBVkUo
R1JPVVBfQUNUSVZJVElFUykKIAorI2ltcG9ydCAiR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3Iu
aCIKICNpbXBvcnQgIldLR3JvdXBTZXNzaW9uLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNTdmMmQyN2U2ZjU0MGQ2NDgwMGNiYjNhNmY0ZjlmMWY0ZWY4ZTVkMy4uZmM1NTgxYTQ1Mjdk
Njk4YjgxZDI5NjM1YmE3MDYxY2ZjMDM2OGFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDIsNiArNDQyLDggQEAKIAkJMUNCQkU0
QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlFMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RjE5
QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0Yx
OEYzRjI2QkI1RDk1MDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGMThGM0UyNkJCNUQ5MDAwNEIx
NzIyIC8qIExvZ0luaXRpYWxpemF0aW9uLmNwcCAqLzsgfTsKKwkJMUQwNkNCRjQyNkZDMUMzMDAw
NzQ4N0Q4IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDA2Q0JGMzI2RkMxQzJGMDA3NDg3RDgg
LyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLzsgfTsKKwkJMUQwNkNCRjYyNkZD
NDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDZDQkY1MjZGQzQyMjYwMDc0ODdEOCAv
KiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHVibGljLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0
RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3
MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
LmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC04MjAsOCArODIyLDcg
QEAKIAkJMzE1NzEzNUYyMDQwQTlCMjAwODRGOUNGIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTU3MTM1
RDIwNDBBOUIyMDA4NEY5Q0YgLyogU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJ
MzE2QjhCNjQyMDU0QjU1ODAwQkQ0QTYyIC8qIFdLU3lzdGVtUHJldmlld1ZpZXcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkI4QjYyMjA1NEI1NTgw
MEJENEE2MiAvKiBXS1N5c3RlbVByZXZpZXdWaWV3LmggKi87IH07CiAJCTMxN0ZFN0M1MUM0ODdB
NkMwMEEwQ0E4OSAvKiBBUElFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDMjFDNDg3QTY2MDBBMENBODkgLyog
QVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oICovOyB9OwotCQkzMTdGRTdDRDFDNDg3REFFMDBBMENB
ODkgLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDOTFDNDg3RDlEMDBBMENBODkgLyog
X1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggKi87IH07Ci0JCTMxN0ZFN0NGMUM0ODdE
QkQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkgLyog
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTMxN0ZFN0NGMUM0ODdEQkQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1l
bnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTMxOEJFMTcx
MTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTcwMTQ3NDNEQjEwMEE4RkJC
MiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tOb3Rp
ZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxQTJFQzQ5MTQ4OTk3QzIw
MDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmlj
YXRpb24uaCAqLzsgfTsKQEAgLTMwNjgsNiArMzA2OSw4IEBACiAJCTFEMDUzMEQzMjU5MTYyQzkw
MEU0MzZGNyAvKiBXZWJLaXQtbWFjb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXQtbWFj
b3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBENDI1OTE2MkM5
MDBFNDM2RjcgLyogV2ViS2l0LXdhdGNob3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXQt
d2F0Y2hvcy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDUzMEQ1MjU5
MTk0MTUwMEU0MzZGNyAvKiBnZW5lcmF0ZS1mZWF0dXJlLWZsYWdzLXBsaXN0LnNoICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7
IHBhdGggPSAiZ2VuZXJhdGUtZmVhdHVyZS1mbGFncy1wbGlzdC5zaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFEMDZDQkYzMjZGQzFDMkYwMDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRh
bEZlYXR1cmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0V4
cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxRDA2Q0JGNTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFEMEI2NjE5MjYyNEMxMTgwMEY5NzEyRiAvKiBXZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRp
YUtleVN5c3RlbUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMEI2
NjFBMjYyNEMxOTYwMEY5NzEyRiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHBhdGggPSBFbmNyeXB0ZWRNZWRpYS9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBs
YXllclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjAxLDkgKzM2
MDQsOCBAQAogCQkzMTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBERktpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTdGRTdDMTFDNDg3QTY2MDBBMENBODkgLyogQVBJRXhwZXJpbWVudGFs
RmVhdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElFeHBl
cmltZW50YWxGZWF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE3RkU3
QzIxQzQ4N0E2NjAwQTBDQTg5IC8qIEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkgLyogX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tF
eHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxN0ZF
N0M4MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzE3RkU3QzkxQzQ4N0Q5RDAwQTBDQTg5
IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE3RkU3QzcxQzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhwZXJp
bWVudGFsRmVhdHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0V4cGVy
aW1lbnRhbEZlYXR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE3RkU3Qzgx
QzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5
c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN5c3RlbVByZXZp
ZXdDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzAx
NDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDU5
NCw4ICs0NTk2LDggQEAKIAkJNUNEMjg2NEUxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1
bGVMaXN0U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Q0QyODY0RjFFNzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGVudFJ1bGVMaXN0U3Rv
cmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0QyODY1MDFFNzIy
RjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNENzQ4QjUyM0M4RUIxOTAwOTJBOUI1IC8q
IE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDRDc0OEI1MjNDOEVCMTkwMDkyQTk5OSAvKiBXZWJVUkxTY2hlbWVI
YW5kbGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
UkxTY2hlbWVIYW5kbGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1Q0Q3NDhCNTIzQzhFQjE5MDA5MkE5QjUgLyogTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Jlc291cmNlTG9h
ZElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNFMEMzNjYyMjlG
MkQzRDAwMzY5NUYwIC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTBDMzY3MjI5RjJEM0UwMDM2OTVGMCAv
KiBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUNFMEMzNjgyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQ29udGV4
dE1lbnVFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1Nzks
NiArNjU4MSw3IEBACiAJCTFBNDNFODI2MTg4RjM4RTIwMDlFNEQzMCAvKiBEZXByZWNhdGVkICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDA2Q0JGNTI2
RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICovLAogCQkJCTFBRkI0
QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJMUFG
QjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8sCiAJCQkJ
MUE0QTkzQjYxQUVCMDhFQTAwMTUwRTlDIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5o
ICovLApAQCAtODEyNyw5ICs4MTMwLDYgQEAKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIg
LyogX1dLRWxlbWVudEFjdGlvbkludGVybmFsLmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3RTAw
QzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFCQzYx
OTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAotCQkJ
CTMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi8s
Ci0JCQkJMzE3RkU3QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUu
bW0gKi8sCi0JCQkJMzE3RkU3QzkxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmVJbnRlcm5hbC5oICovLAogCQkJCTAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBfV0tG
aW5kRGVsZWdhdGUuaCAqLywKIAkJCQkyREVBQzVDRTFBQzM2OEJCMDBBMTk1RDggLyogX1dLRmlu
ZE9wdGlvbnMuaCAqLywKIAkJCQkyRTdBOTQ0OTFCQkQ5NUM2MDA5NDU1NDcgLyogX1dLRm9jdXNl
ZEVsZW1lbnRJbmZvLmggKi8sCkBAIC04Mjk1LDYgKzgyOTUsOSBAQAogCQkJCTFBRjQ1OTJDMTk0
NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLm1tICovLAogCQkJCTFBMkQyNTJBMTk0Njg4RkQwMDQ1
MzdCMCAvKiBXS0Vycm9ySW50ZXJuYWwuaCAqLywKIAkJCQkzN0I1MDQ1MTE5RUVGMzEzMDBDRTJD
RjggLyogV0tFcnJvclByaXZhdGUuaCAqLywKKwkJCQkzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkg
LyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi8sCisJCQkJMzE3RkU3QzgxQzQ4N0Q5RDAwQTBD
QTg5IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLywKKwkJCQkxRDA2Q0JGMzI2RkMxQzJG
MDA3NDg3RDggLyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLywKIAkJCQk1MTRB
QjlFRjIzNUZBNTlCMDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTUx
NEFCOUYxMjM2MEU4M0QwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLm1tICovLAogCQkJ
CTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAqLywKQEAgLTExOTAy
LDggKzExOTA1LDcgQEAKIAkJCQkzNzlBODczQTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVu
dEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5QTg3M0MxOEJCRkYwNzAwNTg4QUYyIC8q
IF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMDFCQzkx
OTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkzMTdGRTdDRjFDNDg3REJEMDBBMENBODkgLyogX1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzE3RkU3Q0QxQzQ4N0RBRTAwQTBDQTg5IC8qIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQwNkNC
RjYyNkZDNDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJERUFDNUNGMUFDMzY4QkIwMEExOTVEOCAvKiBfV0tGaW5kT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU3QTk0NEExQkJEOTdDMzAwOTQ1NTQ3IC8qIF9X
S0ZvY3VzZWRFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzAwMyw2ICsxMzAwNSw4
IEBACiAJCQkJMzdCNTA0NTIxOUVFRjMxMzAwQ0UyQ0Y4IC8qIFdLRXJyb3JQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQwNzVGQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tFcnJvclJlZi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc4M0QxMjUwRkFERDAwNjhGMjBBIC8qIFdLRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMxN0ZFN0NGMUM0ODdEQkQwMEEwQ0E4OSAvKiBXS0V4cGVy
aW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMDZDQkY0MjZGQzFDMzAwMDc0
ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTU4QjZGMDgxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdL
RmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbEZlYXR1cmVzLm1tLmVyYiBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1NjcmlwdHMv
UHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5t
bS5lcmIKaW5kZXggYWIxZWQyNGNjNDE3NTYwZmVhNmRkODUwNDJkZDkyNzU4YWY0OGM2Ny4uY2Ex
Y2JkNTgwYzA4ZmI1MjNmYmMwZjNjODEzNGVjNWQ0OWJkYzNmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYgorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsRmVhdHVyZXMubW0uZXJiCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZUV4cGVyaW1l
bnRhbEZlYXR1cmVzKQogCi0rIChOU0FycmF5PFdlYkZlYXR1cmUgKj4gKilfZXhwZXJpbWVudGFs
RmVhdHVyZXMKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1cmVz
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0FycmF5PFdlYkZlYXR1
cmUgKj4+PiBmZWF0dXJlcyA9IEBbCiA8JS0gZm9yIEBwcmVmIGluIEBleHBvc2VkRXhwZXJpbWVu
dGFsRmVhdHVyZXMgZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBmYzcxNGE1ZGU0OTEzZjY4MThm
YTM2ZTIwOTUxNTJiYzA4ZDFhNzFkLi4yZTM0MTk1NzNiN2E2YzdlMDhjNTJiN2QwNTI4MTkzMGIz
ZmFmOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI5OSw3ICsyOTksNyBAQCBleHRlcm4gTlNTdHJp
bmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBX
RUJLSVRfREVQUgogLy8gRm9yIHVzZSBieSBNaW5pQnJvd3NlciBhbmQgdGVzdGluZyBpbmZyYXN0
cnVjdHVyZSBvbmx5CiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVFeHBl
cmltZW50YWxGZWF0dXJlcykKLSsgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKV9leHBlcmltZW50
YWxGZWF0dXJlczsKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1
cmVzOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlSW50ZXJu
YWxGZWF0dXJlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyMDRhYTQzMmFhNTJhZTdkMDkxNzMwMDkwZTQ1NmEwZDYyYmZhNzJiLi4wMDBmMjVi
OTNiMzY4NzY4YjRlZDY0NWY0NjJiNTJiYTRmNTU1N2NhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDktMjIg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6Ly84MzI1NTUwMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9y
VGVzdE9wdGlvbnMpOgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tOgor
ICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdhdGUgZGVmYXVsdENvbmZpZ3VyYXRpb25dKToKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm06CisgICAgICAgICgt
W1NldHRpbmdzQ29udHJvbGxlciBfcG9wdWxhdGVNZW51XSk6CisgICAgICAgICgtW1NldHRpbmdz
Q29udHJvbGxlciB2YWxpZGF0ZU1lbnVJdGVtOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRy
b2xsZXIgdG9nZ2xlRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1bU2V0dGluZ3ND
b250cm9sbGVyIHJlc2V0QWxsRXhwZXJpbWVudGFsRmVhdHVyZXM6XSk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NsaXBib2FyZFRlc3RzLm1t
OgorICAgICAgICAoY3JlYXRlV2ViVmlld0ZvckNsaXBib2FyZFRlc3RzKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorCiAyMDIxLTA5LTIxICBQaGlsaXAgQ2hpbWVudG8gIDxwY2hpbWVudG9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgTExWTS9GTGFuZydzIGludDEyOF90IGltcGxlbWVudGF0aW9uIHRvIFdU
RgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDIxOWZj
OTY1ZWUxYWNkNjIyNzBhZjAyODVlODg4YjUyZDQ2YzRiNzEuLjBkNjVlNWM4ODAzZTQ2OGFjZWI4
ZmRiOTQ1YTkxZTNlZGYwMDEyNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KQEAgLTg2NSw3ICs4NjUsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJl
bmNlc0ZvclRlc3RPcHRpb25zKFdlYlByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgY29uc3QgVwog
ICAgICAgICBbcHJlZmVyZW5jZXMgX3Jlc2V0Rm9yVGVzdGluZ107CiAKICAgICAgICAgaWYgKGVu
YWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7Ci0gICAgICAgICAgICBmb3IgKFdlYkZlYXR1
cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pCisg
ICAgICAgICAgICBmb3IgKFdlYkZlYXR1cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIGV4
cGVyaW1lbnRhbEZlYXR1cmVzXSkKICAgICAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVu
YWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvQXBwRGVsZWdhdGUubQppbmRleCA3NWQ2OTFkZTI2YmZhOWYzZWRjMjBjNTMzMDBiN2EzMTQ5
YjczOWRhLi44NWUxMDljNDkxZDViODNkM2JhNzM4YTU0M2Q3ZmE1ODIyMTY2MGFhIDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQpAQCAtMjksMTMgKzI5LDEzIEBACiAjaW1wb3J0ICJT
ZXR0aW5nc0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJXSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4K
LSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlLmg+CkBAIC0xMjAsMTQgKzEyMCwxNCBAQCAtIChXS1dlYlZpZXdDb25maWd1cmF0
aW9uICopZGVmYXVsdENvbmZpZ3VyYXRpb24KICAgICAgICAgCiAgICAgICAgIGNvbmZpZ3VyYXRp
b24ucHJvY2Vzc1Bvb2wgPSBbW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOnByb2Nlc3NDb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CiAKLSAgICAgICAgTlNB
cnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICpleHBlcmltZW50YWxGZWF0dXJlcyA9IFtX
S1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107Ci0gICAgICAgIGZvciAoX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgeworICAg
ICAgICBOU0FycmF5PFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVy
ZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CisgICAgICAgIGZvciAo
V0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7
CiAgICAgICAgICAgICBCT09MIGVuYWJsZWQ7CiAgICAgICAgICAgICBpZiAoW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OmZlYXR1cmUua2V5XSkKICAg
ICAgICAgICAgICAgICBlbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gYm9vbEZvcktleTpmZWF0dXJlLmtleV07CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgZW5hYmxlZCA9IFtmZWF0dXJlIGRlZmF1bHRWYWx1ZV07Ci0gICAgICAgICAgICBb
Y29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDplbmFibGVkIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBbY29uZmlndXJhdGlvbi5wcmVmZXJl
bmNlcyBzZXRFbmFibGVkOmVuYWJsZWQgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsK
ICAgICAgICAgfQogCiAgICAgICAgIE5TQXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4g
KmludGVybmFsRGVidWdGZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9pbnRlcm5hbERlYnVnRmVh
dHVyZXNdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJv
bGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5tCmluZGV4
IDg0YmQxYThlZjBmYTE2YWMzODQyZWQ0YjdjYjk1ODhhNGQwNzUzYWQuLmZkNDkyMTU3ZjhmMGIw
YWQ4ZjVmMzZlNDlmNTE1N2FlZTM5M2RmYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9TZXR0aW5nc0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvU2V0
dGluZ3NDb250cm9sbGVyLm0KQEAgLTI3LDggKzI3LDggQEAKIAogI2ltcG9ydCAiQXBwRGVsZWdh
dGUuaCIKICNpbXBvcnQgIkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KIAogTlNTdHJpbmcgKiBj
b25zdCBrVXNlckFnZW50Q2hhbmdlZE5vdGlmaWNhdGlvbk5hbWUgPSBAIlVzZXJBZ2VudENoYW5n
ZWROb3RpZmljYXRpb24iOwpAQCAtMjA0LDkgKzIwNCw5IEBAIC0gKHZvaWQpX3BvcHVsYXRlTWVu
dQogICAgIE5TTWVudSAqZXhwZXJpbWVudGFsRmVhdHVyZXNNZW51ID0gW1tOU01lbnUgYWxsb2Nd
IGluaXRXaXRoVGl0bGU6QCJFeHBlcmltZW50YWwgRmVhdHVyZXMiXTsKICAgICBbZXhwZXJpbWVu
dGFsRmVhdHVyZXNTdWJtZW51SXRlbSBzZXRTdWJtZW51OmV4cGVyaW1lbnRhbEZlYXR1cmVzTWVu
dV07CiAKLSAgICBOU0FycmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRh
bEZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBO
U0FycmF5PFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBb
V0tQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CiAKLSAgICBmb3IgKF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAgICBm
b3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJl
cykgewogICAgICAgICBOU01lbnVJdGVtICppdGVtID0gW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0
V2l0aFRpdGxlOmZlYXR1cmUubmFtZSBhY3Rpb246QHNlbGVjdG9yKHRvZ2dsZUV4cGVyaW1lbnRh
bEZlYXR1cmU6KSBrZXlFcXVpdmFsZW50OkAiIl07CiAgICAgICAgIGl0ZW0udG9vbFRpcCA9IGZl
YXR1cmUuZGV0YWlsczsKICAgICAgICAgaXRlbS5yZXByZXNlbnRlZE9iamVjdCA9IGZlYXR1cmU7
CkBAIC00MDksOCArNDA5LDggQEAgLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVt
ICopbWVudUl0ZW0KIAogICAgIFdLUHJlZmVyZW5jZXMgKmRlZmF1bHRQcmVmZXJlbmNlcyA9IFtb
TlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYnJvd3NlckFwcERlbGVnYXRlXS5kZWZh
dWx0UHJlZmVyZW5jZXM7CiAgICAgaWYgKG1lbnVJdGVtLnRhZyA9PSBFeHBlcmltZW50YWxGZWF0
dXJlVGFnKSB7Ci0gICAgICAgIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgPSBtZW51
SXRlbS5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltkZWZh
dWx0UHJlZmVyZW5jZXMgX2lzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV0g
PyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZhbHVlT2ZmXTsKKyAgICAg
ICAgV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlID0gbWVudUl0ZW0ucmVwcmVzZW50ZWRP
YmplY3Q7CisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbZGVmYXVsdFByZWZlcmVuY2VzIGlz
RW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV0gPyBOU0NvbnRyb2xTdGF0ZVZh
bHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZhbHVlT2ZmXTsKICAgICB9CiAgICAgaWYgKG1lbnVJdGVt
LnRhZyA9PSBJbnRlcm5hbERlYnVnRmVhdHVyZVRhZykgewogICAgICAgICBfV0tJbnRlcm5hbERl
YnVnRmVhdHVyZSAqZmVhdHVyZSA9IG1lbnVJdGVtLnJlcHJlc2VudGVkT2JqZWN0OwpAQCAtNzMy
LDExICs3MzIsMTEgQEAgLSAodm9pZCl0b2dnbGVEZWJ1Z092ZXJsYXk6KGlkKXNlbmRlcgogCiAt
ICh2b2lkKXRvZ2dsZUV4cGVyaW1lbnRhbEZlYXR1cmU6KGlkKXNlbmRlcgogewotICAgIF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgPSAoKE5TTWVudUl0ZW0gKilzZW5kZXIpLnJlcHJl
c2VudGVkT2JqZWN0OworICAgIFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSA9ICgoTlNN
ZW51SXRlbSAqKXNlbmRlcikucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgV0tQcmVmZXJlbmNlcyAq
cHJlZmVyZW5jZXMgPSBbW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJB
cHBEZWxlZ2F0ZV0uZGVmYXVsdFByZWZlcmVuY2VzOwogCi0gICAgQk9PTCBjdXJyZW50bHlFbmFi
bGVkID0gW3ByZWZlcmVuY2VzIF9pc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1
cmVdOwotICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDohY3VycmVudGx5RW5hYmxlZCBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgIEJPT0wgY3VycmVudGx5RW5hYmxlZCA9
IFtwcmVmZXJlbmNlcyBpc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwor
ICAgIFtwcmVmZXJlbmNlcyBzZXRFbmFibGVkOiFjdXJyZW50bHlFbmFibGVkIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBzZXRCb29sOiFjdXJyZW50bHlFbmFibGVkIGZvcktleTpmZWF0dXJlLmtleV07
CiB9CkBAIC03NTUsMTAgKzc1NSwxMCBAQCAtICh2b2lkKXRvZ2dsZUludGVybmFsRGVidWdGZWF0
dXJlOihpZClzZW5kZXIKIC0gKHZvaWQpcmVzZXRBbGxFeHBlcmltZW50YWxGZWF0dXJlczooaWQp
c2VuZGVyCiB7CiAgICAgV0tQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSBbW05TQXBwbGljYXRp
b24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBEZWxlZ2F0ZV0uZGVmYXVsdFByZWZlcmVu
Y2VzOwotICAgIE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFs
RmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdOworICAgIE5T
QXJyYXk8V0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICpleHBlcmltZW50YWxGZWF0dXJlcyA9IFtX
S1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXTsKIAotICAgIGZvciAoX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgewotICAgICAg
ICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6ZmVhdHVyZS5kZWZhdWx0VmFsdWUgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAq
ZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgeworICAgICAgICBbcHJlZmVyZW5jZXMg
c2V0RW5hYmxlZDpmZWF0dXJlLmRlZmF1bHRWYWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZl
YXR1cmVdOwogICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBz
ZXRCb29sOmZlYXR1cmUuZGVmYXVsdFZhbHVlIGZvcktleTpmZWF0dXJlLmtleV07CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1t
CmluZGV4IDgxZjIzNGFiNzc5ZmYxODVkODM2N2U4OWE0ZmI1YTQ3YmVjM2MxNmQuLmQ3ZWUyMjQy
MTMzN2Q2NjA3ZGJhYjJmNTU1NzI0MzdlODM5ZmY3ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNp
bXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlVzZXJNZWRpYUNhcHR1cmVVSURlbGVn
YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQYWdl
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KQEAgLTQxLDcgKzQyLDYgQEAKICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZl
YXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oPgogI2lt
cG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNzM2LDkgKzczNiw5IEBAIFRFU1QoV2ViS2l0Miwg
Q3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmdBbmRDYWxsaW5nKQogICAgICAgICBpZiAoW2Zl
YXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJs
ZWQiXSkKICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJu
YWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQotICAgIGZvciAoX1dLRXhwZXJpbWVudGFs
RmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNd
KSB7CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVy
ZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CiAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkg
aXNFcXVhbFRvU3RyaW5nOkAiV2ViUlRDUGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVk
Il0pCi0gICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6
ZmVhdHVyZV07CisgICAgICAgICAgICBbcHJlZmVyZW5jZXMgc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKICAgICB9CiAKICAgICBwcmVmZXJlbmNlcy5fbWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVNlc3Npb25Db29yZGluYXRvclRlc3Qu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclRlc3QubW0KaW5kZXggZDhhOWEyYjQ0MmFhYTkxMGM2ODFlMmRkZjVmNTAwYWNhZGU3ZmE0
MC4uYzRkMTM0Nzk3NzRjOWE4YzM1NmI5NjQ4ZWViZjY2MzBiM2VhZGRlNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JU
ZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yVGVzdC5tbQpAQCAtMjksMTEgKzI5LDExIEBACiAKICNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZl
YXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KQEAgLTE5
MCwxMSArMTkwLDkgQEAgcHVibGljOgogICAgICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgICAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwogCi0gICAgICAgIGZv
ciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhw
ZXJpbWVudGFsRmVhdHVyZXNdKSB7Ci0gICAgICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWxUb1N0cmluZzpAIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZCJdKQotICAgICAgICAg
ICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsK
LSAgICAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiTWVkaWFTZXNz
aW9uRW5hYmxlZCJdKQotICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZ
RVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7Cisg
ICAgICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yRW5hYmxlZCJdIHx8IFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJN
ZWRpYVNlc3Npb25FbmFibGVkIl0pCisgICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIHNldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAgIH0KIAog
ICAgICAgICBfd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DbGlwYm9hcmRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2xpcGJvYXJkVGVzdHMubW0KaW5kZXggNjVjMDc3OGRhMTFmYzBiZjFhOGJkMjU3
MzlkMjI2OGUwOTQ4ZTE2My4uNzdkZDJiMmFmYmQyNjFiNGU1YWQ5ZGVkZGRiYmViNDI5Mzk5ZDc2
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DbGlw
Ym9hcmRUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NsaXBib2FyZFRlc3RzLm1tCkBAIC0zMCw4ICszMCw4IEBACiAjaW1wb3J0ICJVSUtpdFNQSS5o
IgogI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0NvcmVTZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogCiBAaW50ZXJmYWNlIFRl
c3RXS1dlYlZpZXcgKENsaXBib2FyZFRlc3RzKQogCkBAIC03Niw5ICs3Niw5IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld0ZvckNsaXBib2FyZFRlc3RzKCkK
ICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldERP
TVBhc3RlQWxsb3dlZDpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ6WUVTXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1
cmVzXSkgeworICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1By
ZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUu
a2V5IGlzRXF1YWxUb1N0cmluZzpAIkFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCJdKSB7Ci0gICAg
ICAgICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1
cmVdOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbQppbmRleCBl
MjgzZjQ1OTA0NjM4MDk2ZjBiZjk4NDczODg0MWEyNmQwNjRlMzVlLi41MjI2ZmQ4Mjc0MDllMWJj
NTczY2U1OTc4ZDBlZjI0YWM5NjFiNGEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVyZW5jZXMubW0KQEAgLTI4LDEwICsyOCwxMCBAQAog
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQg
IlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlLmg+Ci0jaW1wb3J0
IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgogCiBURVNUKFdlYktpdCwgRGVmYXVsdFdLUHJlZmVyZW5jZXMpCkBAIC01NiwxNCArNTYs
MTQgQEAgVEVTVChXZWJLaXQsIExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIAogVEVTVChXZWJL
aXQsIEV4cGVyaW1lbnRhbEZlYXR1cmVzKQogewotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dL
UHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBOU0FycmF5ICpmZWF0dXJl
cyA9IFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXTsKICAgICBFWFBFQ1RfTk9U
X05VTEwoZmVhdHVyZXMpOwogCiAgICAgUmV0YWluUHRyPFdLUHJlZmVyZW5jZXM+IHByZWZlcmVu
Y2VzID0gYWRvcHROUyhbW1dLUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKIAotICAgIGZvciAo
X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgewotICAgICAgICBC
T09MIHZhbHVlID0gW3ByZWZlcmVuY2VzIF9pc0VuYWJsZWRGb3JGZWF0dXJlOmZlYXR1cmVdOwot
ICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6dmFsdWUgZm9yRmVhdHVyZTpmZWF0dXJl
XTsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykg
eworICAgICAgICBCT09MIHZhbHVlID0gW3ByZWZlcmVuY2VzIGlzRW5hYmxlZEZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRFbmFibGVkOnZh
bHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBjNjMzMTY3ODU4NTA3M2RkZWJkZjQ0MjZkMjAz
ZGZiMWQ1NmJiNzIyLi44YmRlNmYwNjJjMzdhMjg5MmEyNDk0YjQ5MzZhNzdjMjk4OGE5N2FkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBv
cnQgIlVzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNr
Rm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVM
aXN0U3RvcmUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmln
YXRpb25Qcml2YXRlLmg+CkBAIC00Niw3ICs0Nyw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgpAQCAtNzIwOCwxMSArNzIw
OCwxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNv
dXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQo
KV07CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwotICAgIGZvciAoX1dLRXhwZXJpbWVudGFs
RmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNd
KSB7CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVy
ZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CiAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkg
aXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pCi0gICAg
ICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIFtbd2ViVmll
d0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAgIGVsc2UgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFs
VG9TdHJpbmc6QCJDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCJdKQotICAgICAgICAg
ICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBbW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOmZlYXR1cmVdOwogICAgIH0KIAogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09O
U2NoZW1lIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGY3NTY1Nzcy
Y2Y5OWM2NWY1OWI4OWY2NWY3ZWEyYjRhNmM0MDMwNmUuLjIyMjBlNTI5MThkZWFjNzAzNzhhNTVl
YTM0MmVhN2JjYmU4Y2I5Y2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0zMyw2ICszMyw3
IEBACiAjaW1wb3J0ICJUZXN0VUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tVUkxTY2hlbWVIYW5kbGVyLmg+CkBAIC00Myw3ICs0NCw2IEBACiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgotI2ltcG9y
dCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggYWJhNGZiOTA3ZmIyMjdjMzc0MGRhZjA5YWYx
MWM3MTQ4MDY5N2UyNC4uNDg4Mzk4Njc3MThmOGUzM2NmNTJkZTUyOWYzMDg1MTdiMjkyNTdmZSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMzYsNiArMzYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXR0YWNobWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CkBAIC00NCw3ICs0NSw2IEBACiAjaW1w
b3J0IDxXZWJLaXQvX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaD4KLSNpbXBvcnQgPFdl
YktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1Ymxp
Y0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHVibGljS2V5
Q3JlZGVudGlhbFBhcmFtZXRlcnMuaD4KQEAgLTI5MCwxNCArMjkwLDE0IEBAIGNvbnN0IGNoYXIg
c3ViRnJhbWVbXSA9CiAiPC9zY3JpcHQ+IgogIjwvaHRtbD4iOwogCi1zdGF0aWMgX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKK3N0
YXRpYyBXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpCiB7Ci0gICAgc3RhdGljIFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJl
PiB0aGVGZWF0dXJlOworICAgIHN0YXRpYyBSZXRhaW5QdHI8V0tFeHBlcmltZW50YWxGZWF0dXJl
PiB0aGVGZWF0dXJlOwogICAgIGlmICh0aGVGZWF0dXJlKQogICAgICAgICByZXR1cm4gdGhlRmVh
dHVyZS5nZXQoKTsKIAotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4
cGVyaW1lbnRhbEZlYXR1cmVzXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZl
YXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVu
Y2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWw6QCJXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQiXSkgewogICAgICAgICAgICAgdGhlRmVhdHVy
ZSA9IGZlYXR1cmU7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMwNiwxNCArMzA2LDE0IEBAIHN0
YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKQogICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgpOwogfQogCi1zdGF0aWMgX1dL
RXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCkKK3N0YXRpYyBXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7Ci0gICAgc3RhdGljIFJldGFpblB0cjxfV0tF
eHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOworICAgIHN0YXRpYyBSZXRhaW5QdHI8V0tF
eHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOwogICAgIGlmICh0aGVGZWF0dXJlKQogICAg
ICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKIAotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0g
W1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKLSAgICBmb3IgKF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICBOU0FycmF5ICpmZWF0
dXJlcyA9IFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBmb3IgKFdL
RXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgewogICAgICAgICBpZiAo
W2ZlYXR1cmUua2V5IGlzRXF1YWw6QCJXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQiXSkg
ewogICAgICAgICAgICAgdGhlRmVhdHVyZSA9IGZlYXR1cmU7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTQzMCw3ICs0MzAsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxO
ZmNTdWNjZWVkKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
W3dlYlZpZXcgZm9jdXNdOwpAQCAtNDQ1LDcgKzQ0NSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTm9QYW5lbEhpZFN1Y2Nlc3MpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBmb2N1c107CkBAIC00NjAsOCArNDYwLDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MxKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTQ4Myw4ICs0ODMsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkU3VjY2VzczIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MTEsOCArNTExLDggQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kxKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTUzNiw4ICs1MzYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVs
UmFjeTIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5m
YyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTYxLDggKzU2MSw4IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGFuZWxUd2ljZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01ODUs
OCArNTg1LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWxvYWRIaWRDYW5jZWwp
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5j
ZWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTYwNiw4ICs2MDYsOCBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExvY2F0aW9uQ2hhbmdlSGlkQ2FuY2VsKQogICAgIFJldGFpblB0
cjxOU1VSTD4gb3RoZXJVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC02MjcsOCArNjI3LDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOZXdMb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0
cjxOU1VSTD4gb3RoZXJVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC02NDcsOCArNjQ3LDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBDbG9zZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtNjg2LDggKzY4Niw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgU3ViRnJhbWVDaGFuZ2VMb2NhdGlvbkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC03MzEsOCArNzMxLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBTdWJG
cmFtZURlc3RydWN0aW9uSGlkQ2FuY2VsKQogICAgIH0pOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc1
MSw4ICs3NTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2Vs
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2Fu
Y2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03NzIsOCArNzcyLDggQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50
aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzkxLDggKzc5MSw4IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxVMmZDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVu
dGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTgxMCw4ICs4MTAsOCBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZFN1Y2Nlc3MpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtODMwLDggKzgzMCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRmFr
ZVBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC04NTAsOCArODUwLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBOdWxsUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNs
YXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JU
ZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxl
ZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5h
YmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0
aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg3MCw4ICs4NzAs
OCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51bGxQYW5lbEhpZEN0YXBOb0NyZWRl
bnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODkxLDgg
Kzg5MSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxNdWx0aXBsZU5GQ1Rh
Z3NQcmVzZW50KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1uZmMtbXVsdGlwbGUtdGFncyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTExLDggKzkx
MSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWxSZWxvYWRO
b0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05MzIsOCArOTMyLDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3NDYW5jZWxOb0NyYXNoKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTk1MSw4ICs5NTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVk
ZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTcwLDggKzk3MCw4IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UmV0cmllc0Vycm9yKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMt
ZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtOTg1LDggKzk4NSw4IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50RXJyb3IpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVl
bWVudC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBbd2ViVmlldyBmb2N1c107CkBAIC0xMDAwLDggKzEwMDAsOCBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck5vRGVsZWdhdGUpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBbd2ViVmlldyBmb2N1c107CkBAIC0xMDE1LDggKzEwMTUsOCBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC0xMDM0LDggKzEwMzQsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxp
ZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA1NSw4ICsxMDU1LDgg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRF
cnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWdldC1waW4tdG9rZW4tcGluLWJsb2NrZWQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTEwNzYsOCArMTA3Niw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGluR2V0UGluVG9rZW5QaW5BdXRoQmxvY2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0
aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDk3LDggKzEwOTcs
OCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluSW52YWxp
ZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNz
UGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTE3LDggKzExMTcsOCBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluQXV0aEludmFsaWRFcnJvckFuZFJldHJ5
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC0xMTM3LDggKzExMzcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIE1ha2VDcmVkZW50aWFsUGluKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEx
NTYsOCArMTE1Niw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRp
YWxQaW5BdXRoQmxvY2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xMTc3LDggKzExNzcsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIE1ha2VDcmVkZW50aWFsUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWVycm9y
LXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTk3LDggKzExOTcsOCBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbikKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtMTIxNiw4ICsxMjE2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBHZXRBc3NlcnRpb25QaW5BdXRoQmxvY2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTIzNyw4ICsxMjM3LDggQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1pbnZhbGlk
LWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjU4LDggKzEyNTgsOCBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5mY1BpbkNhY2hlZERpc2Nvbm5lY3QpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1waW4tZGlz
Y29ubmVjdCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI3OCw4ICsxMjc4LDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNdWx0aXBsZUFjY291bnRzTnVsbERlbGVnYXRlKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbXVsdGlw
bGUtYWNjb3VudHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyOTcsOCArMTI5Nyw4IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50cykKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291
bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzIwLDggKzEzMjAsOCBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
QEAgLTEzMzgsOCArMTMzOCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFEdXBs
aWNhdGVDcmVkZW50aWFsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLWR1cGxpY2F0ZS1jcmVkZW50aWFsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMzU4LDggKzEzNTgsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTm9D
cmVkZW50aWFsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM3Niw4ICsxMzc2LDggQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsTnVsbERlbGVnYXRlKQogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xMzk1LDggKzEzOTUsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxEaXNhbGxvd0xvY2FsQXV0aGVudGljYXRvcikKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQxMyw4ICsxNDEzLDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsQWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTE0MzQsOCArMTQzNCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbE5vTW9ja05vVXNlckdlc3R1cmUpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jayIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQ1Miw4ICsxNDUyLDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsUm9sbEJhY2tDcmVkZW50aWFsKQogICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLWF0dGVzdGF0aW9u
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDg2LDggKzE0ODYsOCBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTUwNyw4ICsxNTA3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2Vy
dGlvbk5vTW9ja05vVXNlckdlc3R1cmUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1
MjUsOCArMTUyNSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRp
b25NdWx0aXBsZU9yZGVyKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMjA2MSw4ICsyMDYxLDggQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBEZWxldGVPbmVDcmVkZW50aWFsKQogVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWNvdmVyQWZ0ZXJBdXRoTlByb2Nlc3NDcmFzaCkKIHsK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIEVYUEVD
VF9FUShbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0sIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439014</attachid>
            <date>2021-09-22 23:06:33 -0700</date>
            <delta_ts>2021-09-23 10:26:00 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230667-20210922230632.patch</filename>
            <type>text/plain</type>
            <size>110976</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMz
NjdjMGY3NmZjYTZjZTljMDg0YTYwM2IuLmE5Y2ExYjYxMWMyYmQ1ZTNjYjFiYWIwNTc4NjVhODQ5
YTBkNzc5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50
YWxGZWF0dXJlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbS4KKyAgICAgICAgKC1b
V0tFeHBlcmltZW50YWxGZWF0dXJlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50
YWxGZWF0dXJlIG5hbWVdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIGtleV0p
OgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGV0YWlsc10pOgorICAgICAgICAo
LVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGVmYXVsdFZhbHVlXSk6CisgICAgICAgICgtW1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSBpc0hpZGRlbl0pOgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZl
YXR1cmUgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dLUHJlZmVyZW5j
ZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpc0Vu
YWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2Vz
IHNldEVuYWJsZWQ6Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpmb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vz
c2lvbk5vdGlmaWVyLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIChtYW51YWxseSkgcmV2ZXJ0aW5nIHIyODI4NTYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDNmZGQ0OWEwMzhiNDM5NjhkOTU4MzNiNTA1OWI3
NjA0OWFlYTA0Yy4uNzFjNDYwODAyM2M3ZjFjYzJjOGYxYzJhMTkwNDNmZjM2ZGYwZTEyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTIyICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvbW90ZSBfV0tFeHBl
cmltZW50YWxGZWF0dXJlIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMwNjY3CisgICAgICAgIDxyZGFyOi8vODMyNTU1MDM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZl
cmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMubW0uZXJi
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIwMjEtMDkt
MjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIG1ha2VS
ZWYoKSBhbmQgdXNlIFJlZiB7IH0gaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCmluZGV4IDFkN2I4ZGQyZThjODIyZGZiN2ZlNjM5MDMwMTcyN2NlNWVkNGQ1NmIu
Ljk4ZTdjMzBlOGU2MzEwMGUxMWI1Njc4MjIwMTU1OTMxMDdmYjg1NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIldL
Q29udGVudFdvcmxkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5m
b0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Rvd25sb2FkSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldL
RXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJX
S05TQXJyYXkuaCIKQEAgLTc0LDcgKzc1LDYgQEAKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNz
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbkludGVybmFs
LmgiCiAjaW1wb3J0ICJfV0tDdXN0b21IZWFkZXJGaWVsZHNJbnRlcm5hbC5oIgotI2ltcG9ydCAi
X1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRs
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZVRyZWVOb2RlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIl9XS0dlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgpAQCAtMjMyLDcgKzIzMiw3IEBA
IHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUpCiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBUeXBlOjpFeHBlcmltZW50YWxGZWF0dXJlOgotICAgICAgICB3
cmFwcGVyID0gW19XS0V4cGVyaW1lbnRhbEZlYXR1cmUgYWxsb2NdOworICAgICAgICB3cmFwcGVy
ID0gW1dLRXhwZXJpbWVudGFsRmVhdHVyZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBUeXBlOjpFcnJvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAxMWU3Mjk2ODRlNGEy
YWRmMGI1Y2I4OTNhZDY3OTFkOTAwNTgyNjA1Li45NTc4MDFhYzRmZDRlNzg0ZTc3ODc4Mjc4NjAy
ODE5Yjc1NTJiYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODAsNyArMjgwLDYgQEAg
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0b21IZWFkZXJGaWVsZHMubW0gQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0VsZW1lbnRBY3Rpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcubW0KLVVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5t
bQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yLm1tCkBAIC0zMjgsNiArMzI3LDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRXb3JsZC5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5tbQogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9yLm1tCitVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRDb25maWd1cmF0aW9uLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRmluZFJlc3VsdC5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1l
SW5mby5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMTdkNzY5OWI5NTJiMWM4ZTY4
YTUyMmNkODNkZWJiMDA5ODQwMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorQGludGVyZmFjZSBXS0V4cGVyaW1lbnRh
bEZlYXR1cmUgOiBOU09iamVjdAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNv
cHkpIE5TU3RyaW5nICprZXk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqZGV0YWlsczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBk
ZWZhdWx0VmFsdWU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0hp
ZGRlbikgQk9PTCBoaWRkZW47CisKK0BlbmQKKworQGludGVyZmFjZSBfV0tFeHBlcmltZW50YWxG
ZWF0dXJlIDogV0tFeHBlcmltZW50YWxGZWF0dXJlCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMjUzMGQzODEyNGRhNDM2MDNiY2U0OWI1NTRiN2U3ZDhjMjFjYjE3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5tbQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgi
CisKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKworQGltcGxlbWVudGF0
aW9uIFdLRXhwZXJpbWVudGFsRmVhdHVyZQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAo
V2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLRXhwZXJpbWVudGFs
RmVhdHVyZS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGV4cGVyaW1lbnRh
bEZlYXR1cmUtPkFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZTo6fkV4cGVyaW1lbnRhbEZlYXR1cmUo
KTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlv
bgoreworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQDogJXA7IG5h
bWUgPSAlQDsga2V5ID0gJUA7IGRlZmF1bHRWYWx1ZSA9ICVzID4iLCBOU1N0cmluZ0Zyb21DbGFz
cyhzZWxmLmNsYXNzKSwgc2VsZiwgc2VsZi5uYW1lLCBzZWxmLmtleSwgc2VsZi5kZWZhdWx0VmFs
dWUgPyAib24iIDogIm9mZiJdOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICByZXR1
cm4gZXhwZXJpbWVudGFsRmVhdHVyZS0+bmFtZSgpOworfQorCistIChOU1N0cmluZyAqKWtleQor
eworICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5rZXkoKTsKK30KKworLSAoTlNTdHJp
bmcgKilkZXRhaWxzCit7CisgICAgcmV0dXJuIGV4cGVyaW1lbnRhbEZlYXR1cmUtPmRldGFpbHMo
KTsKK30KKworLSAoQk9PTClkZWZhdWx0VmFsdWUKK3sKKyAgICByZXR1cm4gZXhwZXJpbWVudGFs
RmVhdHVyZS0+ZGVmYXVsdFZhbHVlKCk7Cit9CisKKy0gKEJPT0wpaXNIaWRkZW4KK3sKKyAgICBy
ZXR1cm4gZXhwZXJpbWVudGFsRmVhdHVyZS0+aXNIaWRkZW4oKTsKK30KKworI3ByYWdtYSBtYXJr
IFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBp
T2JqZWN0Cit7CisgICAgcmV0dXJuICpleHBlcmltZW50YWxGZWF0dXJlOworfQorCitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50
YWxGZWF0dXJlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYjAyOTg0Y2I2YTM3
N2JmYmE1OGNiNTkxYTg4ZDY2NDI2MGNiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJBUElFeHBlcmltZW50
YWxGZWF0dXJlLmgiCisjaW1wb3J0ICJXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCIKKyNpbXBvcnQg
IldLT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBX
cmFwcGVyVHJhaXRzPEFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZT4geworICAgIHVzaW5nIFdyYXBw
ZXJDbGFzcyA9IFdLRXhwZXJpbWVudGFsRmVhdHVyZTsKK307CisKK30KKworQGludGVyZmFjZSBX
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQSTo6
T2JqZWN0U3RvcmFnZTxBUEk6OkV4cGVyaW1lbnRhbEZlYXR1cmU+IGV4cGVyaW1lbnRhbEZlYXR1
cmU7Cit9CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaAppbmRleCBlMGNlMTdiZDM2ZjI1MzI3YTcwZDg3MzU5MTBhMWI2YTc0ZTYz
YzNhLi42YjE4YTI2NzRiMDFmY2NiMjA5MmRhM2FiZjU3YjM3ZDY0N2NkNWFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKIC8qISBB
IFdLUHJlZmVyZW5jZXMgb2JqZWN0IGVuY2Fwc3VsYXRlcyB0aGUgcHJlZmVyZW5jZSBzZXR0aW5n
cyBmb3IgYSB3ZWIKQEAgLTY0LDYgKzY1LDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQogKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNUZXh0
SW50ZXJhY3Rpb25FbmFibGVkKSBCT09MIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMS4zKSwgaW9zKDE0LjUpKTsKIAorLyohCisgKi8KKysgKE5TQXJyYXk8
V0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICopZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLSAoQk9PTClp
c0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilm
ZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKXNldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTooV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tQ
cmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA3MTY0Zjg4NjAwNzhlMjA3MWFiOGM1
ZmQ0NjY4OGYzNGRmYWFhZjIyLi4wODBmZGIwMTZlNmZiYjE3N2Y2ZDZjMDhiZWFkYTU2MzJlMDFk
NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaW1wb3J0ICJBUElBcnJheS5oIgogI2lt
cG9ydCAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVh
dHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldlYlByZWZl
cmVuY2VzLmgiCi0jaW1wb3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKICNp
bXBvcnQgIl9XS0ludGVybmFsRGVidWdGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTE1
Myw2ICsxNTMsMjIgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX3By
ZWZlcmVuY2VzLT5zZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKHRleHRJbnRlcmFjdGlvbkVuYWJs
ZWQpOwogfQogCisrIChOU0FycmF5PFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKWV4cGVyaW1l
bnRhbEZlYXR1cmVzCit7CisgICAgYXV0byBmZWF0dXJlcyA9IFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXM6OmV4cGVyaW1lbnRhbEZlYXR1cmVzKCk7CisgICAgcmV0dXJuIHdyYXBwZXIoQVBJOjpBcnJh
eTo6Y3JlYXRlKFdURk1vdmUoZmVhdHVyZXMpKSk7Cit9CisKKy0gKEJPT0wpaXNFbmFibGVkRm9y
RXhwZXJpbWVudGFsRmVhdHVyZTooV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZQorewor
ICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmlzRmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVy
aW1lbnRhbEZlYXR1cmUpOworfQorCistICh2b2lkKXNldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTooV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZQorewor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0RmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1lbnRh
bEZlYXR1cmUsIHZhbHVlKTsKK30KKwogI3ByYWdtYSBtYXJrIE9TIFgtc3BlY2lmaWMgbWV0aG9k
cwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNTY0LDE0ICs1ODAsMTYgQEAgc3RhdGljIF9XS1N0
b3JhZ2VCbG9ja2luZ1BvbGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kg
cG9saWN5KQogICAgIFtzZWxmIF9zZXRFbmFibGVkOnZhbHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6ZmVhdHVyZV07CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFyaSBoYXMg
YWRvcHRlZCB0aGUgbmV3IEFQSS4KIC0gKEJPT0wpX2lzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlCiB7Ci0gICAgcmV0dXJuIF9w
cmVmZXJlbmNlcy0+aXNGZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+X2V4cGVyaW1lbnRhbEZlYXR1
cmUpOworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmlzRmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUt
PmV4cGVyaW1lbnRhbEZlYXR1cmUpOwogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBT
YWZhcmkgaGFzIGFkb3B0ZWQgdGhlIG5ldyBBUEkuCiAtICh2b2lkKV9zZXRFbmFibGVkOihCT09M
KXZhbHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilm
ZWF0dXJlCiB7Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRGZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+
X2V4cGVyaW1lbnRhbEZlYXR1cmUsIHZhbHVlKTsKKyAgICBfcHJlZmVyZW5jZXMtPnNldEZlYXR1
cmVFbmFibGVkKCpmZWF0dXJlLT5leHBlcmltZW50YWxGZWF0dXJlLCB2YWx1ZSk7CiB9CiAKIC0g
KEJPT0wpX2FwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1
cmUuaAppbmRleCAxZDQ0ZjdiM2Y3NmJmMjlkYTE1ODI2ZjM1OWFkMWYwZmUwMDQ2OGNkLi4wNzMz
YTAxYTI3ZGU1ZDhmNjNlODhiZWMxOTMyMzMwZGRiNDkwYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJl
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIz
LDE3ICsyMyw0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KLQotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KQotQGludGVyZmFjZSBfV0tFeHBlcmltZW50YWxGZWF0dXJlIDogTlNPYmplY3QKLQotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqa2V5OwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmRldGFpbHM7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgZGVmYXVsdFZhbHVlOwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNIaWRkZW4pIEJPT0wgaGlkZGVuOwotCi1AZW5kCisj
aW1wb3J0ICJXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzMGIzZjkyNTk2NTgzNDVjMGNjODI3NmQzZThm
M2U0MzcxZGNlNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1
cmUubW0KKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIK
LQotI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotCi1AaW1wbGVtZW50YXRp
b24gX1dLRXhwZXJpbWVudGFsRmVhdHVyZQotCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBpZiAo
V2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUuY2xhc3MsIHNlbGYpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZXhwZXJpbWVu
dGFsRmVhdHVyZS0+QVBJOjpFeHBlcmltZW50YWxGZWF0dXJlOjp+RXhwZXJpbWVudGFsRmVhdHVy
ZSgpOwotCi0gICAgW3N1cGVyIGRlYWxsb2NdOwotfQotCi0tIChOU1N0cmluZyAqKWRlc2NyaXB0
aW9uCi17Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsg
bmFtZSA9ICVAOyBrZXkgPSAlQDsgZGVmYXVsdFZhbHVlID0gJXMgPiIsIE5TU3RyaW5nRnJvbUNs
YXNzKHNlbGYuY2xhc3MpLCBzZWxmLCBzZWxmLm5hbWUsIHNlbGYua2V5LCBzZWxmLmRlZmF1bHRW
YWx1ZSA/ICJvbiIgOiAib2ZmIl07Ci19Ci0KLS0gKE5TU3RyaW5nICopbmFtZQotewotICAgIHJl
dHVybiBfZXhwZXJpbWVudGFsRmVhdHVyZS0+bmFtZSgpOwotfQotCi0tIChOU1N0cmluZyAqKWtl
eQotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVhdHVyZS0+a2V5KCk7Ci19Ci0KLS0gKE5T
U3RyaW5nICopZGV0YWlscwotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVhdHVyZS0+ZGV0
YWlscygpOwotfQotCi0tIChCT09MKWRlZmF1bHRWYWx1ZQotewotICAgIHJldHVybiBfZXhwZXJp
bWVudGFsRmVhdHVyZS0+ZGVmYXVsdFZhbHVlKCk7Ci19Ci0KLS0gKEJPT0wpaXNIaWRkZW4KLXsK
LSAgICByZXR1cm4gX2V4cGVyaW1lbnRhbEZlYXR1cmUtPmlzSGlkZGVuKCk7Ci19Ci0KLSNwcmFn
bWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgotCi0tIChBUEk6Ok9iamVj
dCYpX2FwaU9iamVjdAotewotICAgIHJldHVybiAqX2V4cGVyaW1lbnRhbEZlYXR1cmU7Ci19Ci0K
LUBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
eHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGUwYzMwYjdhOGJiODM2MjFlY2VhNDNiMWJhNDI2NDc1OTdjOWI1Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlLmgiCi0KLSNpbXBvcnQgIkFQSUV4cGVyaW1lbnRhbEZl
YXR1cmUuaCIKLSNpbXBvcnQgIldLT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZT4g
ewotICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU7Ci19Owot
Ci19Ci0KLUBpbnRlcmZhY2UgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAoKSA8V0tPYmplY3Q+IHsK
LUBwYWNrYWdlCi0gICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RXhwZXJpbWVudGFsRmVhdHVy
ZT4gX2V4cGVyaW1lbnRhbEZlYXR1cmU7Ci19Ci1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lv
bk5vdGlmaWVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0
aWVzL0dyb3VwQWN0aXZpdGllc1Nlc3Npb25Ob3RpZmllci5tbQppbmRleCA1NTI3ZWI4NTU4N2Zm
YjQxOWQ1MmY2M2Y1ODAxNGMwMjY0Yzc0NmMzLi42OTc2YmJiNDY4MjhhM2NjOTJhMTU1ZTViOWNk
ZDljNjMwMjEyOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9H
cm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRp
ZXNTZXNzaW9uTm90aWZpZXIubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKSAmJiBIQVZFKEdST1VQX0FDVElWSVRJRVMpCiAKKyNpbXBv
cnQgIkdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLmgiCiAjaW1wb3J0ICJXS0dyb3VwU2Vzc2lv
bi5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjMzI5OGU2ZTBhOTY3NDdjZWYwYTJi
YTExMzUzNDNjYzMzZDIxYmEuLjJiOWM3OGE2NzlhZDA4YTMxZWE4YWU5M2EwY2U1NDgxN2UwMTlh
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDQzLDYgKzQ0Myw4IEBACiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVj
dG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3Bl
Y3RvclVJTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNGMThGM0YyNkJCNUQ5NTAwNEIxNzIyIC8qIExv
Z0luaXRpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDRjE4RjNFMjZCQjVEOTAwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXphdGlvbi5j
cHAgKi87IH07CisJCTFEMDZDQkY0MjZGQzFDMzAwMDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZl
YXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQwNkNCRjMyNkZDMUMyRjAwNzQ4N0Q4IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZUlu
dGVybmFsLmggKi87IH07CisJCTFEMDZDQkY2MjZGQzQyMjYwMDc0ODdEOCAvKiBfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRDA2Q0JGNTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUQ0RDcz
NzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlF
RDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1
MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovOyB9OwpAQCAtODIxLDggKzgyMyw3IEBACiAJCTMxNTcxMzVGMjA0MEE5QjIwMDg0
RjlDRiAvKiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE1NzEzNUQyMDQwQTlCMjAwODRGOUNGIC8qIFN5c3Rl
bVByZXZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCTMxNkI4QjY0MjA1NEI1NTgwMEJENEE2MiAv
KiBXS1N5c3RlbVByZXZpZXdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTZCOEI2MjIwNTRCNTU4MDBCRDRBNjIgLyogV0tTeXN0ZW1QcmV2aWV3
Vmlldy5oICovOyB9OwogCQkzMTdGRTdDNTFDNDg3QTZDMDBBMENBODkgLyogQVBJRXhwZXJpbWVu
dGFsRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE3RkU3QzIxQzQ4N0E2NjAwQTBDQTg5IC8qIEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCAq
LzsgfTsKLQkJMzE3RkU3Q0QxQzQ4N0RBRTAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE3RkU3QzkxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRl
cm5hbC5oICovOyB9OwotCQkzMTdGRTdDRjFDNDg3REJEMDBBMENBODkgLyogX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE3RkU3QzcxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTdGRTdD
RjFDNDg3REJEMDBBMENBODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDNzFDNDg3RDlEMDBBMENB
ODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQkzMThCRTE3MTE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMThCRTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE4
QkUxNzkxNDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3ODE0NzQzRTZBMDBBOEZCQjIg
LyogV0tOb3RpZmljYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzMUEyRUM0OTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0
MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi87IH07CkBAIC0zMDkxLDYg
KzMwOTIsOCBAQAogCQkxRDA1MzBEMzI1OTE2MkM5MDBFNDM2RjcgLyogV2ViS2l0LW1hY29zLnBs
aXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5wbGlzdC54bWw7IHBhdGggPSAiV2ViS2l0LW1hY29zLnBsaXN0Ijsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUQwNTMwRDQyNTkxNjJDOTAwRTQzNkY3IC8qIFdlYktpdC13YXRjaG9z
LnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC54bWw7IHBhdGggPSAiV2ViS2l0LXdhdGNob3MucGxpc3QiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBENTI1OTE5NDE1MDBFNDM2RjcgLyogZ2VuZXJhdGUt
ZmVhdHVyZS1mbGFncy1wbGlzdC5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImdlbmVyYXRlLWZlYXR1cmUt
ZmxhZ3MtcGxpc3Quc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDA2Q0JGMzI2
RkMxQzJGMDA3NDg3RDggLyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQwNkNCRjUyNkZDNDIyNjAwNzQ4N0Q4
IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBCNjYxOTI2MjRD
MTE4MDBGOTcxMkYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBCNjYxQTI2MjRDMTk2MDBGOTcxMkYgLyogTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBFQ0VBQTIz
RkM4NTg0MDBEMTcyRjYgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzYyNCw5ICszNjI3LDggQEAKIAkJMzE3OEFGOTcyMEUyQTdG
ODAwNzRERTk0IC8qIFBERktpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQREZLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE3RkU3QzExQzQ4
N0E2NjAwQTBDQTg5IC8qIEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxN0ZFN0MyMUM0ODdBNjYwMEEwQ0E4OSAvKiBBUElF
eHBlcmltZW50YWxGZWF0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQ
SUV4cGVyaW1lbnRhbEZlYXR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzE3
RkU3QzcxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTdGRTdDODFDNDg3RDlEMDBBMENBODkgLyogX1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTMxN0ZFN0M5MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJl
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxN0ZF
N0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tFeHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxN0ZFN0M4MUM0ODdEOUQwMEEwQ0E4OSAvKiBXS0V4cGVy
aW1lbnRhbEZlYXR1cmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0V4cGVyaW1lbnRhbEZlYXR1cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxOEExRjA0MjA0RjQ3NjQwMDM0ODBCQyAvKiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTcwMTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlm
aWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTc0
MTQ3NDNERDYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2MTMsNiArNjYxNSw3IEBACiAJCTFBNDNFODI2
MTg4RjM4RTIwMDlFNEQzMCAvKiBEZXByZWNhdGVkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDA2Q0JGNTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oICovLAogCQkJCTFBRkI0QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBf
V0tXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJMUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8q
IF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8sCiAJCQkJMUE0QTkzQjYxQUVCMDhFQTAwMTUwRTlD
IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oICovLApAQCAtODE2Miw5ICs4MTY1LDYg
QEAKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVy
bmFsLmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3Zl
cnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFCQzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vy
cm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAotCQkJCTMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4
OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi8sCi0JCQkJMzE3RkU3QzgxQzQ4N0Q5RDAw
QTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW0gKi8sCi0JCQkJMzE3RkU3QzkxQzQ4
N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oICovLAogCQkJ
CTAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLywKIAkJCQky
REVBQzVDRTFBQzM2OEJCMDBBMTk1RDggLyogX1dLRmluZE9wdGlvbnMuaCAqLywKIAkJCQkyRTdB
OTQ0OTFCQkQ5NUM2MDA5NDU1NDcgLyogX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmggKi8sCkBAIC04
MzMwLDYgKzgzMzAsOSBAQAogCQkJCTFBRjQ1OTJDMTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9y
Lm1tICovLAogCQkJCTFBMkQyNTJBMTk0Njg4RkQwMDQ1MzdCMCAvKiBXS0Vycm9ySW50ZXJuYWwu
aCAqLywKIAkJCQkzN0I1MDQ1MTE5RUVGMzEzMDBDRTJDRjggLyogV0tFcnJvclByaXZhdGUuaCAq
LywKKwkJCQkzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJl
LmggKi8sCisJCQkJMzE3RkU3QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhwZXJpbWVudGFsRmVh
dHVyZS5tbSAqLywKKwkJCQkxRDA2Q0JGMzI2RkMxQzJGMDA3NDg3RDggLyogV0tFeHBlcmltZW50
YWxGZWF0dXJlSW50ZXJuYWwuaCAqLywKIAkJCQk1MTRBQjlFRjIzNUZBNTlCMDBFREMzOTYgLyog
V0tGaW5kQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTUxNEFCOUYxMjM2MEU4M0QwMEVEQzM5NiAv
KiBXS0ZpbmRDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4
QSAvKiBXS0ZpbmRSZXN1bHQuaCAqLywKQEAgLTExOTQ1LDggKzExOTQ4LDcgQEAKIAkJCQkzNzlB
ODczQTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzc5QTg3M0MxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMDFCQzkxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vy
cm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMTdGRTdDRjFDNDg3
REJEMDBBMENBODkgLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMzE3RkU3Q0QxQzQ4N0RBRTAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQwNkNCRjYyNkZDNDIyNjAwNzQ4N0Q4IC8qIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwNUQxNThGMThFNEM0
RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERUFD
NUNGMUFDMzY4QkIwMEExOTVEOCAvKiBfV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkU3QTk0NEExQkJEOTdDMzAwOTQ1NTQ3IC8qIF9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMzA0Niw2ICsxMzA0OCw4IEBACiAJCQkJMzdCNTA0NTIxOUVFRjMx
MzAwQ0UyQ0Y4IC8qIFdLRXJyb3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVG
QzEyNEZGMDI3MDA2OEYyMEEgLyogV0tFcnJvclJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0
MDc4M0QxMjUwRkFERDAwNjhGMjBBIC8qIFdLRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMx
N0ZFN0NGMUM0ODdEQkQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFEMDZDQkY0MjZGQzFDMzAwMDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZl
YXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4QjZGMDgxOEZDQTczMzAwOENC
QTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRBQjlGMDIz
NjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJl
bmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYiBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWxGZWF0dXJlcy5tbS5lcmIKaW5kZXggYWIxZWQyNGNjNDE3
NTYwZmVhNmRkODUwNDJkZDkyNzU4YWY0OGM2Ny4uY2ExY2JkNTgwYzA4ZmI1MjNmYmMwZjNjODEz
NGVjNWQ0OWJkYzNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0
cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVz
Lm1tLmVyYgorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TY3JpcHRzL1ByZWZlcmVuY2Vz
VGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMubW0uZXJiCkBAIC0z
Niw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZUV4cGVyaW1lbnRhbEZlYXR1cmVzKQogCi0rIChOU0Fy
cmF5PFdlYkZlYXR1cmUgKj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMKKysgKE5TQXJyYXk8V2Vi
RmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1cmVzCiB7CiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFJldGFpblB0cjxOU0FycmF5PFdlYkZlYXR1cmUgKj4+PiBmZWF0dXJlcyA9IEBbCiA8
JS0gZm9yIEBwcmVmIGluIEBleHBvc2VkRXhwZXJpbWVudGFsRmVhdHVyZXMgZG8gLSU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBmYzcxNGE1ZGU0OTEzZjY4MThmYTM2ZTIwOTUxNTJiYzA4ZDFhNzFkLi4y
ZTM0MTk1NzNiN2E2YzdlMDhjNTJiN2QwNTI4MTkzMGIzZmFmOGUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTI5OSw3ICsyOTksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVN
b2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLy8gRm9yIHVzZSBi
eSBNaW5pQnJvd3NlciBhbmQgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSBvbmx5CiAKIEBpbnRlcmZh
Y2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVFeHBlcmltZW50YWxGZWF0dXJlcykKLSsgKE5T
QXJyYXk8V2ViRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlczsKKysgKE5TQXJyYXk8
V2ViRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1cmVzOwogQGVuZAogCiBAaW50ZXJmYWNl
IFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlSW50ZXJuYWxGZWF0dXJlcykKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZWY4YWRiNzU3ZmIzNTIx
MDJiODIwNTZlOGNlYTgyNGRmN2Y1NTQ0Li4yMDAzOWEzYzA1NTk1MDJmZGQ3ZjNiNWVhYmUwMTc4
YTRmY2RjYTliIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFw
cGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgdG8gQVBJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2NjcK
KyAgICAgICAgPHJkYXI6Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVs
ZWdhdGUgZGVmYXVsdENvbmZpZ3VyYXRpb25dKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMv
U2V0dGluZ3NDb250cm9sbGVyLm06CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBfcG9w
dWxhdGVNZW51XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB2YWxpZGF0ZU1lbnVJ
dGVtOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgdG9nZ2xlRXhwZXJpbWVudGFs
RmVhdHVyZTpdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHJlc2V0QWxsRXhwZXJp
bWVudGFsRmVhdHVyZXM6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NsaXBib2FyZFRlc3RzLm1tOgorICAgICAgICAoY3JlYXRlV2ViVmll
d0ZvckNsaXBib2FyZFRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6V2ViQ29yZTo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA5LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUENNIHNob3Vs
ZCBpbmNsdWRlIHRoZSBidW5kbGUgSUQgb2YgdGhlIGFwcCBmcm9tIHdoaWNoIGl0IG9yaWdpbmF0
ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAyMTlm
Yzk2NWVlMWFjZDYyMjcwYWYwMjg1ZTg4OGI1MmQ0NmM0YjcxLi4wZDY1ZTVjODgwM2U0NjhhY2Vi
OGZkYjk0NWE5MWUzZWRmMDAxMjY2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCkBAIC04NjUsNyArODY1LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVy
ZW5jZXNGb3JUZXN0T3B0aW9ucyhXZWJQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMsIGNvbnN0IFcK
ICAgICAgICAgW3ByZWZlcmVuY2VzIF9yZXNldEZvclRlc3RpbmddOwogCiAgICAgICAgIGlmIChl
bmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcykgewotICAgICAgICAgICAgZm9yIChXZWJGZWF0
dXJlICpmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKQor
ICAgICAgICAgICAgZm9yIChXZWJGZWF0dXJlICpmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBl
eHBlcmltZW50YWxGZWF0dXJlc10pCiAgICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRF
bmFibGVkOllFUyBmb3JGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tIGIvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0FwcERlbGVnYXRlLm0KaW5kZXggNzVkNjkxZGUyNmJmYTlmM2VkYzIwYzUzMzAwYjdhMzE0
OWI3MzlkYS4uODVlMTA5YzQ5MWQ1YjgzZDNiYTczOGE1NDNkN2ZhNTgyMjE2NjBhYSAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0KKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0KQEAgLTI5LDEzICsyOSwxMyBAQAogI2ltcG9ydCAi
U2V0dGluZ3NDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXSzFCcm93c2VyV2luZG93Q29udHJvbGxl
ci5oIgogI2ltcG9ydCAiV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQgPFdl
YktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+
Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oPgpAQCAtMTIwLDE0ICsxMjAsMTQgQEAgLSAoV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWRlZmF1bHRDb25maWd1cmF0aW9uCiAgICAgICAgIAogICAgICAgICBjb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sID0gW1tbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOwogCi0gICAgICAgIE5T
QXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBb
V0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdOwotICAgICAgICBmb3IgKF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAg
ICAgICAgTlNBcnJheTxXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1
cmVzID0gW1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdOworICAgICAgICBmb3Ig
KFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykg
ewogICAgICAgICAgICAgQk9PTCBlbmFibGVkOwogICAgICAgICAgICAgaWYgKFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpmZWF0dXJlLmtleV0pCiAg
ICAgICAgICAgICAgICAgZW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIGJvb2xGb3JLZXk6ZmVhdHVyZS5rZXldOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIGVuYWJsZWQgPSBbZmVhdHVyZSBkZWZhdWx0VmFsdWVdOwotICAgICAgICAgICAg
W2NvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6ZW5hYmxlZCBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb24ucHJlZmVy
ZW5jZXMgc2V0RW5hYmxlZDplbmFibGVkIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07
CiAgICAgICAgIH0KIAogICAgICAgICBOU0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+
ICppbnRlcm5hbERlYnVnRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRy
b2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIubQppbmRl
eCA4NGJkMWE4ZWYwZmExNmFjMzg0MmVkNGI3Y2I5NTg4YTRkMDc1M2FkLi5mZDQ5MjE1N2Y4ZjBi
MGFkOGY1ZjM2ZTQ5ZjUxNTdhZWUzOTNkZmM3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1Nl
dHRpbmdzQ29udHJvbGxlci5tCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpbXBvcnQgIkFwcERlbGVn
YXRlLmgiCiAjaW1wb3J0ICJCcm93c2VyV2luZG93Q29udHJvbGxlci5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgog
I2ltcG9ydCA8V2ViS2l0L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CiAKIE5TU3RyaW5nICog
Y29uc3Qga1VzZXJBZ2VudENoYW5nZWROb3RpZmljYXRpb25OYW1lID0gQCJVc2VyQWdlbnRDaGFu
Z2VkTm90aWZpY2F0aW9uIjsKQEAgLTIwNCw5ICsyMDQsOSBAQCAtICh2b2lkKV9wb3B1bGF0ZU1l
bnUKICAgICBOU01lbnUgKmV4cGVyaW1lbnRhbEZlYXR1cmVzTWVudSA9IFtbTlNNZW51IGFsbG9j
XSBpbml0V2l0aFRpdGxlOkAiRXhwZXJpbWVudGFsIEZlYXR1cmVzIl07CiAgICAgW2V4cGVyaW1l
bnRhbEZlYXR1cmVzU3VibWVudUl0ZW0gc2V0U3VibWVudTpleHBlcmltZW50YWxGZWF0dXJlc01l
bnVdOwogCi0gICAgTlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICpleHBlcmltZW50
YWxGZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107CisgICAg
TlNBcnJheTxXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1cmVzID0g
W1dLUHJlZmVyZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdOwogCi0gICAgZm9yIChfV0tFeHBl
cmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7CisgICAg
Zm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVy
ZXMpIHsKICAgICAgICAgTlNNZW51SXRlbSAqaXRlbSA9IFtbTlNNZW51SXRlbSBhbGxvY10gaW5p
dFdpdGhUaXRsZTpmZWF0dXJlLm5hbWUgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVFeHBlcmltZW50
YWxGZWF0dXJlOikga2V5RXF1aXZhbGVudDpAIiJdOwogICAgICAgICBpdGVtLnRvb2xUaXAgPSBm
ZWF0dXJlLmRldGFpbHM7CiAgICAgICAgIGl0ZW0ucmVwcmVzZW50ZWRPYmplY3QgPSBmZWF0dXJl
OwpAQCAtNDA5LDggKzQwOSw4IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRl
bSAqKW1lbnVJdGVtCiAKICAgICBXS1ByZWZlcmVuY2VzICpkZWZhdWx0UHJlZmVyZW5jZXMgPSBb
W05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBEZWxlZ2F0ZV0uZGVm
YXVsdFByZWZlcmVuY2VzOwogICAgIGlmIChtZW51SXRlbS50YWcgPT0gRXhwZXJpbWVudGFsRmVh
dHVyZVRhZykgewotICAgICAgICBfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlID0gbWVu
dUl0ZW0ucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbZGVm
YXVsdFByZWZlcmVuY2VzIF9pc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVd
ID8gTlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlNDb250cm9sU3RhdGVWYWx1ZU9mZl07CisgICAg
ICAgIFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSA9IG1lbnVJdGVtLnJlcHJlc2VudGVk
T2JqZWN0OworICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W2RlZmF1bHRQcmVmZXJlbmNlcyBp
c0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdID8gTlNDb250cm9sU3RhdGVW
YWx1ZU9uIDogTlNDb250cm9sU3RhdGVWYWx1ZU9mZl07CiAgICAgfQogICAgIGlmIChtZW51SXRl
bS50YWcgPT0gSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVUYWcpIHsKICAgICAgICAgX1dLSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgPSBtZW51SXRlbS5yZXByZXNlbnRlZE9iamVjdDsKQEAgLTcz
MiwxMSArNzMyLDExIEBAIC0gKHZvaWQpdG9nZ2xlRGVidWdPdmVybGF5OihpZClzZW5kZXIKIAog
LSAodm9pZCl0b2dnbGVFeHBlcmltZW50YWxGZWF0dXJlOihpZClzZW5kZXIKIHsKLSAgICBfV0tF
eHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlID0gKChOU01lbnVJdGVtICopc2VuZGVyKS5yZXBy
ZXNlbnRlZE9iamVjdDsKKyAgICBXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgPSAoKE5T
TWVudUl0ZW0gKilzZW5kZXIpLnJlcHJlc2VudGVkT2JqZWN0OwogICAgIFdLUHJlZmVyZW5jZXMg
KnByZWZlcmVuY2VzID0gW1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2Vy
QXBwRGVsZWdhdGVdLmRlZmF1bHRQcmVmZXJlbmNlczsKIAotICAgIEJPT0wgY3VycmVudGx5RW5h
YmxlZCA9IFtwcmVmZXJlbmNlcyBfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0
dXJlXTsKLSAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6IWN1cnJlbnRseUVuYWJsZWQgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICBCT09MIGN1cnJlbnRseUVuYWJsZWQg
PSBbcHJlZmVyZW5jZXMgaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsK
KyAgICBbcHJlZmVyZW5jZXMgc2V0RW5hYmxlZDohY3VycmVudGx5RW5hYmxlZCBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogCiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gc2V0Qm9vbDohY3VycmVudGx5RW5hYmxlZCBmb3JLZXk6ZmVhdHVyZS5rZXld
OwogfQpAQCAtNzU1LDEwICs3NTUsMTAgQEAgLSAodm9pZCl0b2dnbGVJbnRlcm5hbERlYnVnRmVh
dHVyZTooaWQpc2VuZGVyCiAtICh2b2lkKXJlc2V0QWxsRXhwZXJpbWVudGFsRmVhdHVyZXM6KGlk
KXNlbmRlcgogewogICAgIFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gW1tOU0FwcGxpY2F0
aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLmRlZmF1bHRQcmVmZXJl
bmNlczsKLSAgICBOU0FycmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRh
bEZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBO
U0FycmF5PFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBb
V0tQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CiAKLSAgICBmb3IgKF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKLSAgICAg
ICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOmZlYXR1cmUuZGVmYXVsdFZhbHVlIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAgICAgICAgW3ByZWZlcmVuY2Vz
IHNldEVuYWJsZWQ6ZmVhdHVyZS5kZWZhdWx0VmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpm
ZWF0dXJlXTsKICAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Qm9vbDpmZWF0dXJlLmRlZmF1bHRWYWx1ZSBmb3JLZXk6ZmVhdHVyZS5rZXldOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5t
bQppbmRleCA4MWYyMzRhYjc3OWZmMTg1ZDgzNjdlODlhNGZiNWE0N2JlYzNjMTZkLi5kN2VlMjI0
MjEzMzdkNjYwN2RiYWIyZjU1NTcyNDM3ZTgzOWZmN2Y4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVc2VyTWVkaWFDYXB0dXJlVUlEZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFn
ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CkBAIC00MSw3ICs0Miw2IEBACiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxG
ZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTczNiw5ICs3MzYsOSBAQCBURVNUKFdlYktpdDIs
IENyYXNoR1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nQW5kQ2FsbGluZykKICAgICAgICAgaWYgKFtm
ZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFi
bGVkIl0pCiAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVy
bmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVz
XSkgeworICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZl
cmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5
IGlzRXF1YWxUb1N0cmluZzpAIldlYlJUQ1BsYXRmb3JtQ29kZWNzSW5HUFVQcm9jZXNzRW5hYmxl
ZCJdKQotICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JGZWF0dXJl
OmZlYXR1cmVdOworICAgICAgICAgICAgW3ByZWZlcmVuY2VzIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgfQogCiAgICAgcHJlZmVyZW5jZXMuX21l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JUZXN0Lm1tCmluZGV4IGQ4YTlhMmI0NDJhYWE5MTBjNjgxZTJkZGY1ZjUwMGFjYWRlN2Zh
NDAuLmM0ZDEzNDc5Nzc0YzlhOGMzNTZiOTY0OGVlYmY2NjMwYjNlYWRkZTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
VGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVNlc3Np
b25Db29yZGluYXRvclRlc3QubW0KQEAgLTI5LDExICsyOSwxMSBAQAogCiAjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxG
ZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+
CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0x
OTAsMTEgKzE5MCw5IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICAgICAgYXV0
byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKIAotICAgICAgICBm
b3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4
cGVyaW1lbnRhbEZlYXR1cmVzXSkgewotICAgICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0Vx
dWFsVG9TdHJpbmc6QCJNZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQiXSkKLSAgICAgICAg
ICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07
Ci0gICAgICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIk1lZGlhU2Vz
c2lvbkVuYWJsZWQiXSkKLSAgICAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6
WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0
dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewor
ICAgICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJNZWRpYVNlc3Np
b25Db29yZGluYXRvckVuYWJsZWQiXSB8fCBbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAi
TWVkaWFTZXNzaW9uRW5hYmxlZCJdKQorICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICB9CiAK
ICAgICAgICAgX3dlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2xpcGJvYXJkVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NsaXBib2FyZFRlc3RzLm1tCmluZGV4IDY1YzA3NzhkYTExZmMwYmYxYThiZDI1
NzM5ZDIyNjhlMDk0OGUxNjMuLjc3ZGQyYjJhZmJkMjYxYjRlNWFkOWRlZGRkYmJlYjQyOTM5OWQ3
NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xp
cGJvYXJkVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DbGlwYm9hcmRUZXN0cy5tbQpAQCAtMzAsOCArMzAsOCBAQAogI2ltcG9ydCAiVUlLaXRTUEku
aCIKICNpbXBvcnQgPENvcmVTZXJ2aWNlcy9Db3JlU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgot
I2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KIAogQGludGVyZmFjZSBU
ZXN0V0tXZWJWaWV3IChDbGlwYm9hcmRUZXN0cykKIApAQCAtNzYsOSArNzYsOSBAQCBzdGF0aWMg
UmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IGNyZWF0ZVdlYlZpZXdGb3JDbGlwYm9hcmRUZXN0cygp
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRE
T01QYXN0ZUFsbG93ZWQ6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOllFU107Ci0gICAgZm9yIChfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0
dXJlc10pIHsKKyAgICBmb3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQ
cmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc10pIHsKICAgICAgICAgaWYgKFtmZWF0dXJl
LmtleSBpc0VxdWFsVG9TdHJpbmc6QCJBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQiXSkgewotICAg
ICAgICAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0
dXJlXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVyZW5jZXMubW0KaW5kZXgg
ZTI4M2Y0NTkwNDYzODA5NmYwYmY5ODQ3Mzg4NDFhMjZkMDY0ZTM1ZS4uNTIyNmZkODI3NDA5ZTFi
YzU3M2NlNTk3OGQwZWYyNGFjOTYxYjRhMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tCkBAIC0yOCwxMCArMjgsMTAgQEAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0
ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZS5oPgotI2ltcG9y
dCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KIAogVEVTVChXZWJLaXQsIERlZmF1bHRXS1ByZWZlcmVuY2VzKQpAQCAtNTYsMTQgKzU2
LDE0IEBAIFRFU1QoV2ViS2l0LCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkpCiAKIFRFU1QoV2Vi
S2l0LCBFeHBlcmltZW50YWxGZWF0dXJlcykKIHsKLSAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtX
S1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107CisgICAgTlNBcnJheSAqZmVhdHVy
ZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CiAgICAgRVhQRUNUX05P
VF9OVUxMKGZlYXR1cmVzKTsKIAogICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VzPiBwcmVmZXJl
bmNlcyA9IGFkb3B0TlMoW1tXS1ByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CiAKLSAgICBmb3Ig
KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKLSAgICAgICAg
Qk9PTCB2YWx1ZSA9IFtwcmVmZXJlbmNlcyBfaXNFbmFibGVkRm9yRmVhdHVyZTpmZWF0dXJlXTsK
LSAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOnZhbHVlIGZvckZlYXR1cmU6ZmVhdHVy
ZV07CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMp
IHsKKyAgICAgICAgQk9PTCB2YWx1ZSA9IFtwcmVmZXJlbmNlcyBpc0VuYWJsZWRGb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICBbcHJlZmVyZW5jZXMgc2V0RW5hYmxlZDp2
YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYzYzMzE2Nzg1ODUwNzNkZGViZGY0NDI2ZDIw
M2RmYjFkNTZiYjcyMi4uOGJkZTZmMDYyYzM3YTI4OTJhMjQ5NGI0OTM2YTc3YzI5ODhhOTdhZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1w
b3J0ICJVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQmFj
a0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdFN0b3JlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZp
Z2F0aW9uUHJpdmF0ZS5oPgpAQCAtNDYsNyArNDcsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tF
eHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yLmg+CiAj
aW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KQEAgLTcyMDgsMTEgKzcy
MDgsMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBz
b3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVz
XSkgeworICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZl
cmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5
IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKQotICAg
ICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBbW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICBlbHNlIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVh
bFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeUVuYWJsZWQiXSkKLSAgICAgICAg
ICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgW1t3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTpmZWF0dXJlXTsKICAgICB9CiAKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNP
TlNjaGVtZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBmNzU2NTc3
MmNmOTljNjVmNTliODlmNjVmN2VhMmI0YTZjNDAzMDZlLi4yMjIwZTUyOTE4ZGVhYzcwMzc4YTU1
ZWEzNDJlYTdiY2JlOGNiOWNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMzMsNiArMzMs
NyBAQAogI2ltcG9ydCAiVGVzdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLVVJMU2NoZW1lSGFuZGxlci5oPgpAQCAtNDMsNyArNDQsNiBAQAogI2ltcG9y
dCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KLSNpbXBv
cnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGFiYTRmYjkwN2ZiMjI3YzM3NDBkYWYwOWFm
MTFjNzE0ODA2OTdlMjQuLjQ4ODM5ODY3NzE4ZjhlMzNjZjUyZGU1MjlmMzA4NTE3YjI5MjU3ZmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvckF0dGFjaG1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgpAQCAtNDQsNyArNDUsNiBAQAogI2lt
cG9ydCA8V2ViS2l0L19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oPgogI2ltcG9y
dCA8V2ViS2l0L19XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQdWJs
aWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1YmxpY0tl
eUNyZWRlbnRpYWxQYXJhbWV0ZXJzLmg+CkBAIC0yOTAsMTQgKzI5MCwxNCBAQCBjb25zdCBjaGFy
IHN1YkZyYW1lW10gPQogIjwvc2NyaXB0PiIKICI8L2h0bWw+IjsKIAotc3RhdGljIF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpCitz
dGF0aWMgV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKQogewotICAgIHN0YXRpYyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFsRmVhdHVy
ZT4gdGhlRmVhdHVyZTsKKyAgICBzdGF0aWMgUmV0YWluUHRyPFdLRXhwZXJpbWVudGFsRmVhdHVy
ZT4gdGhlRmVhdHVyZTsKICAgICBpZiAodGhlRmVhdHVyZSkKICAgICAgICAgcmV0dXJuIHRoZUZl
YXR1cmUuZ2V0KCk7CiAKLSAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9l
eHBlcmltZW50YWxGZWF0dXJlc107Ci0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIGZlYXR1cmVzKSB7CisgICAgTlNBcnJheSAqZmVhdHVyZXMgPSBbV0tQcmVmZXJl
bmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0Vx
dWFsOkAiV2ViQXV0aGVudGljYXRpb25FbmFibGVkIl0pIHsKICAgICAgICAgICAgIHRoZUZlYXR1
cmUgPSBmZWF0dXJlOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDYsMTQgKzMwNiwxNCBAQCBz
dGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCkKICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKIH0KIAotc3RhdGljIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpCitzdGF0aWMgV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewotICAgIHN0YXRpYyBSZXRhaW5QdHI8X1dL
RXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKKyAgICBzdGF0aWMgUmV0YWluUHRyPFdL
RXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKICAgICBpZiAodGhlRmVhdHVyZSkKICAg
ICAgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7CiAKLSAgICBOU0FycmF5ICpmZWF0dXJlcyA9
IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107Ci0gICAgZm9yIChfV0tFeHBl
cmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGZlYXR1cmVzKSB7CisgICAgTlNBcnJheSAqZmVh
dHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CisgICAgZm9yIChX
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKICAgICAgICAgaWYg
KFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIl0p
IHsKICAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJlOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC00MzAsNyArNDMwLDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOb1BhbmVs
TmZjU3VjY2VlZCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTQ0NSw3ICs0NDUsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIE5vUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtNDYwLDggKzQ2MCw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzMSkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC00ODMsOCArNDgzLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQ
YW5lbEhpZFN1Y2Nlc3MyKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTExLDggKzUxMSw4IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxSYWN5MSkKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC01MzYsOCArNTM2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5l
bFJhY3kyKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTU2MSw4ICs1NjEsOCBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVHdpY2UpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTg1
LDggKzU4NSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUmVsb2FkSGlkQ2FuY2Vs
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2Fu
Y2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC02MDYsOCArNjA2LDggQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBMb2NhdGlvbkNoYW5nZUhpZENhbmNlbCkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjI3LDggKzYyNyw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTmV3TG9hZEhpZENhbmNlbCkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjQ3LDggKzY0Nyw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgQ2xvc2VIaWRDYW5jZWwpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTY4Niw4ICs2ODYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFN1YkZyYW1lQ2hhbmdlTG9jYXRpb25IaWRDYW5jZWwpCiAgICAgfSk7CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtNzMxLDggKzczMSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3Vi
RnJhbWVEZXN0cnVjdGlvbkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03
NTEsOCArNzUxLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZENhbmNl
bCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNh
bmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzcyLDggKzc3Miw4IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVu
dGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc5MSw4ICs3OTEsOCBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRl
bnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04MTAsOCArODEwLDggQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTgzMCw4ICs4MzAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZh
a2VQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtODUwLDggKzg1MCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgTnVsbFBhbmVsSGlkU3VjY2VzcykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NzAsOCArODcw
LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVk
ZW50aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg5MSw4
ICs4OTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNU
YWdzUHJlc2VudCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLW11bHRpcGxlLXRhZ3MiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9
IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJ
bkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NG
b3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTkxMSw4ICs5
MTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsUmVsb2Fk
Tm9DcmFzaCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTMyLDggKzkzMiw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzQ2FuY2VsTm9DcmFzaCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CkBAIC05NTEsOCArOTUxLDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmRDYW5jZWxOb0NyYXNoKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3Jl
ZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTk3MCw4ICs5NzAsOCBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFJldHJpZXNFcnJvcikKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVz
LWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTk4NSw4ICs5ODUsOCBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldEtleUFncmVlbWVudEVycm9yKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3Jl
ZW1lbnQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtMTAwMCw4ICsxMDAwLDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOb0RlbGVnYXRlKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4i
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtMTAxNSw4ICsxMDE1LDggQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTAzNCw4ICsxMDM0LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFs
aWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNTUsOCArMTA1NSw4
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5CbG9ja2Vk
RXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMDc2LDggKzEwNzYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBpbkdldFBpblRva2VuUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1
dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5h
YmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA5Nyw4ICsxMDk3
LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkludmFs
aWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4taW52YWxpZC1lcnJvci1yZXRyeSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTExNyw4ICsxMTE3LDggQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRSZXRy
eSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTEzNyw4ICsxMTM3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
MTU2LDggKzExNTYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50
aWFsUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMTE3Nyw4ICsxMTc3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBNYWtlQ3JlZGVudGlhbFBpbkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1lcnJv
ci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE5Nyw4ICsxMTk3LDggQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW4pCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTEyMTYsOCArMTIxNiw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgR2V0QXNzZXJ0aW9uUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyMzcsOCArMTIzNyw4IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4taW52YWxp
ZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI1OCw4ICsxMjU4LDgg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOZmNQaW5DYWNoZWREaXNjb25uZWN0KQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRp
c2Nvbm5lY3QiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyNzgsOCArMTI3OCw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50c051bGxEZWxlZ2F0ZSkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRp
cGxlLWFjY291bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjk3LDggKzEyOTcsOCBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE11bHRpcGxlQWNjb3VudHMpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2Nv
dW50cyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTMyMCw4ICsxMzIwLDggQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMzM4LDggKzEzMzgsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVw
bGljYXRlQ3JlZGVudGlhbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1sYS1kdXBsaWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTM1OCw4ICsxMzU4LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5v
Q3JlZGVudGlhbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzNzYsOCArMTM3Niw4IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbE51bGxEZWxlZ2F0ZSkKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM5NSw4ICsxMzk1LDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsRGlzYWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0MTMsOCArMTQxMyw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xNDM0LDggKzE0MzQsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxOb01vY2tOb1VzZXJHZXN0dXJlKQogICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2siIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0NTIsOCArMTQ1Miw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbFJvbGxCYWNrQ3JlZGVudGlhbCkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1hdHRlc3RhdGlv
biIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQ4Niw4ICsxNDg2LDggQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTE1MDcsOCArMTUwNyw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3Nl
cnRpb25Ob01vY2tOb1VzZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
NTI1LDggKzE1MjUsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0
aW9uTXVsdGlwbGVPcmRlcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTIwNjEsOCArMjA2MSw4IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3JlZGVudGlhbCkKIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUmVjb3ZlckFmdGVyQXV0aE5Qcm9jZXNzQ3Jhc2gpCiB7
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBFWFBF
Q1RfRVEoW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439059</attachid>
            <date>2021-09-23 10:26:02 -0700</date>
            <delta_ts>2021-09-23 10:26:02 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230667-20210923102601.patch</filename>
            <type>text/plain</type>
            <size>111189</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMz
NjdjMGY3NmZjYTZjZTljMDg0YTYwM2IuLmE5Y2ExYjYxMWMyYmQ1ZTNjYjFiYWIwNTc4NjVhODQ5
YTBkNzc5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50
YWxGZWF0dXJlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbS4KKyAgICAgICAgKC1b
V0tFeHBlcmltZW50YWxGZWF0dXJlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50
YWxGZWF0dXJlIG5hbWVdKToKKyAgICAgICAgKC1bV0tFeHBlcmltZW50YWxGZWF0dXJlIGtleV0p
OgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGV0YWlsc10pOgorICAgICAgICAo
LVtXS0V4cGVyaW1lbnRhbEZlYXR1cmUgZGVmYXVsdFZhbHVlXSk6CisgICAgICAgICgtW1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSBpc0hpZGRlbl0pOgorICAgICAgICAoLVtXS0V4cGVyaW1lbnRhbEZl
YXR1cmUgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dLUHJlZmVyZW5j
ZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpc0Vu
YWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2Vz
IHNldEVuYWJsZWQ6Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpmb3JFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vz
c2lvbk5vdGlmaWVyLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIChtYW51YWxseSkgcmV2ZXJ0aW5nIHIyODI4NTYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDNmZGQ0OWEwMzhiNDM5NjhkOTU4MzNiNTA1OWI3
NjA0OWFlYTA0Yy4uNzFjNDYwODAyM2M3ZjFjYzJjOGYxYzJhMTkwNDNmZjM2ZGYwZTEyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTIyICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvbW90ZSBfV0tFeHBl
cmltZW50YWxGZWF0dXJlIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMwNjY3CisgICAgICAgIDxyZGFyOi8vODMyNTU1MDM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZl
cmVuY2VzVGVtcGxhdGVzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMubW0uZXJi
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIwMjEtMDkt
MjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIG1ha2VS
ZWYoKSBhbmQgdXNlIFJlZiB7IH0gaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCmluZGV4IDFkN2I4ZGQyZThjODIyZGZiN2ZlNjM5MDMwMTcyN2NlNWVkNGQ1NmIu
Ljk4ZTdjMzBlOGU2MzEwMGUxMWI1Njc4MjIwMTU1OTMxMDdmYjg1NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIldL
Q29udGVudFdvcmxkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5m
b0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Rvd25sb2FkSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldL
RXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJX
S05TQXJyYXkuaCIKQEAgLTc0LDcgKzc1LDYgQEAKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNz
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbkludGVybmFs
LmgiCiAjaW1wb3J0ICJfV0tDdXN0b21IZWFkZXJGaWVsZHNJbnRlcm5hbC5oIgotI2ltcG9ydCAi
X1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRs
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZVRyZWVOb2RlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIl9XS0dlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgpAQCAtMjMyLDcgKzIzMiw3IEBA
IHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUpCiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBUeXBlOjpFeHBlcmltZW50YWxGZWF0dXJlOgotICAgICAgICB3
cmFwcGVyID0gW19XS0V4cGVyaW1lbnRhbEZlYXR1cmUgYWxsb2NdOworICAgICAgICB3cmFwcGVy
ID0gW1dLRXhwZXJpbWVudGFsRmVhdHVyZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBUeXBlOjpFcnJvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAxMWU3Mjk2ODRlNGEy
YWRmMGI1Y2I4OTNhZDY3OTFkOTAwNTgyNjA1Li45NTc4MDFhYzRmZDRlNzg0ZTc3ODc4Mjc4NjAy
ODE5Yjc1NTJiYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODAsNyArMjgwLDYgQEAg
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0b21IZWFkZXJGaWVsZHMubW0gQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0VsZW1lbnRBY3Rpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcubW0KLVVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5t
bQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yLm1tCkBAIC0zMjgsNiArMzI3LDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRXb3JsZC5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5tbQogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9yLm1tCitVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRDb25maWd1cmF0aW9uLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRmluZFJlc3VsdC5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1l
SW5mby5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RXhwZXJpbWVudGFsRmVhdHVyZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYjVmMGM2OTQ4MDQxZjYwMjE5
Y2I3Mjg4OWY4MGFmNjI1Y2QyNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorQGludGVyZmFjZSBXS0V4cGVyaW1lbnRh
bEZlYXR1cmUgOiBOU09iamVjdAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNv
cHkpIE5TU3RyaW5nICprZXk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqZGV0YWlsczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBk
ZWZhdWx0VmFsdWU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0hp
ZGRlbikgQk9PTCBoaWRkZW47CisKK0BlbmQKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ug
U2FmYXJpIGhhcyBhZG9wdGVkIHRoZSBuZXcgQVBJLgorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEyKSwgaW9zKDEwLjApKQorQGludGVyZmFjZSBfV0tFeHBlcmltZW50YWxGZWF0dXJlIDog
V0tFeHBlcmltZW50YWxGZWF0dXJlCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYmZiOTUyZTE1YzA0ZmIzZGY2YmMyZTg3Yjc3YmQzZjVhMTNhYmUyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5tbQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgiCisKKyNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKworQGltcGxlbWVudGF0aW9uIFdLRXhw
ZXJpbWVudGFsRmVhdHVyZQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9i
akNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLRXhwZXJpbWVudGFsRmVhdHVyZS5j
bGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGV4cGVyaW1lbnRhbEZlYXR1cmUt
PkFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZTo6fkV4cGVyaW1lbnRhbEZlYXR1cmUoKTsKKworICAg
IFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgoreworICAg
IHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQDogJXA7IG5hbWUgPSAlQDsg
a2V5ID0gJUA7IGRlZmF1bHRWYWx1ZSA9ICVzID4iLCBOU1N0cmluZ0Zyb21DbGFzcyhzZWxmLmNs
YXNzKSwgc2VsZiwgc2VsZi5uYW1lLCBzZWxmLmtleSwgc2VsZi5kZWZhdWx0VmFsdWUgPyAib24i
IDogIm9mZiJdOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICByZXR1cm4gZXhwZXJp
bWVudGFsRmVhdHVyZS0+bmFtZSgpOworfQorCistIChOU1N0cmluZyAqKWtleQoreworICAgIHJl
dHVybiBleHBlcmltZW50YWxGZWF0dXJlLT5rZXkoKTsKK30KKworLSAoTlNTdHJpbmcgKilkZXRh
aWxzCit7CisgICAgcmV0dXJuIGV4cGVyaW1lbnRhbEZlYXR1cmUtPmRldGFpbHMoKTsKK30KKwor
LSAoQk9PTClkZWZhdWx0VmFsdWUKK3sKKyAgICByZXR1cm4gZXhwZXJpbWVudGFsRmVhdHVyZS0+
ZGVmYXVsdFZhbHVlKCk7Cit9CisKKy0gKEJPT0wpaXNIaWRkZW4KK3sKKyAgICByZXR1cm4gZXhw
ZXJpbWVudGFsRmVhdHVyZS0+aXNIaWRkZW4oKTsKK30KKworI3ByYWdtYSBtYXJrIFdLT2JqZWN0
IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Cit7
CisgICAgcmV0dXJuICpleHBlcmltZW50YWxGZWF0dXJlOworfQorCitAZW5kCisKKy8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFyaSBoYXMgYWRvcHRlZCB0aGUgbmV3IEFQSS4KK0BpbXBs
ZW1lbnRhdGlvbiBfV0tFeHBlcmltZW50YWxGZWF0dXJlCitAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0V4cGVyaW1lbnRhbEZl
YXR1cmVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYjAyOTg0Y2I2YTM3N2JmYmE1OGNiNTkxYTg4
ZDY2NDI2MGNiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJBUElFeHBlcmltZW50YWxGZWF0dXJlLmgiCisj
aW1wb3J0ICJXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCIKKyNpbXBvcnQgIldLT2JqZWN0LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQ
STo6RXhwZXJpbWVudGFsRmVhdHVyZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IFdLRXhw
ZXJpbWVudGFsRmVhdHVyZTsKK307CisKK30KKworQGludGVyZmFjZSBXS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxB
UEk6OkV4cGVyaW1lbnRhbEZlYXR1cmU+IGV4cGVyaW1lbnRhbEZlYXR1cmU7Cit9CitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApp
bmRleCBlMGNlMTdiZDM2ZjI1MzI3YTcwZDg3MzU5MTBhMWI2YTc0ZTYzYzNhLi42YjE4YTI2NzRi
MDFmY2NiMjA5MmRhM2FiZjU3YjM3ZDY0N2NkNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKIC8qISBBIFdLUHJlZmVyZW5jZXMg
b2JqZWN0IGVuY2Fwc3VsYXRlcyB0aGUgcHJlZmVyZW5jZSBzZXR0aW5ncyBmb3IgYSB3ZWIKQEAg
LTY0LDYgKzY1LDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAp
KQogKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNUZXh0SW50ZXJhY3Rpb25FbmFi
bGVkKSBCT09MIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4zKSwgaW9zKDE0LjUpKTsKIAorLyohCisgKi8KKysgKE5TQXJyYXk8V0tFeHBlcmltZW50YWxG
ZWF0dXJlICo+ICopZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLSAoQk9PTClpc0VuYWJsZWRGb3JFeHBl
cmltZW50YWxGZWF0dXJlOihXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXNl
dEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTooV0tFeHBlcmltZW50
YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tQcmVmZXJlbmNlcyAoV0tE
ZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlcy5tbQppbmRleCA3MTY0Zjg4NjAwNzhlMjA3MWFiOGM1ZmQ0NjY4OGYzNGRmYWFh
ZjIyLi4wODBmZGIwMTZlNmZiYjE3N2Y2ZDZjMDhiZWFkYTU2MzJlMDFkNTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAt
MjgsOSArMjgsOSBAQAogCiAjaW1wb3J0ICJBUElBcnJheS5oIgogI2ltcG9ydCAiUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaCIKKyNpbXBvcnQgIldLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgi
CiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCi0jaW1w
b3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ludGVy
bmFsRGVidWdGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTE1Myw2ICsxNTMsMjIgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX3ByZWZlcmVuY2VzLT5zZXRU
ZXh0SW50ZXJhY3Rpb25FbmFibGVkKHRleHRJbnRlcmFjdGlvbkVuYWJsZWQpOwogfQogCisrIChO
U0FycmF5PFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKWV4cGVyaW1lbnRhbEZlYXR1cmVzCit7
CisgICAgYXV0byBmZWF0dXJlcyA9IFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmV4cGVyaW1lbnRh
bEZlYXR1cmVzKCk7CisgICAgcmV0dXJuIHdyYXBwZXIoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1v
dmUoZmVhdHVyZXMpKSk7Cit9CisKKy0gKEJPT0wpaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVh
dHVyZTooV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZQoreworICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPmlzRmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1lbnRhbEZlYXR1cmUp
OworfQorCistICh2b2lkKXNldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTooV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZQoreworICAgIF9wcmVmZXJlbmNl
cy0+c2V0RmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1lbnRhbEZlYXR1cmUsIHZhbHVl
KTsKK30KKwogI3ByYWdtYSBtYXJrIE9TIFgtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtNTY0LDE0ICs1ODAsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSB0b0FQSShXZWJDb3JlOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogICAgIFtz
ZWxmIF9zZXRFbmFibGVkOnZhbHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiB9
CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFyaSBoYXMgYWRvcHRlZCB0aGUgbmV3
IEFQSS4KIC0gKEJPT0wpX2lzRW5hYmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6KF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+aXNG
ZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+X2V4cGVyaW1lbnRhbEZlYXR1cmUpOworICAgIHJldHVy
biBfcHJlZmVyZW5jZXMtPmlzRmVhdHVyZUVuYWJsZWQoKmZlYXR1cmUtPmV4cGVyaW1lbnRhbEZl
YXR1cmUpOwogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBTYWZhcmkgaGFzIGFkb3B0
ZWQgdGhlIG5ldyBBUEkuCiAtICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlCiB7Ci0gICAg
X3ByZWZlcmVuY2VzLT5zZXRGZWF0dXJlRW5hYmxlZCgqZmVhdHVyZS0+X2V4cGVyaW1lbnRhbEZl
YXR1cmUsIHZhbHVlKTsKKyAgICBfcHJlZmVyZW5jZXMtPnNldEZlYXR1cmVFbmFibGVkKCpmZWF0
dXJlLT5leHBlcmltZW50YWxGZWF0dXJlLCB2YWx1ZSk7CiB9CiAKIC0gKEJPT0wpX2FwcGxlUGF5
Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaAppbmRleCAxZDQ0
ZjdiM2Y3NmJmMjlkYTE1ODI2ZjM1OWFkMWYwZmUwMDQ2OGNkLi4wNzMzYTAxYTI3ZGU1ZDhmNjNl
ODhiZWMxOTMyMzMwZGRiNDkwYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE3ICsyMyw0IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCA8V2ViS2l0
L1dLRm91bmRhdGlvbi5oPgotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQotQGludGVyZmFjZSBf
V0tFeHBlcmltZW50YWxGZWF0dXJlIDogTlNPYmplY3QKLQotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqa2V5OwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgY29weSkgTlNTdHJpbmcgKmRldGFpbHM7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgZGVmYXVsdFZhbHVlOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9aXNIaWRkZW4pIEJPT0wgaGlkZGVuOwotCi1AZW5kCisjaW1wb3J0ICJXS0V4cGVy
aW1lbnRhbEZlYXR1cmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMzMGIzZjkyNTk2NTgzNDVjMGNjODI3NmQzZThmM2U0MzcxZGNlNTcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCIKLQotI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgotCi1AaW1wbGVtZW50YXRpb24gX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZQotCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuY2xhc3Ms
IHNlbGYpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZXhwZXJpbWVudGFsRmVhdHVyZS0+QVBJ
OjpFeHBlcmltZW50YWxGZWF0dXJlOjp+RXhwZXJpbWVudGFsRmVhdHVyZSgpOwotCi0gICAgW3N1
cGVyIGRlYWxsb2NdOwotfQotCi0tIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCi17Ci0gICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsgbmFtZSA9ICVAOyBrZXkg
PSAlQDsgZGVmYXVsdFZhbHVlID0gJXMgPiIsIE5TU3RyaW5nRnJvbUNsYXNzKHNlbGYuY2xhc3Mp
LCBzZWxmLCBzZWxmLm5hbWUsIHNlbGYua2V5LCBzZWxmLmRlZmF1bHRWYWx1ZSA/ICJvbiIgOiAi
b2ZmIl07Ci19Ci0KLS0gKE5TU3RyaW5nICopbmFtZQotewotICAgIHJldHVybiBfZXhwZXJpbWVu
dGFsRmVhdHVyZS0+bmFtZSgpOwotfQotCi0tIChOU1N0cmluZyAqKWtleQotewotICAgIHJldHVy
biBfZXhwZXJpbWVudGFsRmVhdHVyZS0+a2V5KCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopZGV0YWls
cwotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVhdHVyZS0+ZGV0YWlscygpOwotfQotCi0t
IChCT09MKWRlZmF1bHRWYWx1ZQotewotICAgIHJldHVybiBfZXhwZXJpbWVudGFsRmVhdHVyZS0+
ZGVmYXVsdFZhbHVlKCk7Ci19Ci0KLS0gKEJPT0wpaXNIaWRkZW4KLXsKLSAgICByZXR1cm4gX2V4
cGVyaW1lbnRhbEZlYXR1cmUtPmlzSGlkZGVuKCk7Ci19Ci0KLSNwcmFnbWEgbWFyayBXS09iamVj
dCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgotCi0tIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAot
ewotICAgIHJldHVybiAqX2V4cGVyaW1lbnRhbEZlYXR1cmU7Ci19Ci0KLUBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0
dXJlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBl
cmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGUwYzMwYjdhOGJiODM2MjFlY2VhNDNiMWJhNDI2NDc1OTdjOWI1Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJfV0tFeHBlcmltZW50
YWxGZWF0dXJlLmgiCi0KLSNpbXBvcnQgIkFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCIKLSNpbXBv
cnQgIldLT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBXcmFwcGVyVHJhaXRzPEFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZT4gewotICAgIHVzaW5nIFdy
YXBwZXJDbGFzcyA9IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU7Ci19OwotCi19Ci0KLUBpbnRlcmZh
Y2UgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAoKSA8V0tPYmplY3Q+IHsKLUBwYWNrYWdlCi0gICAg
QVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZT4gX2V4cGVyaW1lbnRh
bEZlYXR1cmU7Ci19Ci1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZp
dGllc1Nlc3Npb25Ob3RpZmllci5tbQppbmRleCA1NTI3ZWI4NTU4N2ZmYjQxOWQ1MmY2M2Y1ODAx
NGMwMjY0Yzc0NmMzLi42OTc2YmJiNDY4MjhhM2NjOTJhMTU1ZTViOWNkZDljNjMwMjEyOTQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMv
R3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNTZXNzaW9uTm90aWZp
ZXIubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKSAmJiBIQVZFKEdST1VQX0FDVElWSVRJRVMpCiAKKyNpbXBvcnQgIkdyb3VwQWN0aXZp
dGllc0Nvb3JkaW5hdG9yLmgiCiAjaW1wb3J0ICJXS0dyb3VwU2Vzc2lvbi5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDRjMzI5OGU2ZTBhOTY3NDdjZWYwYTJiYTExMzUzNDNjYzMzZDIx
YmEuLjJiOWM3OGE2NzlhZDA4YTMxZWE4YWU5M2EwY2U1NDgxN2UwMTlhYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDQzLDYgKzQ0
Myw4IEBACiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVj
dG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMu
aCAqLzsgfTsKIAkJMUNGMThGM0YyNkJCNUQ5NTAwNEIxNzIyIC8qIExvZ0luaXRpYWxpemF0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRjE4
RjNFMjZCQjVEOTAwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXphdGlvbi5jcHAgKi87IH07CisJCTFE
MDZDQkY0MjZGQzFDMzAwMDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwNkNCRjMy
NkZDMUMyRjAwNzQ4N0Q4IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFsLmggKi87IH07
CisJCTFEMDZDQkY2MjZGQzQyMjYwMDc0ODdEOCAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDA2Q0JGNTI2
RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZCMjNBOURG
NTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwpA
QCAtODIxLDggKzgyMyw3IEBACiAJCTMxNTcxMzVGMjA0MEE5QjIwMDg0RjlDRiAvKiBTeXN0ZW1Q
cmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE1NzEzNUQyMDQwQTlCMjAwODRGOUNGIC8qIFN5c3RlbVByZXZpZXdDb250cm9s
bGVyLmggKi87IH07CiAJCTMxNkI4QjY0MjA1NEI1NTgwMEJENEE2MiAvKiBXS1N5c3RlbVByZXZp
ZXdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZCOEI2MjIwNTRCNTU4MDBCRDRBNjIgLyogV0tTeXN0ZW1QcmV2aWV3Vmlldy5oICovOyB9Owog
CQkzMTdGRTdDNTFDNDg3QTZDMDBBMENBODkgLyogQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3RkU3QzIxQzQ4
N0E2NjAwQTBDQTg5IC8qIEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLzsgfTsKLQkJMzE3RkU3
Q0QxQzQ4N0RBRTAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3RkU3QzkxQzQ4
N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oICovOyB9Owot
CQkzMTdGRTdDRjFDNDg3REJEMDBBMENBODkgLyogX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3RkU3QzcxQzQ4
N0Q5RDAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTdGRTdDRjFDNDg3REJEMDBBMENB
ODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTdGRTdDNzFDNDg3RDlEMDBBMENBODkgLyogV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQkzMThCRTE3MTE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3
MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE4QkUxNzkxNDc0M0U2RjAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3ODE0NzQzRTZBMDBBOEZCQjIgLyogV0tOb3RpZmljYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
MUEyRUM0OTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0MjE0ODk5N0JFMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi87IH07CkBAIC0zMDkxLDYgKzMwOTIsOCBAQAogCQkx
RDA1MzBEMzI1OTE2MkM5MDBFNDM2RjcgLyogV2ViS2l0LW1hY29zLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBh
dGggPSAiV2ViS2l0LW1hY29zLnBsaXN0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUQwNTMwRDQyNTkxNjJDOTAwRTQzNkY3IC8qIFdlYktpdC13YXRjaG9zLnBsaXN0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSAiV2ViS2l0LXdhdGNob3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRDA1MzBENTI1OTE5NDE1MDBFNDM2RjcgLyogZ2VuZXJhdGUtZmVhdHVyZS1mbGFncy1w
bGlzdC5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImdlbmVyYXRlLWZlYXR1cmUtZmxhZ3MtcGxpc3Quc2gi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDA2Q0JGMzI2RkMxQzJGMDA3NDg3RDgg
LyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUQwNkNCRjUyNkZDNDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBCNjYxOTI2MjRDMTE4MDBGOTcxMkYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRDBCNjYxQTI2MjRDMTk2MDBGOTcxMkYgLyogTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBwYXRoID0g
RW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYg
LyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzYyNCw5ICszNjI3LDggQEAKIAkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8qIFBE
RktpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQREZLaXRTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE3RkU3QzExQzQ4N0E2NjAwQTBDQTg5IC8q
IEFQSUV4cGVyaW1lbnRhbEZlYXR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxN0ZFN0MyMUM0ODdBNjYwMEEwQ0E4OSAvKiBBUElFeHBlcmltZW50YWxGZWF0
dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUV4cGVyaW1lbnRhbEZl
YXR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzE3RkU3QzcxQzQ4N0Q5RDAw
QTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMTdGRTdDODFDNDg3RDlEMDBBMENBODkgLyogX1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxN0ZFN0M5
MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxN0ZFN0M3MUM0ODdEOUQwMEEw
Q0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tFeHBlcmltZW50YWxGZWF0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxN0ZFN0M4MUM0ODdEOUQwMEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0V4cGVyaW1lbnRh
bEZlYXR1cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEExRjA0MjA0RjQ3
NjQwMDM0ODBCQyAvKiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxOEJFMTcwMTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTc0MTQ3NDNERDYwMEE4RkJC
MiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTY2MTMsNiArNjYxNSw3IEBACiAJCTFBNDNFODI2MTg4RjM4RTIwMDlFNEQz
MCAvKiBEZXByZWNhdGVkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxRDA2Q0JGNTI2RkM0MjI2MDA3NDg3RDggLyogX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZS5oICovLAogCQkJCTFBRkI0QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0
b3JlLmggKi8sCiAJCQkJMUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmUubW0gKi8sCiAJCQkJMUE0QTkzQjYxQUVCMDhFQTAwMTUwRTlDIC8qIF9XS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oICovLApAQCAtODE2Miw5ICs4MTY1LDYgQEAKIAkJCQkzNzlBODcz
QjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFsLmggKi8sCiAJCQkJ
MUFEMDFCQzcxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmgg
Ki8sCiAJCQkJMUFEMDFCQzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRl
bXB0aW5nLm1tICovLAotCQkJCTMxN0ZFN0M3MUM0ODdEOUQwMEEwQ0E4OSAvKiBfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmggKi8sCi0JCQkJMzE3RkU3QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmUubW0gKi8sCi0JCQkJMzE3RkU3QzkxQzQ4N0Q5RDAwQTBDQTg5IC8q
IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oICovLAogCQkJCTAwNUQxNThFMThFNEM0
RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLywKIAkJCQkyREVBQzVDRTFBQzM2OEJC
MDBBMTk1RDggLyogX1dLRmluZE9wdGlvbnMuaCAqLywKIAkJCQkyRTdBOTQ0OTFCQkQ5NUM2MDA5
NDU1NDcgLyogX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmggKi8sCkBAIC04MzMwLDYgKzgzMzAsOSBA
QAogCQkJCTFBRjQ1OTJDMTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLm1tICovLAogCQkJCTFB
MkQyNTJBMTk0Njg4RkQwMDQ1MzdCMCAvKiBXS0Vycm9ySW50ZXJuYWwuaCAqLywKIAkJCQkzN0I1
MDQ1MTE5RUVGMzEzMDBDRTJDRjggLyogV0tFcnJvclByaXZhdGUuaCAqLywKKwkJCQkzMTdGRTdD
NzFDNDg3RDlEMDBBMENBODkgLyogV0tFeHBlcmltZW50YWxGZWF0dXJlLmggKi8sCisJCQkJMzE3
RkU3QzgxQzQ4N0Q5RDAwQTBDQTg5IC8qIFdLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSAqLywKKwkJ
CQkxRDA2Q0JGMzI2RkMxQzJGMDA3NDg3RDggLyogV0tFeHBlcmltZW50YWxGZWF0dXJlSW50ZXJu
YWwuaCAqLywKIAkJCQk1MTRBQjlFRjIzNUZBNTlCMDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oICovLAogCQkJCTUxNEFCOUYxMjM2MEU4M0QwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1
cmF0aW9uLm1tICovLAogCQkJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1
bHQuaCAqLywKQEAgLTExOTQ1LDggKzExOTQ4LDcgQEAKIAkJCQkzNzlBODczQTE4QkJGRTBGMDA1
ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5QTg3M0Mx
OEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFEMDFCQzkxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRl
bXB0aW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMTdGRTdDRjFDNDg3REJEMDBBMENBODkgLyog
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzE3RkU3Q0QxQzQ4
N0RBRTAwQTBDQTg5IC8qIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMUQwNkNCRjYyNkZDNDIyNjAwNzQ4N0Q4IC8qIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBf
V0tGaW5kRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERUFDNUNGMUFDMzY4QkIwMEEx
OTVEOCAvKiBfV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU3QTk0NEExQkJE
OTdDMzAwOTQ1NTQ3IC8qIF9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMzA0Niw2ICsxMzA0OCw4IEBACiAJCQkJMzdCNTA0NTIxOUVFRjMxMzAwQ0UyQ0Y4IC8qIFdL
RXJyb3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGQzEyNEZGMDI3MDA2OEYy
MEEgLyogV0tFcnJvclJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc4M0QxMjUwRkFERDAw
NjhGMjBBIC8qIFdLRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxN0ZFN0NGMUM0ODdEQkQw
MEEwQ0E4OSAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFE
MDZDQkY0MjZGQzFDMzAwMDc0ODdEOCAvKiBXS0V4cGVyaW1lbnRhbEZlYXR1cmVJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4QjZGMDgxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVw
bG9hZFBhbmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYg
LyogV0tGaW5kQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdGNjIzQjgxMkE1
N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYiBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1NjcmlwdHMvUHJlZmVyZW5jZXNUZW1wbGF0ZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWxGZWF0dXJlcy5tbS5lcmIKaW5kZXggYWIxZWQyNGNjNDE3NTYwZmVhNmRkODUwNDJk
ZDkyNzU4YWY0OGM2Ny4uY2ExY2JkNTgwYzA4ZmI1MjNmYmMwZjNjODEzNGVjNWQ0OWJkYzNmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU2NyaXB0cy9QcmVmZXJlbmNlc1Rl
bXBsYXRlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbEZlYXR1cmVzLm1tLmVyYgorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TY3JpcHRzL1ByZWZlcmVuY2VzVGVtcGxhdGVzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsRmVhdHVyZXMubW0uZXJiCkBAIC0zNiw3ICszNiw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAo
V2ViUHJpdmF0ZUV4cGVyaW1lbnRhbEZlYXR1cmVzKQogCi0rIChOU0FycmF5PFdlYkZlYXR1cmUg
Kj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAqKWV4
cGVyaW1lbnRhbEZlYXR1cmVzCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0
cjxOU0FycmF5PFdlYkZlYXR1cmUgKj4+PiBmZWF0dXJlcyA9IEBbCiA8JS0gZm9yIEBwcmVmIGlu
IEBleHBvc2VkRXhwZXJpbWVudGFsRmVhdHVyZXMgZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBm
YzcxNGE1ZGU0OTEzZjY4MThmYTM2ZTIwOTUxNTJiYzA4ZDFhNzFkLi4yZTM0MTk1NzNiN2E2Yzdl
MDhjNTJiN2QwNTI4MTkzMGIzZmFmOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI5OSw3ICsyOTks
NyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRl
cm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLy8gRm9yIHVzZSBieSBNaW5pQnJvd3NlciBh
bmQgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSBvbmx5CiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5j
ZXMgKFdlYlByaXZhdGVFeHBlcmltZW50YWxGZWF0dXJlcykKLSsgKE5TQXJyYXk8V2ViRmVhdHVy
ZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlczsKKysgKE5TQXJyYXk8V2ViRmVhdHVyZSAqPiAq
KWV4cGVyaW1lbnRhbEZlYXR1cmVzOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYlByZWZlcmVuY2Vz
IChXZWJQcml2YXRlSW50ZXJuYWxGZWF0dXJlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZWY4YWRiNzU3ZmIzNTIxMDJiODIwNTZlOGNlYTgy
NGRmN2Y1NTQ0Li4yMDAzOWEzYzA1NTk1MDJmZGQ3ZjNiNWVhYmUwMTc4YTRmY2RjYTliIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMjEtMDktMjIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBQcm9tb3RlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgdG8gQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2NjcKKyAgICAgICAgPHJkYXI6
Ly84MzI1NTUwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHNl
dFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIE1pbmlCcm93c2VyL21h
Yy9BcHBEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdhdGUgZGVmYXVsdENv
bmZpZ3VyYXRpb25dKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvU2V0dGluZ3NDb250cm9s
bGVyLm06CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBfcG9wdWxhdGVNZW51XSk6Cisg
ICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB2YWxpZGF0ZU1lbnVJdGVtOl0pOgorICAgICAg
ICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgdG9nZ2xlRXhwZXJpbWVudGFsRmVhdHVyZTpdKToKKyAg
ICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHJlc2V0QWxsRXhwZXJpbWVudGFsRmVhdHVyZXM6
XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1t
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yVGVzdC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NsaXBib2FyZFRlc3RzLm1tOgorICAgICAgICAoY3JlYXRlV2ViVmlld0ZvckNsaXBib2FyZFRl
c3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVu
Y2VzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA5LTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUENNIHNob3VsZCBpbmNsdWRlIHRoZSBi
dW5kbGUgSUQgb2YgdGhlIGFwcCBmcm9tIHdoaWNoIGl0IG9yaWdpbmF0ZWQKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAyMTlmYzk2NWVlMWFjZDYyMjcw
YWYwMjg1ZTg4OGI1MmQ0NmM0YjcxLi4wZDY1ZTVjODgwM2U0NjhhY2ViOGZkYjk0NWE5MWUzZWRm
MDAxMjY2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBA
IC04NjUsNyArODY1LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0
aW9ucyhXZWJQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMsIGNvbnN0IFcKICAgICAgICAgW3ByZWZl
cmVuY2VzIF9yZXNldEZvclRlc3RpbmddOwogCiAgICAgICAgIGlmIChlbmFibGVBbGxFeHBlcmlt
ZW50YWxGZWF0dXJlcykgewotICAgICAgICAgICAgZm9yIChXZWJGZWF0dXJlICpmZWF0dXJlIGlu
IFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKQorICAgICAgICAgICAgZm9y
IChXZWJGZWF0dXJlICpmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBleHBlcmltZW50YWxGZWF0
dXJlc10pCiAgICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JG
ZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9BcHBEZWxlZ2F0ZS5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRl
Lm0KaW5kZXggNzVkNjkxZGUyNmJmYTlmM2VkYzIwYzUzMzAwYjdhMzE0OWI3MzlkYS4uODVlMTA5
YzQ5MWQ1YjgzZDNiYTczOGE1NDNkN2ZhNTgyMjE2NjBhYSAxMDA2NDQKLS0tIGEvVG9vbHMvTWlu
aUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Fw
cERlbGVnYXRlLm0KQEAgLTI5LDEzICsyOSwxMyBAQAogI2ltcG9ydCAiU2V0dGluZ3NDb250cm9s
bGVyLmgiCiAjaW1wb3J0ICJXSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAi
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRh
U3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW1wb3J0IDxXZWJL
aXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0ludGVybmFs
RGVidWdGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oPgpA
QCAtMTIwLDE0ICsxMjAsMTQgQEAgLSAoV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWRlZmF1bHRD
b25maWd1cmF0aW9uCiAgICAgICAgIAogICAgICAgICBjb25maWd1cmF0aW9uLnByb2Nlc3NQb29s
ID0gW1tbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNz
Q29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOwogCi0gICAgICAgIE5TQXJyYXk8X1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBf
ZXhwZXJpbWVudGFsRmVhdHVyZXNdOwotICAgICAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAgICAgICAgTlNBcnJheTxX
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gW1dLUHJlZmVy
ZW5jZXMgZXhwZXJpbWVudGFsRmVhdHVyZXNdOworICAgICAgICBmb3IgKFdLRXhwZXJpbWVudGFs
RmVhdHVyZSAqZmVhdHVyZSBpbiBleHBlcmltZW50YWxGZWF0dXJlcykgewogICAgICAgICAgICAg
Qk9PTCBlbmFibGVkOwogICAgICAgICAgICAgaWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpmZWF0dXJlLmtleV0pCiAgICAgICAgICAgICAgICAg
ZW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JL
ZXk6ZmVhdHVyZS5rZXldOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGVuYWJs
ZWQgPSBbZmVhdHVyZSBkZWZhdWx0VmFsdWVdOwotICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb24u
cHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6ZW5hYmxlZCBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZl
YXR1cmVdOworICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgc2V0RW5hYmxl
ZDplbmFibGVkIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAgIH0KIAog
ICAgICAgICBOU0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICppbnRlcm5hbERlYnVn
RmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzXTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIubSBiL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIubQppbmRleCA4NGJkMWE4ZWYwZmEx
NmFjMzg0MmVkNGI3Y2I5NTg4YTRkMDc1M2FkLi5mZDQ5MjE1N2Y4ZjBiMGFkOGY1ZjM2ZTQ5ZjUx
NTdhZWUzOTNkZmM3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvU2V0dGluZ3ND
b250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxl
ci5tCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCiAjaW1wb3J0
ICJCcm93c2VyV2luZG93Q29udHJvbGxlci5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0
L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CiAKIE5TU3RyaW5nICogY29uc3Qga1VzZXJBZ2Vu
dENoYW5nZWROb3RpZmljYXRpb25OYW1lID0gQCJVc2VyQWdlbnRDaGFuZ2VkTm90aWZpY2F0aW9u
IjsKQEAgLTIwNCw5ICsyMDQsOSBAQCAtICh2b2lkKV9wb3B1bGF0ZU1lbnUKICAgICBOU01lbnUg
KmV4cGVyaW1lbnRhbEZlYXR1cmVzTWVudSA9IFtbTlNNZW51IGFsbG9jXSBpbml0V2l0aFRpdGxl
OkAiRXhwZXJpbWVudGFsIEZlYXR1cmVzIl07CiAgICAgW2V4cGVyaW1lbnRhbEZlYXR1cmVzU3Vi
bWVudUl0ZW0gc2V0U3VibWVudTpleHBlcmltZW50YWxGZWF0dXJlc01lbnVdOwogCi0gICAgTlNB
cnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICpleHBlcmltZW50YWxGZWF0dXJlcyA9IFtX
S1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107CisgICAgTlNBcnJheTxXS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMg
ZXhwZXJpbWVudGFsRmVhdHVyZXNdOwogCi0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJl
ICpmZWF0dXJlIGluIGV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7CisgICAgZm9yIChXS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKICAgICAgICAg
TlNNZW51SXRlbSAqaXRlbSA9IFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhUaXRsZTpmZWF0
dXJlLm5hbWUgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVFeHBlcmltZW50YWxGZWF0dXJlOikga2V5
RXF1aXZhbGVudDpAIiJdOwogICAgICAgICBpdGVtLnRvb2xUaXAgPSBmZWF0dXJlLmRldGFpbHM7
CiAgICAgICAgIGl0ZW0ucmVwcmVzZW50ZWRPYmplY3QgPSBmZWF0dXJlOwpAQCAtNDA5LDggKzQw
OSw4IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAK
ICAgICBXS1ByZWZlcmVuY2VzICpkZWZhdWx0UHJlZmVyZW5jZXMgPSBbW05TQXBwbGljYXRpb24g
c2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBEZWxlZ2F0ZV0uZGVmYXVsdFByZWZlcmVuY2Vz
OwogICAgIGlmIChtZW51SXRlbS50YWcgPT0gRXhwZXJpbWVudGFsRmVhdHVyZVRhZykgewotICAg
ICAgICBfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlID0gbWVudUl0ZW0ucmVwcmVzZW50
ZWRPYmplY3Q7Ci0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbZGVmYXVsdFByZWZlcmVuY2Vz
IF9pc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdID8gTlNDb250cm9sU3Rh
dGVWYWx1ZU9uIDogTlNDb250cm9sU3RhdGVWYWx1ZU9mZl07CisgICAgICAgIFdLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqZmVhdHVyZSA9IG1lbnVJdGVtLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAg
ICBbbWVudUl0ZW0gc2V0U3RhdGU6W2RlZmF1bHRQcmVmZXJlbmNlcyBpc0VuYWJsZWRGb3JFeHBl
cmltZW50YWxGZWF0dXJlOmZlYXR1cmVdID8gTlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlNDb250
cm9sU3RhdGVWYWx1ZU9mZl07CiAgICAgfQogICAgIGlmIChtZW51SXRlbS50YWcgPT0gSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVUYWcpIHsKICAgICAgICAgX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZl
YXR1cmUgPSBtZW51SXRlbS5yZXByZXNlbnRlZE9iamVjdDsKQEAgLTczMiwxMSArNzMyLDExIEBA
IC0gKHZvaWQpdG9nZ2xlRGVidWdPdmVybGF5OihpZClzZW5kZXIKIAogLSAodm9pZCl0b2dnbGVF
eHBlcmltZW50YWxGZWF0dXJlOihpZClzZW5kZXIKIHsKLSAgICBfV0tFeHBlcmltZW50YWxGZWF0
dXJlICpmZWF0dXJlID0gKChOU01lbnVJdGVtICopc2VuZGVyKS5yZXByZXNlbnRlZE9iamVjdDsK
KyAgICBXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgPSAoKE5TTWVudUl0ZW0gKilzZW5k
ZXIpLnJlcHJlc2VudGVkT2JqZWN0OwogICAgIFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0g
W1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLmRl
ZmF1bHRQcmVmZXJlbmNlczsKIAotICAgIEJPT0wgY3VycmVudGx5RW5hYmxlZCA9IFtwcmVmZXJl
bmNlcyBfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKLSAgICBbcHJl
ZmVyZW5jZXMgX3NldEVuYWJsZWQ6IWN1cnJlbnRseUVuYWJsZWQgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTpmZWF0dXJlXTsKKyAgICBCT09MIGN1cnJlbnRseUVuYWJsZWQgPSBbcHJlZmVyZW5jZXMg
aXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICBbcHJlZmVyZW5j
ZXMgc2V0RW5hYmxlZDohY3VycmVudGx5RW5hYmxlZCBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZl
YXR1cmVdOwogCiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0
Qm9vbDohY3VycmVudGx5RW5hYmxlZCBmb3JLZXk6ZmVhdHVyZS5rZXldOwogfQpAQCAtNzU1LDEw
ICs3NTUsMTAgQEAgLSAodm9pZCl0b2dnbGVJbnRlcm5hbERlYnVnRmVhdHVyZTooaWQpc2VuZGVy
CiAtICh2b2lkKXJlc2V0QWxsRXhwZXJpbWVudGFsRmVhdHVyZXM6KGlkKXNlbmRlcgogewogICAg
IFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gW1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLmRlZmF1bHRQcmVmZXJlbmNlczsKLSAgICBOU0Fy
cmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gW1dL
UHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBOU0FycmF5PFdLRXhwZXJp
bWVudGFsRmVhdHVyZSAqPiAqZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBl
eHBlcmltZW50YWxGZWF0dXJlc107CiAKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KmZlYXR1cmUgaW4gZXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKLSAgICAgICAgW3ByZWZlcmVuY2Vz
IF9zZXRFbmFibGVkOmZlYXR1cmUuZGVmYXVsdFZhbHVlIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
ZmVhdHVyZV07CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZXhw
ZXJpbWVudGFsRmVhdHVyZXMpIHsKKyAgICAgICAgW3ByZWZlcmVuY2VzIHNldEVuYWJsZWQ6ZmVh
dHVyZS5kZWZhdWx0VmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKICAgICAg
ICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpmZWF0dXJl
LmRlZmF1bHRWYWx1ZSBmb3JLZXk6ZmVhdHVyZS5rZXldOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQppbmRleCA4MWYyMzRh
Yjc3OWZmMTg1ZDgzNjdlODlhNGZiNWE0N2JlYzNjMTZkLi5kN2VlMjI0MjEzMzdkNjYwN2RiYWIy
ZjU1NTcyNDM3ZTgzOWZmN2Y4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCiAjaW1wb3J0ICJVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CkBAIC00MSw3ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZp
Z3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmcuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KQEAgLTczNiw5ICs3MzYsOSBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vz
c1doaWxlQ2FwdHVyaW5nQW5kQ2FsbGluZykKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0Vx
dWFsVG9TdHJpbmc6QCJDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkIl0pCiAgICAgICAg
ICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJl
OmZlYXR1cmVdOwogICAgIH0KLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgIGZvciAo
V0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1l
bnRhbEZlYXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIldlYlJUQ1BsYXRmb3JtQ29kZWNzSW5HUFVQcm9jZXNzRW5hYmxlZCJdKQotICAgICAgICAg
ICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JGZWF0dXJlOmZlYXR1cmVdOworICAg
ICAgICAgICAgW3ByZWZlcmVuY2VzIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6ZmVhdHVyZV07CiAgICAgfQogCiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0Lm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0Lm1tCmlu
ZGV4IGQ4YTlhMmI0NDJhYWE5MTBjNjgxZTJkZGY1ZjUwMGFjYWRlN2ZhNDAuLmM0ZDEzNDc5Nzc0
YzlhOGMzNTZiOTY0OGVlYmY2NjMwYjNlYWRkZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVNlc3Npb25Db29yZGluYXRvclRl
c3QubW0KQEAgLTI5LDExICsyOSwxMSBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmcuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0xOTAsMTEgKzE5MCw5IEBA
IHB1YmxpYzoKICAgICAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICAgICAgYXV0byBwcmVmZXJlbmNlcyA9
IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKIAotICAgICAgICBmb3IgKF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1
cmVzXSkgewotICAgICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJN
ZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQiXSkKLSAgICAgICAgICAgICAgICBbcHJlZmVy
ZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07Ci0gICAgICAgICAgICBp
ZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIk1lZGlhU2Vzc2lvbkVuYWJsZWQiXSkK
LSAgICAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6
ZmVhdHVyZV07CisgICAgICAgIGZvciAoV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGlu
IFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICAgICAgaWYg
KFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJNZWRpYVNlc3Npb25Db29yZGluYXRvckVu
YWJsZWQiXSB8fCBbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiTWVkaWFTZXNzaW9uRW5h
YmxlZCJdKQorICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgICAgICB9CiAKICAgICAgICAgX3dlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDQwMCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xpcGJv
YXJkVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NsaXBi
b2FyZFRlc3RzLm1tCmluZGV4IDY1YzA3NzhkYTExZmMwYmYxYThiZDI1NzM5ZDIyNjhlMDk0OGUx
NjMuLjc3ZGQyYjJhZmJkMjYxYjRlNWFkOWRlZGRkYmJlYjQyOTM5OWQ3NjcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xpcGJvYXJkVGVzdHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DbGlwYm9hcmRUZXN0
cy5tbQpAQCAtMzAsOCArMzAsOCBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPENv
cmVTZXJ2aWNlcy9Db3JlU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5TlNQYXN0
ZWJvYXJkVHlwZXMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0
L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChD
bGlwYm9hcmRUZXN0cykKIApAQCAtNzYsOSArNzYsOSBAQCBzdGF0aWMgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IGNyZWF0ZVdlYlZpZXdGb3JDbGlwYm9hcmRUZXN0cygpCiAgICAgYXV0byBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRET01QYXN0ZUFsbG93ZWQ6
WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkOllFU107Ci0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICBm
b3IgKFdLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBleHBl
cmltZW50YWxGZWF0dXJlc10pIHsKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9T
dHJpbmc6QCJBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQiXSkgewotICAgICAgICAgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVyZW5jZXMubW0KaW5kZXggZTI4M2Y0NTkwNDYzODA5
NmYwYmY5ODQ3Mzg4NDFhMjZkMDY0ZTM1ZS4uNTIyNmZkODI3NDA5ZTFiYzU3M2NlNTk3OGQwZWYy
NGFjOTYxYjRhMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QcmVmZXJlbmNlcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ByZWZlcmVuY2VzLm1tCkBAIC0yOCwxMCArMjgsMTAgQEAKICNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJVdGlsaXRpZXMuaCIK
KyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogVEVTVChX
ZWJLaXQsIERlZmF1bHRXS1ByZWZlcmVuY2VzKQpAQCAtNTYsMTQgKzU2LDE0IEBAIFRFU1QoV2Vi
S2l0LCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkpCiAKIFRFU1QoV2ViS2l0LCBFeHBlcmltZW50
YWxGZWF0dXJlcykKIHsKLSAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9l
eHBlcmltZW50YWxGZWF0dXJlc107CisgICAgTlNBcnJheSAqZmVhdHVyZXMgPSBbV0tQcmVmZXJl
bmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CiAgICAgRVhQRUNUX05PVF9OVUxMKGZlYXR1cmVz
KTsKIAogICAgIFJldGFpblB0cjxXS1ByZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMo
W1tXS1ByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CiAKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKLSAgICAgICAgQk9PTCB2YWx1ZSA9IFtw
cmVmZXJlbmNlcyBfaXNFbmFibGVkRm9yRmVhdHVyZTpmZWF0dXJlXTsKLSAgICAgICAgW3ByZWZl
cmVuY2VzIF9zZXRFbmFibGVkOnZhbHVlIGZvckZlYXR1cmU6ZmVhdHVyZV07CisgICAgZm9yIChX
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAgICAgQk9P
TCB2YWx1ZSA9IFtwcmVmZXJlbmNlcyBpc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZl
YXR1cmVdOworICAgICAgICBbcHJlZmVyZW5jZXMgc2V0RW5hYmxlZDp2YWx1ZSBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KaW5kZXggYzYzMzE2Nzg1ODUwNzNkZGViZGY0NDI2ZDIwM2RmYjFkNTZiYjcyMi4u
OGJkZTZmMDYyYzM3YTI4OTJhMjQ5NGI0OTM2YTc3YzI5ODhhOTdhZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJVc2VyTWVkaWFD
YXB0dXJlVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0SXRl
bVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uUHJpdmF0ZS5o
PgpAQCAtNDYsNyArNDcsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJLaXQuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0
dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KQEAgLTcyMDgsMTEgKzcyMDgsMTEgQEAgc3RhdGlj
IHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25z
dCBjaGFyKiBzb3VyY2VDT0UKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwogICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSA9IFlFUzsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgIGZvciAo
V0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIGV4cGVyaW1l
bnRhbEZlYXR1cmVzXSkgewogICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKQotICAgICAgICAgICAgW1t3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1
cmVdOwogICAgICAgICBlbHNlIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeUVuYWJsZWQiXSkKLSAgICAgICAgICAgIFtbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsK
ICAgICB9CiAKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10g
aW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBmNzU2NTc3MmNmOTljNjVmNTliODlm
NjVmN2VhMmI0YTZjNDAzMDZlLi4yMjIwZTUyOTE4ZGVhYzcwMzc4YTU1ZWEzNDJlYTdiY2JlOGNi
OWNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAi
VGVzdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdl
YkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFeHBlcmltZW50YWxG
ZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVVJM
U2NoZW1lSGFuZGxlci5oPgpAQCAtNDMsNyArNDQsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tF
eHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tCmluZGV4IGFiYTRmYjkwN2ZiMjI3YzM3NDBkYWYwOWFmMTFjNzE0ODA2OTdlMjQu
LjQ4ODM5ODY3NzE4ZjhlMzNjZjUyZGU1MjlmMzA4NTE3YjI5MjU3ZmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvQXV0aGVudGljYXRvckF0dGFjaG1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oPgpAQCAtNDQsNyArNDUsNiBAQAogI2ltcG9ydCA8V2ViS2l0L19X
S0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0F1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1B1YmxpY0tleUNyZWRlbnRpYWxQYXJh
bWV0ZXJzLmg+CkBAIC0yOTAsMTQgKzI5MCwxNCBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQog
Ijwvc2NyaXB0PiIKICI8L2h0bWw+IjsKIAotc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpCitzdGF0aWMgV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewot
ICAgIHN0YXRpYyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsK
KyAgICBzdGF0aWMgUmV0YWluUHRyPFdLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsK
ICAgICBpZiAodGhlRmVhdHVyZSkKICAgICAgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7CiAK
LSAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0
dXJlc107Ci0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGZlYXR1
cmVzKSB7CisgICAgTlNBcnJheSAqZmVhdHVyZXMgPSBbV0tQcmVmZXJlbmNlcyBleHBlcmltZW50
YWxGZWF0dXJlc107CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4g
ZmVhdHVyZXMpIHsKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiV2ViQXV0aGVu
dGljYXRpb25FbmFibGVkIl0pIHsKICAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJlOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDYsMTQgKzMwNiwxNCBAQCBzdGF0aWMgX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKICAg
ICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKIH0KIAotc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCitzdGF0
aWMgV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKQogewotICAgIHN0YXRpYyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFsRmVh
dHVyZT4gdGhlRmVhdHVyZTsKKyAgICBzdGF0aWMgUmV0YWluUHRyPFdLRXhwZXJpbWVudGFsRmVh
dHVyZT4gdGhlRmVhdHVyZTsKICAgICBpZiAodGhlRmVhdHVyZSkKICAgICAgICAgcmV0dXJuIHRo
ZUZlYXR1cmUuZ2V0KCk7CiAKLSAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2Vz
IF9leHBlcmltZW50YWxGZWF0dXJlc107Ci0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJl
ICpmZWF0dXJlIGluIGZlYXR1cmVzKSB7CisgICAgTlNBcnJheSAqZmVhdHVyZXMgPSBbV0tQcmVm
ZXJlbmNlcyBleHBlcmltZW50YWxGZWF0dXJlc107CisgICAgZm9yIChXS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKICAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBp
c0VxdWFsOkAiV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIl0pIHsKICAgICAgICAgICAg
IHRoZUZlYXR1cmUgPSBmZWF0dXJlOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00MzAsNyArNDMw
LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOb1BhbmVsTmZjU3VjY2VlZCkKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3Vz
XTsKQEAgLTQ0NSw3ICs0NDUsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFu
ZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAtNDYwLDggKzQ2MCw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzMSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC00ODMs
OCArNDgzLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3My
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTExLDggKzUxMSw4IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgUGFuZWxSYWN5MSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MzYsOCAr
NTM2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kyKQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTU2MSw4ICs1NjEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBhbmVsVHdpY2UpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTg1LDggKzU4NSw4IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUmVsb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC02MDYsOCArNjA2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBMb2NhdGlvbkNoYW5nZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVy
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjI3LDggKzYyNyw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTmV3TG9hZEhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVy
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjQ3LDggKzY0Nyw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgQ2xvc2VIaWRDYW5jZWwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTY4Niw4ICs2ODYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFN1YkZyYW1lQ2hh
bmdlTG9jYXRpb25IaWRDYW5jZWwpCiAgICAgfSk7CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBz
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzMxLDgg
KzczMSw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3ViRnJhbWVEZXN0cnVjdGlv
bkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03NTEsOCArNzUxLDggQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZENhbmNlbCkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtNzcyLDggKzc3Miw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTc5MSw4ICs3OTEsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC04MTAsOCArODEwLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25F
eHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTgzMCw4
ICs4MzAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZEN0YXBO
b0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
ODUwLDggKzg1MCw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBhbmVsSGlk
U3VjY2VzcykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NzAsOCArODcwLDggQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3Jl
ZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg5MSw4ICs4OTEsOCBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2VudCkKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxl
LXRhZ3MiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTkxMSw4ICs5MTEsOCBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsUmVsb2FkTm9DcmFzaCkKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTMyLDggKzkzMiw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzQ2FuY2VsTm9DcmFzaCkKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC05NTEsOCArOTUxLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5l
bEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmRDYW5jZWxOb0NyYXNoKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTk3MCw4ICs5NzAsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFBpbkdldFJldHJpZXNFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJW
aWV3IGZvY3VzXTsKQEAgLTk4NSw4ICs5ODUsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpbkdldEtleUFncmVlbWVudEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
W3dlYlZpZXcgZm9jdXNdOwpAQCAtMTAwMCw4ICsxMDAwLDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOb0RlbGVnYXRlKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9j
dXNdOwpAQCAtMTAxNSw4ICsxMDE1LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQ
aW5SZXF1ZXN0UGluRXJyb3JOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtMTAzNCw4ICsxMDM0LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1
ZXN0UGluRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnki
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNTUsOCArMTA1NSw4IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5CbG9ja2VkRXJyb3IpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGlu
LXRva2VuLXBpbi1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDc2
LDggKzEwNzYsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2Vu
UGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtYmxvY2tlZC1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA5Nyw4ICsxMDk3LDggQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkludmFsaWRFcnJvckFuZFJldHJ5
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4tZ2V0LXBpbi10b2tlbi1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtMTExNyw4ICsxMTE3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9r
ZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtMTEzNyw4ICsxMTM3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3Jl
ZGVudGlhbFBpbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTU2LDggKzExNTYsOCBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGluQXV0aEJsb2Nr
ZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTE3Nyw4ICsxMTc3LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVu
dGlhbFBpbkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE5Nyw4ICsxMTk3LDggQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW4pCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEy
MTYsOCArMTIxNiw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9u
UGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTEyMzcsOCArMTIzNyw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
R2V0QXNzZXJ0aW9uUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4taW52YWxpZC1lcnJvci1yZXRyeSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI1OCw4ICsxMjU4LDggQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBOZmNQaW5DYWNoZWREaXNjb25uZWN0KQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyNzgsOCArMTI3OCw4IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50c051bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291bnRzIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNz
UGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjk3LDggKzEyOTcsOCBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIE11bHRpcGxlQWNjb3VudHMpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cyIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTMyMCw4ICsxMzIwLDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQUVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzM4LDggKzEz
MzgsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVwbGljYXRlQ3JlZGVudGlh
bCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1k
dXBsaWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM1OCw4ICsx
MzU4LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5vQ3JlZGVudGlhbCkKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTEzNzYsOCArMTM3Niw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbE51bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTM5NSw4ICsxMzk1LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1h
a2VDcmVkZW50aWFsRGlzYWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTE0MTMsOCArMTQxMyw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFN
YWtlQ3JlZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xNDM0LDggKzE0MzQsOCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFr
ZUNyZWRlbnRpYWxOb01vY2tOb1VzZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTE0NTIsOCArMTQ1Miw4IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFN
YWtlQ3JlZGVudGlhbFJvbGxCYWNrQ3JlZGVudGlhbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1hdHRlc3RhdGlvbiIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMTQ4Niw4ICsxNDg2LDggQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBMQUdldEFzc2VydGlvbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50
YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxl
ZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVu
dGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1MDcsOCArMTUwNyw4
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb25Ob01vY2tOb1Vz
ZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1sYS1uby1tb2NrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBzZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNTI1LDggKzE1MjUsOCBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVPcmRl
cikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTIwNjEsOCArMjA2MSw4IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3JlZGVudGlhbCkKIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUmVjb3ZlckFmdGVyQXV0aE5Qcm9jZXNzQ3Jhc2gpCiB7CiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBzZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIHNldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBFWFBFQ1RfRVEoW1dLUHJvY2Vz
c1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>