<?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>211146</bug_id>
          
          <creation_ts>2020-04-28 14:26:15 -0700</creation_ts>
          <short_desc>Refactor layout tests after updates to In-App Browser Privacy</short_desc>
          <delta_ts>2020-04-29 09:17:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646675</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 14:26:15 -0700</bug_when>
    <thetext>Recent updates to In-App Browser Privacy have caused two layout tests to start failing. The tests need to be updated to reflect new behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646676</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 14:26:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/62524127&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646764</commentid>
    <comment_count>2</comment_count>
      <attachid>397908</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 17:05:03 -0700</bug_when>
    <thetext>Created attachment 397908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646778</commentid>
    <comment_count>3</comment_count>
      <attachid>397913</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-04-28 17:39:42 -0700</bug_when>
    <thetext>Created attachment 397913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646792</commentid>
    <comment_count>4</comment_count>
      <attachid>397913</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-28 18:26:02 -0700</bug_when>
    <thetext>Comment on attachment 397913
Patch

Code removal. yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647018</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 09:17:10 -0700</bug_when>
    <thetext>Committed r260900: &lt;https://trac.webkit.org/changeset/260900&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397913.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397908</attachid>
            <date>2020-04-28 17:05:03 -0700</date>
            <delta_ts>2020-04-28 17:39:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211146-20200428170502.patch</filename>
            <type>text/plain</type>
            <size>52227</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3NWUyYWRjY2ZlNWFlMjdh
ZTM3MGFiOGRlZWQ2ZDJkMzI3OGU4ZDkuLmNlMWQxNGU5MDI2MmY0NzMyNzY0NzhlMjM4Zjc3Mjg5
N2UwZGQ2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDQtMjggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgbGF5
b3V0IHRlc3RzIGFmdGVyIHVwZGF0ZXMgdG8gSW4tQXBwIEJyb3dzZXIgUHJpdmFjeQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMTQ2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MjUyNDEyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvbm9uLWFwcC1ib3VuZC1k
b21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLmh0bWwKKworICAgICAgICBSZW1v
dmVzIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkLCB3aGljaCBpcyBubyBsb25nZXIgbmVl
ZGVkIGJ5CisgICAgICAgIGxheW91dCB0ZXN0cy4gU2V0dGluZyB0aGlzIGluIFRlc3RPcHRpb25z
IGlzIGVub3VnaC4KKyAgICAgICAgZ2V0V2ViVmlld0NhdGVnb3J5IGlzIG5vdCBuZWVkZWQgYmVj
YXVzZSB0aGlzIHBhdGNoIGRlbGV0ZXMgdGhlIG9ubHkgdGVzdAorICAgICAgICB3aGljaCB1c2Vz
IGl0LiBMYXN0bHksIGFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gY2xlYXIgYXBwLWJvdW5kIHNlc3Np
b25zCisgICAgICAgIG5vdyB0aGF0IG11bHRpcGxlIHRlc3RzIGFyZSBjaGVja2luZyBmb3IgdGhl
bS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyQXBwQm91bmRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpzZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFwcEJvdW5kU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNsZWFyQXBwQm91bmRTZXNzaW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKToKKyAgICAg
ICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfZ2V0V2ViVmlld0NhdGVnb3J5Rm9yOmNvbXBs
ZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oOgorCiAyMDIwLTA0LTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNYWNdIEFkb3B0IGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhE
UlZpZGVvQ2hhbmdlZCBub3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjRjODFmNjcxNDQ5MTQzMmEyNmZkMGE3NzI5
ZDNkZmY3OWE5MDRiNy4uMzUyYzVlMDQwZjc1YWY0Yjg1MzY5ZjcwOWU2ZTM1ZjcxNzJhODdmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTI2OTYsMTAgKzI2OTYsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzQXBwQm91bmRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmQKICAgICBjb21w
bGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJbkFw
cEJyb3dzZXJQcml2YWN5RW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZW5h
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIG5ldHdvcmtTZXNzaW9uLT5zZXRJbkFwcEJyb3dzZXJQcml2YWN5
RW5hYmxlZChlbmFibGUpOworICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJBcHBCb3VuZFNl
c3Npb24oKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkYTZhZDdhODc4YTdhOTkxYjA1YWI3MzhlM2I5MDdk
ZDk5MGJmODlhLi5hZWI3OGY5NDA1YjQ2NmVhNjUxNWY4ZjQ3YTU3NmViZDg3YmY1NDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNTAs
NyArMzUwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2Vk
KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgIHZvaWQgaGFzQXBwQm91bmRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBj
b25zdDsKLSAgICB2b2lkIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKFBBTDo6U2Vzc2lv
bklELCBib29sIGVuYWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IGNsZWFyQXBwQm91bmRTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShQQUw6OlNlc3Np
b25JRCwgSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNWVhYmEzN2FlMGJiOTIzNTY1ZDAwODEx
Yzk2NGQ1Mzc4OTY2N2UxMS4uMDIzNjZhZmU3NTI1ZGM0NDFlYTc1ZDJjZTkzNTlkOWE1NzMyYzQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNyArMTcyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIAogICAgIEhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FwcEJvdW5kU2Vzc2lvbikgQXN5bmMK
LSAgICBTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgQ2xlYXJBcHBCb3VuZFNlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIERpc2FibGVTZXJ2aWNlV29ya2Vy
RW50aXRsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCmluZGV4IDVjMjlkZjBmOTJkZTUyNzZhYzA1M2UwOGQ1ODdlMDFlY2Q0NzNlOTkuLmQ4
ZDNlY2JhZDhlNjg4NTA2YTg4NTY0MDg5MTg0OGEyYmEwNmU0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5BcHBCcm93
c2VyUHJpdmFjeUVuYWJsZWQoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQXBwQm91
bmRTZXNzaW9uKCkgeyB9CiAgICAgdm9pZCBzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb24mJik7CiAgICAgdm9pZCBoYW5kbGVBZENsaWNrQXR0cmlidXRp
b25Db252ZXJzaW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbiYmLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVk
aXJlY3RSZXF1ZXN0KTsKICAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggMDc5N2JhMzhl
Yzk5Y2M3MjQ3NDg1YWRiMzBlMGFhNWYzNjdlNzljYy4uYWU0NTAxYTFlYmRmMDQzN2FiNzRkYzkw
ZTFhYjM3MWI3NzNiOThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gISFtX2FwcEJvdW5kU2Vzc2lvbjsgfQogCiAgICAgU2Vzc2lvbldyYXBwZXImIHNlc3Npb25X
cmFwcGVyRm9yVGFzayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgT3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4+KTsKLSAgICB2b2lkIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgb3ZlcnJpZGUgeyBtX2lzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQgPSBlbmFibGVkOyB9
CisgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNJ
bkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbkFwcEJyb3dz
ZXJQcml2YWN5RW5hYmxlZDsgfQogICAgIGJvb2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRo
ZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRo
ZW50aWNhdGlvbjsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDYxZGRlMDc1NDFlMGIz
MzU5Y2FkYTNlOTAxZTNlMDY0NDM1YTMxMmIuLjNlOWJiMjFlODlmYTM1ZWE2YjAwYWM3MDBmODZi
YzRjMGVjOTVjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEzNjUsNiArMTM2NSwxMSBAQCB2
b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNsZWFySXNvbGF0ZWRTZXNzaW9ucygpCiAgICAgbV9p
c29sYXRlZFNlc3Npb25zLmNsZWFyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6
Y2xlYXJBcHBCb3VuZFNlc3Npb24oKQoreworICAgIG1fYXBwQm91bmRTZXNzaW9uID0gbnVsbHB0
cjsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkK
IHsKICAgICBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5j
cHAKaW5kZXggZjMwMjkwYzBmYjM3Mzg1ZTEwNDA5MjU1ZTk2YTNlNjBhNzgwMTE5Yy4uZjBmNWEx
NDFhYjdmZWVjZDJiZTY4MmJiODg4NWZlNjI4NjUyNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC03
NTUsOSArNzU1LDkgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFF1b3RhKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnQKICAgICB9KTsKIH0KIAotdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZWQsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRT
ZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0SW5BcHBC
cm93c2VyUHJpdmFjeUVuYWJsZWQoZW5hYmxlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVy
XSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+Y2xlYXJBcHBCb3VuZFNlc3Np
b24oW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCAwMTg0NGZkMGYxZjhmZjZh
NWE2ODljYzY0MTgxMDEwYTYxM2E1OWZjLi5mOWEzODIzN2ZmMzg3OWY3MGMyMjkxODRiNWU2ZTI3
ZjY5NGQ0YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtMTY4LDggKzE2OCw4IEBAIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhX
S1dlYnNpdGVECiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFF1b3RhQ2Fs
bGJhY2spKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVSZXNldFF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0UXVvdGFDYWxsYmFjayBjYWxsYmFj
ayk7CiAKLXR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclBy
aXZhY3lFbmFibGVkRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZWQsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJBcHBCb3VuZFNlc3Npb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dL
X0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwog
CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CmluZGV4IDczYzk4YTM0NjI1ZDhmNTU1MjQxNDM4NGUzY2U2YjhkYjg0MGU4ZDguLmI3ZGU3NTFh
YjE3N2Q3MmIwNTY4OTMzMzUxYmE5ZWJhN2JlYTdhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNDU2
LDIyICs0NTYsNiBAQCAtICh2b2lkKV9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0ZvcjooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodgogI2VuZGlmCiB9CiAKLS0gKHZv
aWQpX2dldFdlYlZpZXdDYXRlZ29yeUZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoX1dLV2ViVmlld0NhdGVnb3J5IGNhdGVnb3J5KSljb21wbGV0aW9u
SGFuZGxlcgotewotICAgIGlmICghd2ViVmlldykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihfV0tXZWJWaWV3Q2F0ZWdvcnlXZWJCcm93c2VyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGF1dG8gd2ViUGFnZVByb3h5ID0gW3dlYlZpZXcgX3BhZ2VdOwotICAgIGlmICghd2Vi
UGFnZVByb3h5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKF9XS1dlYlZpZXdDYXRlZ29y
eVdlYkJyb3dzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29tcGxldGlvbkhh
bmRsZXIodG9XS1dlYlZpZXdDYXRlZ29yeSh3ZWJQYWdlUHJveHktPmNvbmZpZ3VyYXRpb24oKS53
ZWJWaWV3Q2F0ZWdvcnkoKSkpOwotfQotCiAtICh2b2lkKV9zY2hlZHVsZUNvb2tpZUJsb2NraW5n
VXBkYXRlOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2
MDk1OWU0NzM1MWIwYWVkYTJhMjI3NzA0N2NmOTg4ZWQ1OTk2MzQ2Li5mNWRiNTdhM2I3N2IxYWQw
NDJiZWM1MGI4MjMxMjUwOTQ1YmIwOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAg
LTYzLDcgKzYzLDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVE
YXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIC0gKHZvaWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX2xvYWRlZFRoaXJkUGFy
dHlEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfY2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWluc0ZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
dm9pZClfZ2V0V2ViVmlld0NhdGVnb3J5Rm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShfV0tXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKGJvb2wpX2hhc1Jl
Z2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmOWFkZTc2MmFkYjM4MTRlNDlhZjllNTlkNWY0
ZDFhYTI4YzIxZGZjLi45YTcwMGI2NDVkZDU3ZDBlZTQ3OTE0YWM0MjVmNDQ5YTJhZWEzMzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKQEAgLTE0NzEsMTQgKzE0NzEsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpoYXNBcHBCb3VuZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW8KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpI
YXNBcHBCb3VuZFNlc3Npb24oc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEluQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNh
blNlbmRNZXNzYWdlKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChzZXNzaW9uSUQsIHZh
bHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQXBwQm91bmRTZXNzaW9uKHNlc3Npb25J
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpnZXRBcHBCb3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0ZjgwNTMzM2VjYzcxODExYjUy
YjIzOGRiMThkNmFhZGFkZDJkYTcwLi5lY2RlZDUxZjAyMWUyZWNhMWE1YWE1MmMwNzAzNWNlYzUz
NTc2OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc291cmNlTG9hZERpZENvbXBsZXRlV2l0aEVycm9yKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IFJlc291cmNlTG9hZEluZm8mJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiYpOwogCiAgICAgdm9pZCBoYXNBcHBCb3VuZFNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgc2V0
SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFw
cEJvdW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDc3MzU2NjgxOGFiODZkZWQzZjU2ODYxM2IyNTc2NWVmMmFmYjUzNTku
LjA3YTE4Nzc2NmQxZTdmNTA4NzI5YzBiNDU0NjBhNTcxODU3MThmYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCkBAIC0yMzgzLDEzICsyMzgzLDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aGFzQXBw
Qm91bmRTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxlCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNl
dEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpj
bGVhckFwcEJvdW5kU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKICAgICBmb3IgKGF1
dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIG5l
dHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgICAg
ICBuZXR3b3JrUHJvY2Vzcy0+c2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQobV9zZXNzaW9u
SUQsIGVuYWJsZWQsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tB
Z2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5j
bGVhckFwcEJvdW5kU2Vzc2lvbihtX3Nlc3Npb25JRCwgW3Byb2Nlc3NQb29sLCBjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCmluZGV4IDVkYTVmYTUxYWUyOTMwOGRmZTk5ZmExNWE0YTg1MGQ2ODkwMjY1
ZjMuLmEyNjU1YmI0ZWRjYzczZTZiMGQyYzkzODQzNGJmMzAwYzYzYThhNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmgKQEAgLTI4NSw3ICsyODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0UXVvdGEoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc0FwcEJvdW5kU2Vzc2lvbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKLSAgICB2b2lkIHNldEluQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGJlZ2luQXBwQm91bmREb21haW5DaGVjayhjb25zdCBV
UkwmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKICAgICB2b2lkIGdldEFwcEJvdW5k
RG9tYWlucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4+Jik+JiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxYzUwNzA5ZTg3YWNiMDg1ZWUxZjVjNjc3NWM5MjVk
ODJjZWEzMjQuLjc2ZjQ3M2NmYTcxNmYwODE2NDBlNGU4M2YwMGMwODJjZmExM2M4NTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MyBAQAorMjAyMC0wNC0yOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KKworICAgICAgICBSZWZhY3RvciBsYXlvdXQgdGVzdHMgYWZ0ZXIgdXBkYXRlcyB0byBJbi1B
cHAgQnJvd3NlciBQcml2YWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTExNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYyNTI0MTI3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdHdv
IHVudXNlZCBmdW5jdGlvbnMgYWZ0ZXIgdXBkYXRpbmcgdGhlIHRlc3QgY2FzZXMuCisgICAgICAg
IHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkIGlzIG5vIGxvbmdlciBuZWVkZWQsIHNldHRp
bmcgdGhpcworICAgICAgICBpbiBUZXN0T3B0aW9ucyBpcyBlbm91Z2guIGdldFdlYlZpZXdDYXRl
Z29yeSBpcyBub3QgbmVlZGVkIGJlY2F1c2UKKyAgICAgICAgdGhpcyBwYXRjaCBkZWxldGVzIHRo
ZSBvbmx5IHRlc3Qgd2hpY2ggdXNlcyBpdC4KKworICAgICAgICBBZGRzIGEgZnVuY3Rpb24gdG8g
Y2xlYXIgYXBwLWJvdW5kIHNlc3Npb25zIGJldHdlZW4gdGVzdHMgbm93IHRoYXQKKyAgICAgICAg
bXVsdGlwbGUgdGVzdHMgY2hlY2sgZm9yIHRoZW0uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmdldFdlYlZpZXdDYXRlZ29yeSk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5Q2FsbGJh
Y2spOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJbkFwcEJyb3dzZXJQ
cml2YWN5RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxE
aWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
TW92ZSB0aGUgY2FsbCB0byBjbGVhciB0aGUgYnVuZGxlIGlkIHRvIGhhcHBlbiBpbgorICAgICAg
ICByZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzIHRvIG1ha2Ugc3VyZSB0aGUgbmV4dCB0ZXN0
IGNhbiBzZXQgdGhlCisgICAgICAgIHZhbHVlIGlmIG5lZWRlZCAob3RoZXJ3aXNlIHJlc3VsdHMg
aW4gYSBjYWxsIHRvIGV4aXQoMSkpLgorCisgICAgICAgIChXVFI6OnVwZGF0ZVRlc3RPcHRpb25z
RnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBC
b3VuZFNlc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2V0V2ViVmlld0Nh
dGVnb3J5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEluQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpk
aWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
aGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAgICAgICAgQXBwLWJvdW5kIFdl
YlZpZXdzIG5vdyByZXF1aXJlIGEgc3BlY2lhbCBjb25maWd1cmF0aW9uIGFyZ3VtZW50LiBUaGlz
CisgICAgICAgIHBhdGNoIGFkZHMgbG9naWMgdG8gZW5hYmxlIHRoYXQgdXNpbmcgYSBuZXcgVGVz
dE9wdGlvbi4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdldFdlYlZpZXdDYXRlZ29y
eSk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjggIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbTGludXhdIFJlcGxhY2UgLS1nZW9tZXRyeSB3aXRoIC0t
ZnVsbHNjcmVlbiB3aGVuIHVzaW5nIE1pbmlCcm93c2VyIGZvciBXZWJEcml2ZXIgdGVzdHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDI3ZmRjOTJmMWM1MTcxZjJkNDE0MGRhZTMzOTAx
MDZhZjA2MDM1YzkuLjVjYmU5NTE2MmVkN2NkNzQ3Mjc0MzYwMGZjZDNjMmU0YTlhZTgzOTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzU4LDkgKzM1OCw2IEBAIGludGVyZmFjZSBU
ZXN0UnVubmVyIHsKICAgICAvLyBTdG9yYWdlIEFjY2VzcyBBUEkKICAgICB2b2lkIGdldEFsbFN0
b3JhZ2VBY2Nlc3NFbnRyaWVzKG9iamVjdCBjYWxsYmFjayk7CiAKLSAgICB2b2lkIGdldFdlYlZp
ZXdDYXRlZ29yeShvYmplY3QgY2FsbGJhY2spOwotICAgIHZvaWQgc2V0SW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQoYm9vbGVhbiB2YWx1ZSwgb2JqZWN0IGNhbGxiYWNrKTsKLQogICAgIC8vIE9w
ZW4gcGFuZWwKICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzKG9iamVjdCBmaWxlc0FycmF5KTsK
ICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzTWVkaWFJY29uKG9iamVjdCBtZWRpYUljb24pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAppbmRleCAxNjY3NTgwMjEwMTJmMGU0OGFiZTQzNjgzMTE0NzY1ODViZTY3
MDc4Li4xMGU2ZWUzZjcxZjMyMTZmYjQ3NjFlZWVlYzY1NzAwYjNmMmMwYzBmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtMzQ2LDExICszNDYsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbQogICAg
ICAgICBtX3Rlc3RSdW5uZXItPnN0YXRpc3RpY3NDYWxsRGlkU2V0U2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llc0NhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCi0gICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsRGlkU2V0
SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQiKSkgewotICAgICAgICBtX3Rlc3RSdW5uZXItPmNh
bGxEaWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZENhbGxiYWNrKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIkNhbGxEaWRTZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSIpKSB7
CiAgICAgICAgIG1fdGVzdFJ1bm5lci0+c3RhdGlzdGljc0NhbGxEaWRTZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUNhbGxiYWNrKCk7CkBAIC00NDIsMTQgKzQzNyw2IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBtCiAgICAgICAgIG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlY2VpdmVM
b2FkZWRUaGlyZFBhcnR5RG9tYWluc0NhbGxiYWNrKFdURk1vdmUoZG9tYWlucykpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiQ2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnkiKSkgewotICAg
ICAgICBBU1NFUlQobWVzc2FnZUJvZHkpOwotICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLU3RyaW5nR2V0VHlwZUlEKCkpOwotCi0gICAgICAgIG1fdGVzdFJ1bm5l
ci0+Y2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnlDYWxsYmFjayh0b1dURlN0cmluZyhzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIpKSB7CiAgICAgICAg
IG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNr
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAppbmRleCBjY2YzYTQ4ODY1NjM2NWE3YmM3Nzg5YjRhNWFmYjYwNmUzOTBlNmRl
Li41M2QxMWFkNzMzZTkxZDhjMTE4NDRhMTAyZjI3NjM1ZDJjZjIwMGEyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTc2Myw4ICs3NjMsNiBAQCBlbnVtIHsKICAgICBUZXh0RmllbGREaWRCZWdpbkVkaXRpbmdDYWxs
YmFja0lELAogICAgIFRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxsYmFja0lELAogICAgIEN1c3Rv
bU1lbnVBY3Rpb25DYWxsYmFja0lELAotICAgIEdldFdlYlZpZXdDYXRlZ29yeUNhbGxiYWNrSUQs
Ci0gICAgRGlkU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWRDYWxsYmFja0lELAogICAgIEZp
cnN0VUlTY3JpcHRDYWxsYmFja0lEID0gMTAwCiB9OwogCkBAIC0yOTY3LDI2ICsyOTY1LDYgQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRPZmZzY3JlZW5DYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5LmdldCgpLCBl
bmFibGVkKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpnZXRXZWJWaWV3Q2F0ZWdvcnkoSlNWYWx1
ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhHZXRXZWJWaWV3
Q2F0ZWdvcnlDYWxsYmFja0lELCBjYWxsYmFjayk7Ci0gICAgCi0gICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiR2V0V2ViVmlld0NhdGVnb3J5IikpOwotICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVs
bHB0cik7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdv
cnlDYWxsYmFjayhTdHJpbmcgY2F0ZWdvcnkpCi17Ci0gICAgV0tCdW5kbGVGcmFtZVJlZiBtYWlu
RnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpKTsKLSAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxl
RnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwotCi0gICAgYXV0byByZXN1bHRT
dHJpbmcgPSBtYWtlU3RyaW5nKCJcIiIsIGNhdGVnb3J5LCAiXCIiKTsKLSAgICAKLSAgICBKU1Zh
bHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgYWRvcHQo
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzdWx0U3RyaW5nLnV0ZjgoKS5kYXRhKCkp
KS5nZXQoKSk7Ci0KLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEdldFdlYlZpZXdDYXRlZ29y
eUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOwotfQotCiBib29sIFRlc3RSdW5uZXI6Omhhc0FwcEJv
dW5kU2Vzc2lvbigpCiB7CiAgICAgYXV0byBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhc0FwcEJvdW5kU2Vzc2lvbiIpKTsKQEAgLTI5OTcsMTcg
KzI5NzUsNCBAQCBib29sIFRlc3RSdW5uZXI6Omhhc0FwcEJvdW5kU2Vzc2lvbigpCiAgICAgcmV0
dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihy
ZXR1cm5EYXRhKSkuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEluQXBwQnJvd3Nl
clByaXZhY3lFbmFibGVkKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soRGlkU2V0SW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWRDYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQiKSk7Ci0gICAgV0tSZXRhaW5Q
dHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZh
bHVlKSk7Ci0gICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Ci19Ci0K
LXZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkQ2Fs
bGJhY2soKQotewotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soRGlkU2V0SW5BcHBCcm93c2Vy
UHJpdmFjeUVuYWJsZWRDYWxsYmFja0lEKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmlu
ZGV4IGU3YjI1MjhhYjk5ZmZhZjBlNGFhMzZiOWU3MjFmOWU5YTBjNjYwNGYuLmY1YjYzNmUwMTg5
Y2E3MjQ5ZjQ2MzY1ZDRkYjY2ZmFjY2M0ZmFhYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NjksMTAgKzQ2OSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKEpTVmFsdWVSZWYg
Y2FsbGJhY2spOwogICAgIHZvaWQgY2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50cmll
c0NhbGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKTsKIAotICAgIAotICAgIHZvaWQgZ2V0
V2ViVmlld0NhdGVnb3J5KEpTVmFsdWVSZWYgY2FsbGJhY2spOwotICAgIHZvaWQgY2FsbERpZFJl
Y2VpdmVXZWJWaWV3Q2F0ZWdvcnlDYWxsYmFjayhTdHJpbmcpOwotCiAgICAgLy8gT3BlbiBwYW5l
bAogICAgIHZvaWQgc2V0T3BlblBhbmVsRmlsZXMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBzZXRP
cGVuUGFuZWxGaWxlc01lZGlhSWNvbihKU1ZhbHVlUmVmKTsKQEAgLTUwNSw4ICs1MDEsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24odW5zaWduZWQpOwogICAg
IGJvb2wgaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKTsKICAgICBib29s
IGhhc0FwcEJvdW5kU2Vzc2lvbigpOwotICAgIHZvaWQgc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQoYm9vbCwgSlNWYWx1ZVJlZik7Ci0gICAgdm9pZCBjYWxsRGlkU2V0SW5BcHBCcm93c2Vy
UHJpdmFjeUVuYWJsZWRDYWxsYmFjaygpOwogCiAgICAgc2l6ZV90IHVzZXJTY3JpcHRJbmplY3Rl
ZENvdW50KCkgY29uc3Q7CiAgICAgdm9pZCBpbmplY3RVc2VyU2NyaXB0KEpTU3RyaW5nUmVmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYWE3MjNlZDhm
NDk2MWEyMDg0NmYxM2FhYzg1MTBiZWExZDNmZWZlYy4uYmM4MDVhNDJjZGU0YWZkNjcwMDJmYzAz
ZWY2NjI0NzMwNWEyZDUxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTY0NSw3ICs2NDUsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJW
aWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIGV4aXQo
MSk7CiAgICAgfQogICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVz
dGluZ092ZXJyaWRlKCk7CiAgICAgICAgIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihv
cHRpb25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiAgICAgICAgIG1faGFzU2V0QXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdHJ1ZTsKICAgICB9CkBAIC0xMTM2LDcgKzExMzUs
NyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBSZQogCiAgICAgc3RhdGlzdGljc1Jlc2V0VG9Db25z
aXN0ZW50U3RhdGUoKTsKICAgICBjbGVhckxvYWRlZFRoaXJkUGFydHlEb21haW5zKCk7Ci0KKyAg
ICBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7
CiAKICAgICBtX2RpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlv
biA9IGZhbHNlOwpAQCAtMTE1MCw4ICsxMTQ5LDEwIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJl
CiAgICAgaWYgKCFtX2RvbmVSZXNldHRpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
LSAgICBpZiAocmVzZXRTdGFnZSA9PSBSZXNldFN0YWdlOjpBZnRlclRlc3QpCisgICAgaWYgKHJl
c2V0U3RhZ2UgPT0gUmVzZXRTdGFnZTo6QWZ0ZXJUZXN0KSB7CiAgICAgICAgIHVwZGF0ZUxpdmVE
b2N1bWVudHNBZnRlclRlc3QoKTsKKyAgICAgICAgY2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyAgICB9CiAKICAgICByZXR1cm4gbV9kb25lUmVzZXR0
aW5nOwogfQpAQCAtMTUyNyw3ICsxNTI4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlVGVzdE9wdGlv
bnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0IHN0ZDoKICAg
ICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kgPSBwYXJzZUJv
b2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gInN0
YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCIpCiAgICAgICAgICAgICB0ZXN0T3B0aW9ucy5zdGFu
ZGFsb25lV2ViQXBwbGljYXRpb25VUkwgPSBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzVVJM
KHZhbHVlKTsKLQorICAgICAgICBlbHNlIGlmIChrZXkgPT0gImlzQXBwQm91bmRXZWJWaWV3IikK
KyAgICAgICAgICAgIHRlc3RPcHRpb25zLmlzQXBwQm91bmRXZWJWaWV3ID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7
CiAgICAgfQogfQpAQCAtMzE5MSwxMCArMzE5Myw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNs
ZWFyTG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoKQogICAgIFdLUGFnZUNsZWFyTG9hZGVkVGhpcmRQ
YXJ0eURvbWFpbnMobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKIH0KIAotdm9pZCBUZXN0Q29udHJv
bGxlcjo6Z2V0V2ViVmlld0NhdGVnb3J5KCkKLXsKLX0KLQogI2VuZGlmCiAKIHN0cnVjdCBDbGVh
clNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zQ2FsbGJhY2tDb250ZXh0IHsKQEAgLTM4NTAsMTMg
KzM4NDgsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFzQXBwQm91bmRTZXNzaW9uKCkKICAg
ICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKLQotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoYm9vbCB2YWx1ZSkKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNsZWFyQXBwQm91bmRTZXNzaW9uKCkKIHsKICAgICBJbkFwcEJyb3dzZXJQcml2YWN5Q2Fs
bGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldElu
QXBwQnJvd3NlclByaXZhY3lFbmFibGVkKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3Jl
KCksIHZhbHVlLCAmY29udGV4dCwgaW5BcHBCcm93c2VyUHJpdmFjeVZvaWRSZXN1bHRDYWxsYmFj
ayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBcHBCb3VuZFNlc3Npb24oVGVzdENvbnRy
b2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIGluQXBwQnJvd3NlclByaXZhY3lW
b2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKLSAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5h
YmxlZCgpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpyZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDE1Mjc4
N2FhNzM0OTM2YTE4MjY4ZTJjZmI1YTExYzRkN2M4OWYwOWQuLjMzN2VmNmUzYjQzMGJlMWQ3Nzcy
MmVhYjdmZWE4Y2IyMWFlZWQxYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKQEAgLTI3MSw4ICsyNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdl
QWNjZXNzRW50cmllcygpOwogICAgIHZvaWQgbG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoKTsKICAg
ICB2b2lkIGNsZWFyTG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoKTsKLSAgICB2b2lkIGdldFdlYlZp
ZXdDYXRlZ29yeSgpOwotICAgIHZvaWQgc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoYm9v
bCk7CisgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIHZvaWQgcmVpbml0aWFs
aXplQXBwQm91bmREb21haW5zKCk7CiAKICAgICBXS0FycmF5UmVmIG9wZW5QYW5lbEZpbGVVUkxz
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVuUGFuZWxGaWxlVVJMcy5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA3MTljNTJjY2IwZWYwNjIzNDUz
MjA5MmE5NTQzMGUwM2U1Mzc4MzRlLi43ZWE3ZDIwMGFhNDcwYzExMDJhODMwOTBjNzhlNDJkZmIw
OTU0NDFmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAt
NzYwLDEzICs3NjAsNiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNv
b2tpZXMoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCIpKSB7Ci0gICAgICAgIEFTU0VS
VChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOwotICAg
ICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3Nh
Z2VCb2R5KTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldEluQXBwQnJv
d3NlclByaXZhY3lFbmFibGVkKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlvbmFyeVJl
ZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1l
c3NhZ2VCb2R5KTsKQEAgLTgwNywxMSArODAwLDYgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUK
ICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldE9wZW5QYW5lbEZpbGVVUkxz
KHN0YXRpY19jYXN0PFdLQXJyYXlSZWY+KG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJHZXRXZWJWaWV3Q2F0ZWdvcnkiKSkgewotICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuZ2V0V2ViVmlld0NhdGVnb3J5KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0T3BlblBhbmVsRmlsZVVSTHNNZWRpYUljb24iKSkg
ewpAQCAtMTkyOSwxMiArMTkxNyw2IEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFNldFNob3Vs
ZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoKQogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3Rl
ZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgp
LCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgVGVzdEludm9jYXRpb246
OmRpZFNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKCkKLXsKLSAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJDYWxsRGlkU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQiKSk7Ci0gICAgV0tQ
YWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyKTsKLX0K
LQogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGUoKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxEaWRTZXRGaXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSIpKTsKQEAgLTIwMjMsMTQgKzIwMDUsNiBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoVmVjdG9yPFN0
cmluZz4mJiBkb21haW5zKQogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCBtZXNzYWdl
TmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5KFN0cmluZyYmIHdlYlZpZXdDYXRlZ29yeSkKLXsK
LSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkUmVjZWl2ZVdlYlZpZXdDYXRlZ29yeSIp
KTsKLSAgICAKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZUJvZHkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHdlYlZpZXdDYXRlZ29yeS51dGY4KCku
ZGF0YSgpKSk7Ci0gICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdl
dCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Ci19Ci0KIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJl
bW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
Q2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrIikpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGM3YTk1NjQzNDQ2MzI5NGIxNTVjNWMw
NTAwMjRkZWY0N2ZjYjcxZjUuLjFlNTc3ZGFhN2Q5MDg1ZDQwNmRhYTE3MzRjZTAwNWM0MjhkODNk
MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTg4LDggKzg4
LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU2V0SGFzSGFkVXNlckludGVyYWN0aW9uKCk7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoVmVjdG9yPFN0cmluZz4m
JiBkb21haW5zKTsKICAgICB2b2lkIGRpZFJlY2VpdmVMb2FkZWRUaGlyZFBhcnR5RG9tYWlucyhW
ZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdDYXRl
Z29yeShTdHJpbmcmJik7Ci0gICAgdm9pZCBkaWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxl
ZCgpOwogCiAgICAgdm9pZCBkaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBhMmFmMTJmMjM5NzljOTI0Njc3
YWZlNDc5ZWIxNjQwMzY2Y2ZkZTM5Li4zYzhlNDQwZmVlZDFlMzczNzI3ZGNiY2E2ODIxYmM5NDY2
NzNjYTRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC0xMDQsNiArMTA0
LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNhcHR1cmVBdWRpb0lu
R1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFV
UkxzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldyB7IGZhbHNlIH07CiAKICAgICBkb3VibGUg
Y29udGVudEluc2V0VG9wIHsgMCB9OwogCkBAIC0xNzIsNyArMTczLDggQEAgc3RydWN0IFRlc3RP
cHRpb25zIHsKICAgICAgICAgICAgIHx8IGVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcyAh
PSBvcHRpb25zLmVuYWJsZUNhcHR1cmVBdWRpb0luR1BVUHJvY2VzcwogICAgICAgICAgICAgfHwg
YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyAhPSBvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlv
blRvRGF0YVVSTHMKICAgICAgICAgICAgIHx8IGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3kgIT0g
b3B0aW9ucy5lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Ci0gICAgICAgICAgICB8fCBzdGFuZGFs
b25lV2ViQXBwbGljYXRpb25VUkwgIT0gb3B0aW9ucy5zdGFuZGFsb25lV2ViQXBwbGljYXRpb25V
UkwpCisgICAgICAgICAgICB8fCBzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwgIT0gb3B0aW9u
cy5zdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwKKyAgICAgICAgICAgIHx8IGlzQXBwQm91bmRX
ZWJWaWV3ICE9IG9wdGlvbnMuaXNBcHBCb3VuZFdlYlZpZXcpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgaWYgKCFjb250ZXh0T3B0aW9ucy5oYXNTYW1lSW5pdGlhbGl6YXRp
b25PcHRpb25zKG9wdGlvbnMuY29udGV4dE9wdGlvbnMpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDFjZTNkZDM5N2Y4
NWJlMGQyYjQwOTI1NzNlYmNhMmFlZWY5Njk1MzQuLmUxNzU3ZTc5ZTkxYTZiMDRhOTEwNTEyMDc0
MDkzNTY0ZTVkMTU4YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTE0NSw2ICsxNDUsOCBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29u
c3QgVGVzdE9wdAogICAgICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRJZ25vcmVzVmlld3Bv
cnRTY2FsZUxpbWl0czpZRVNdOwogICAgIGlmIChvcHRpb25zLnVzZUNoYXJhY3RlclNlbGVjdGlv
bkdyYW51bGFyaXR5KQogICAgICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRTZWxlY3Rpb25H
cmFudWxhcml0eTpXS1NlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyXTsKKyAgICBpZiAob3B0
aW9ucy5pc0FwcEJvdW5kV2ViVmlldykKKyAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0
TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluczpZRVNdOwogI2Vsc2UKICAgICBbY29w
aWVkQ29uZmlndXJhdGlvbiBfc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDpvcHRpb25zLmVuYWJs
ZVNlcnZpY2VDb250cm9sc107CiAjZW5kaWYKQEAgLTM3MiwzMiArMzc0LDYgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWlucygpCiAgICAgW2dsb2JhbFdl
YlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2NsZWFyTG9hZGVkVGhpcmRQYXJ0
eURvbWFpbnNGb3I6cGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCldOwogfQogCi12b2lkIFRlc3RD
b250cm9sbGVyOjpnZXRXZWJWaWV3Q2F0ZWdvcnkoKQotewotICAgIGF1dG8qIHBhcmVudFZpZXcg
PSBtYWluV2ViVmlldygpOwotICAgIGlmICghcGFyZW50VmlldykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2dldFdl
YlZpZXdDYXRlZ29yeUZvcjpwYXJlbnRWaWV3LT5wbGF0Zm9ybVZpZXcoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeKF9XS1dlYlZpZXdDYXRlZ29yeSB3ZWJWaWV3Q2F0ZWdvcnkpIHsKLSAgICAgICAgU3Ry
aW5nIGNhdGVnb3J5OwotICAgICAgICBzd2l0Y2ggKHdlYlZpZXdDYXRlZ29yeSkgewotICAgICAg
ICBjYXNlIF9XS1dlYlZpZXdDYXRlZ29yeUFwcEJvdW5kRG9tYWluOgotICAgICAgICAgICAgY2F0
ZWdvcnkgPSAiQXBwQm91bmREb21haW4iOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgX1dLV2ViVmlld0NhdGVnb3J5SHlicmlkQXBwOgotICAgICAgICAgICAgY2F0ZWdvcnkgPSAi
SHlicmlkQXBwIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIF9XS1dlYlZpZXdD
YXRlZ29yeUluQXBwQnJvd3NlcjoKLSAgICAgICAgICAgIGNhdGVnb3J5ID0gIkluQXBwQnJvd3Nl
ciI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBfV0tXZWJWaWV3Q2F0ZWdvcnlX
ZWJCcm93c2VyOgotICAgICAgICAgICAgY2F0ZWdvcnkgPSAiV2ViQnJvd3NlciI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRS
ZWNlaXZlV2ViVmlld0NhdGVnb3J5KFdURk1vdmUoY2F0ZWdvcnkpKTsKLSAgICB9XTsKLX0KLQog
dm9pZCBUZXN0Q29udHJvbGxlcjo6aW5qZWN0VXNlclNjcmlwdChXS1N0cmluZ1JlZiBzY3JpcHQp
CiB7CiAgICAgYXV0byB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10g
aW5pdFdpdGhTb3VyY2U6IHRvV1RGU3RyaW5nKHNjcmlwdCkgaW5qZWN0aW9uVGltZTpXS1VzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODQ5YmNhYjI4ZTRhNzk4ZDA4ZDY1MDkwOTJiY2I0MzA4NzY2ODk4Li41YzNkMWZj
Njg2ZWUzOGU2NDFkZmViYjExMGQ1YzVkMGUyZjM1ZGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMjAtMDQtMjggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVmYWN0b3IgbGF5b3V0IHRlc3RzIGFmdGVyIHVwZGF0ZXMgdG8gSW4tQXBwIEJy
b3dzZXIgUHJpdmFjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExMTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MjUyNDEyNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVzIHRoZSB0ZXN0
IGNhc2VzIGluIDIgd2F5czoKKyAgICAgICAgMS4gRGVsZXRlcyBhcHAtYm91bmQtZG9tYWluLmh0
bWwsIHdoaWNoIGlzIGZ1bGx5IGFuZCBwcm9wZXJseSB0ZXN0ZWQKKyAgICAgICAgdXNpbmcgQVBJ
IHRlc3RzIGFuZCBpcyB1bm5lY2Vzc2FyeSBoZXJlLgorICAgICAgICAyLiBTcGxpdHMgc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwgaW50bworICAg
ICAgICB0d28gc2VwYXJhdGUgdGVzdHMgbm93IHRoYXQgbmF2aWdhdGlvbiBiZXR3ZWVuIGFwcC1i
b3VuZCBhbmQgCisgICAgICAgIG5vbi1hcHAtYm91bmQgV2ViVmlld3MgaXMgbm90IGFsbG93ZWQu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5k
LWRvbWFpbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1h
cHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1hcHAtYm91bmQtc2Vzc2lv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dz
ZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWdldHMtYXBwLWJvdW5kLXNlc3Npb24uaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1i
b3VuZC1kb21haW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvbm9uLWFwcC1ib3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3Vu
ZC1zZXNzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1h
cHAtYnJvd3Nlci1wcml2YWN5L25vbi1hcHAtYm91bmQtZG9tYWluLWRvZXMtbm90LWdldC1hcHAt
Ym91bmQtc2Vzc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91bmQt
ZG9tYWluLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91
bmQtZG9tYWluLmh0bWw6IFJlbW92ZWQuCisKIDIwMjAtMDQtMjggIEphY2sgTGVlICA8c2hpaGNo
aWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBFZGl0Q29tbWFu
ZDo6RWRpdENvbW1hbmQgdmlhIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBw
LWJvdW5kLWRvbWFpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1MjNhNjkxYjhjZTgxMjkzNWM3ODMwY2VkMWZlM2U4YjZl
YmM5NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21h
aW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1UZXN0cyB0aGF0
IGFuIEFwcC1Cb3VuZCBEb21haW4gZ2V0cyBjbGFzc2lmaWVkIGFzIHNvCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIFN1Y2Nlc3MsIGRvbWFpbiBjbGFzc2lmaWVkIGFzIElu
LUFwcCBCcm93c2VyLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi1nZXRzLWFwcC1ib3VuZC1zZXNzaW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS9hcHAtYm91bmQtZG9tYWluLWdldHMtYXBwLWJvdW5kLXNlc3Npb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQzZTQxYmU1NmNiNGIzZDY4NzY4OWIyYjNlOTkyNWE3MGI0ZTY2NmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXBy
aXZhY3kvYXBwLWJvdW5kLWRvbWFpbi1nZXRzLWFwcC1ib3VuZC1zZXNzaW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGFuIGFwcC1ib3VuZCBkb21haW4gaGFzIGFu
IGFwcC1ib3VuZCBzZXNzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBPcmlnaW4gaGFzIGFwcC1ib3VuZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWdldHMtYXBwLWJv
dW5kLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXIt
cHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWdldHMtYXBwLWJvdW5kLXNlc3Npb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYmFiNmVhM2I5NzM1NTQ0ZWZjMzJlODViMjQ5NmI4YjU0NGRiMzcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5
L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlSW5B
cHBCcm93c2VyUHJpdmFjeT10cnVlIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcj1pbkFwcEJy
b3dzZXJQcml2YWN5VGVzdElkZW50aWZpZXIgaXNBcHBCb3VuZFdlYlZpZXc9dHJ1ZSBdIC0tPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYW4gYXBwLWJvdW5kIGRvbWFpbiBoYXMgYW4g
YXBwLWJvdW5kIHNlc3Npb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaGFzQXBwQm91bmRT
ZXNzaW9uKCkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBkaWQgbm90IHN0YXJ0
IHdpdGggYXBwLWJvdW5kIHNlc3Npb24uIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgYXBw
LWJvdW5kIHNlc3Npb24uIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fQorICAgIH0KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFp
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2Fw
cC1ib3VuZC1kb21haW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE5ZDVh
YmIxZTc1ZjYxZGQ3ZDUzZWIxZmI1NDE3MjZlOGE0MTAyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5PXRydWUgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyPWlu
QXBwQnJvd3NlclByaXZhY3lUZXN0SWRlbnRpZmllciBdIC0tPgotPGh0bWw+Ci08aGVhZD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhbiBBcHAt
Qm91bmQgRG9tYWluIGdldHMgY2xhc3NpZmllZCBhcyBzbycpOwotICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICAg
ICAgZnVuY3Rpb24gYXNrRm9yV2ViVmlld0NhdGVnb3J5KCkgewotICAgICAgICAgICAgdGVzdFJ1
bm5lci5nZXRXZWJWaWV3Q2F0ZWdvcnkoZnVuY3Rpb24gKGNhdGVnb3J5KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGNhdGVnb3J5ICE9ICJJbkFwcEJyb3dzZXIiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgYXNrRm9yV2ViVmlld0NhdGVnb3J5KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdWNj
ZXNzLCBkb21haW4gY2xhc3NpZmllZCBhcyBJbi1BcHAgQnJvd3Nlci4iKTsKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
Ci0KLSAgICAgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKLSAgICAgICAgZnVuY3Rpb24gbmF2aWdhdGVUb05vbkFwcEJvdW5kRG9tYWluKCkgewot
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsg
Ii9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21haW4uaHRtbCNzdGVwMiI7Ci0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9
ICIjc3RlcDIiKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmdldFdlYlZpZXdDYXRlZ29yeShm
dW5jdGlvbiAoY2F0ZWdvcnkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgIT0gIkFw
cEJvdW5kRG9tYWluIikgewotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsdXJl
LCBzdGFydGluZyBjYXRlZ29yeSBub3QgQXBwQm91bmREb21haW4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIG5hdmlnYXRlVG9Ob25BcHBCb3VuZERvbWFpbigpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc2tGb3JXZWJWaWV3Q2F0ZWdvcnkoKTsK
LSAgICAgICAgfQotICAgIAotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiRmFpbHVyZSwgZG9tYWluIG5vdCBjbGFzc2lmaWVkIGFzIEluLUFw
cCBCcm93c2VyLiIpOwotICAgICAgICAgICAgY29uc29sZS5sb2coIlRlc3QgdGltZWQgb3V0IGFm
dGVyIDIwIHNlY29uZHMiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpCi0g
ICAgICAgIH0sIDIwMDAwKTsKLSAgICAKLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1h
cHAtYnJvd3Nlci1wcml2YWN5L25vbi1hcHAtYm91bmQtZG9tYWluLWRvZXMtbm90LWdldC1hcHAt
Ym91bmQtc2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvbm9uLWFwcC1ib3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1i
b3VuZC1zZXNzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzk1NzE2ZmUxNDY3ODc2OWRi
N2IxNWFjYTI4OTVhNzQyMDFjY2U1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L25vbi1hcHAtYm91bmQtZG9tYWluLWRvZXMt
bm90LWdldC1hcHAtYm91bmQtc2Vzc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBhIG5vbi1hcHAtYm91bmQgZG9tYWluIGRvZXMgbm90IGhhdmUgYW4gYXBwLWJv
dW5kIHNlc3Npb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE9yaWdp
biBoYXMgbm9uLWFwcC1ib3VuZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9ub24tYXBwLWJvdW5kLWRvbWFpbi1kb2VzLW5vdC1n
ZXQtYXBwLWJvdW5kLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBw
LWJyb3dzZXItcHJpdmFjeS9ub24tYXBwLWJvdW5kLWRvbWFpbi1kb2VzLW5vdC1nZXQtYXBwLWJv
dW5kLXNlc3Npb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDczMGYxMGZjYzBlZjZiMzJlZDQxMGJiZDc0
MGUwNTY3Nzg1ZGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bi1hcHAtYnJvd3Nlci1wcml2YWN5L25vbi1hcHAtYm91bmQtZG9tYWluLWRvZXMtbm90LWdldC1h
cHAtYm91bmQtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeT10cnVlIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcj1pbkFwcEJyb3dzZXJQcml2YWN5VGVzdElkZW50aWZp
ZXIgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgbm9uLWFwcC1ib3VuZCBk
b21haW4gZG9lcyBub3QgaGF2ZSBhbiBhcHAtYm91bmQgc2Vzc2lvbi4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmhhc0FwcEJvdW5kU2Vzc2lvbigpKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJPcmlnaW4gc3RhcnRlZCB3aXRoIGFwcC1ib3VuZCBzZXNzaW9uLiIpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJPcmlnaW4gaGFzIG5vbi1hcHAtYm91bmQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFwcC1ib3VuZC1kb21haW4tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5
L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5kLWRvbWFpbi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZThhNjNlNDc3YTlhMGRjYzAy
ZDYyNzVlZDZhYjEwYzViNzlkZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5
L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5kLWRvbWFpbi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IHRoZSBzZXNz
aW9uIGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYW4gYXBwLWJvdW5k
IGRvbWFpbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgU2hvdWxkIGhh
dmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCi1QQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMg
dGhlIHBlcnNpc3RlbnQgY29va2llLgotUEFTUyBPcmlnaW4gaGFzIGFwcC1ib3VuZCBzZXNzaW9u
IGFmdGVyIG5hdmlnYXRpb24uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5k
LWRvbWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5kLWRvbWFpbi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjI0YjBiNGQ3MTY0ZGIwYWY4Yjg0OWRi
NDViY2FlY2ZiYzA0ODJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFwcC1ib3VuZC1kb21haW4uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDExOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3k9dHJ1ZSBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI9aW5BcHBCcm93c2VyUHJpdmFjeVRlc3RJZGVudGlmaWVyIF0gLS0+Ci08aHRt
bCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHNjcmlwdD4KLSAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRv
cCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGFuIGFwcC1ib3VuZCBkb21haW4uIik7Ci0gICAganNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLSAgICBjb25zdCBhcHBCb3VuZE9yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOwotICAgIGNvbnN0IG5vbkFwcEJvdW5kT3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7Ci0gICAgY29uc3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tp
ZSI7Ci0gICAgY29uc3QgcGVyc2lzdGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tpZSI7
Ci0gICAgY29uc3QgdHdvTWludXRlc0luU2Vjb25kcyA9IDEyMDsKLQotICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIHNl
dFNlc3Npb25Db29raWUoKSB7Ci0gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25Db29r
aWVOYW1lICsgIj0xOyBwYXRoPS8iOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldFBlcnNpc3Rl
bnRDb29raWUoKSB7Ci0gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29raWVO
YW1lICsgIj0xOyBwYXRoPS87IE1heC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9uQ29v
a2llLCBzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSkgewotICAgICAgICBsZXQgaGFzU2Vzc2lv
bkNvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5h
bWUpLAotICAgICAgICAgICAgaGFzUGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29raWUg
KyAiIikuaW5jbHVkZXMocGVyc2lzdGVudENvb2tpZU5hbWUpOwotCi0gICAgICAgIGlmIChzaG91
bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKQotICAgICAgICAgICAgdGVz
dFBhc3NlZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7Ci0gICAg
ICAgIGVsc2UgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29va2ll
KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZl
IHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKLSAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaFRlc3QpOwotICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNv
b2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKLSAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaFRlc3QpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNl
c3Npb24gY29va2llLiIpOwotCi0KLSAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29v
a2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91
bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKLSAgICAgICAgZWxzZSBp
ZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsK
LSAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhl
IHBlcnNpc3RlbnQgY29va2llLiIpOwotICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoVGVzdCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50
Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOwotICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoVGVzdCk7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2
ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7Ci0gICAgICAg
ICAgICBjYXNlICIiOgotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0SW5BcHBCcm93c2Vy
UHJpdmFjeUVuYWJsZWQodHJ1ZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBhcHBCb3VuZE9yaWdpbikKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAi
ICsgYXBwQm91bmRPcmlnaW4gKyAiLiIpOwotICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2lu
Y2UgdGhlIHRlc3QgbWFudWFsbHkgc2V0cyB0aGUgaW5BcHBCcm93c2VyUHJpdmFjeSBmbGFnIGlu
IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV0d29yayBwcm9jZXNzLCB3ZSBuZWVk
IHRvIHJlLWVzdGFibGlzaCBhbiBhcHAtYm91bmQgc2Vzc2lvbiBieQotICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gbmF2aWdhdGluZyBhd2F5IHRoZW4gYmFjayB0byB0aGUgYXBwLWJvdW5kIERv
bWFpbiBiZWZvcmUgc2V0dGluZyBjb29raWVzLgotICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IG5vbkFwcEJvdW5kT3JpZ2luICsgIi9pbi1hcHAtYnJvd3Nl
ci1wcml2YWN5L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5kLWRvbWFp
bi5odG1sI3N0ZXAxIjsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICIjc3RlcDEiOgot
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBhcHBCb3VuZE9yaWdpbiAr
ICIvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LWFwcC1ib3VuZC1kb21haW4uaHRtbCNzdGVwMiI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlICIjc3RlcDIiOgotICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gIT09IGFwcEJvdW5kT3JpZ2luKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBhcHBCb3VuZE9yaWdpbiArICIuIik7Ci0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKGFwcEJvdW5kT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAg
ICAgc2V0U2Vzc2lvbkNvb2tpZSgpOwotICAgICAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50
Q29va2llKCk7Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsK
LSAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaGFzQXBwQm91bmRTZXNzaW9uKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBkaWQgbm90IHN0YXJ0
IHdpdGggYXBwLWJvdW5kIHNlc3Npb24uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hUZXN0KTsKLSAgICAgICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGFwcC1i
b3VuZCBzZXNzaW9uLiIpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gbm9uQXBwQm91bmRPcmlnaW4gKyAiL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwjc3RlcDMiOwot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAzIjoKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
IiNzdGVwNCIKLSAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXMoZmFsc2UsIGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25BcHBCb3Vu
ZE9yaWdpbikKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiU3RlcCAzIGlzIG5vdCBv
biAiICsgbm9uQXBwQm91bmRPcmlnaW4pOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKLSAgICAgICAgICAgICAgICBjaGVja0Nv
b2tpZXMoZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gYXBwQm91bmRPcmlnaW4gKyAiL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNl
c3Npb24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwjc3RlcDUiOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKLSAgICAgICAg
ICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaGFzQXBwQm91bmRTZXNzaW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIk9yaWdpbiBoYXMgYXBwLWJvdW5kIHNlc3Npb24gYWZ0ZXIgbmF2aWdhdGlvbi4iKTsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9y
aWdpbiBoYXMgbm8gYXBwLWJvdW5kIHNlc3Npb24gYWZ0ZXIgbmF2aWdhdGlvbi4iKTsKLSAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hUZXN0KTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOwotICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaFRlc3QpOwotICAgICAgICB9Ci0gICAgfQotCi08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397913</attachid>
            <date>2020-04-28 17:39:42 -0700</date>
            <delta_ts>2020-04-29 09:17:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211146-20200428173941.patch</filename>
            <type>text/plain</type>
            <size>52256</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3NWUyYWRjY2ZlNWFlMjdh
ZTM3MGFiOGRlZWQ2ZDJkMzI3OGU4ZDkuLmNlMWQxNGU5MDI2MmY0NzMyNzY0NzhlMjM4Zjc3Mjg5
N2UwZGQ2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDQtMjggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgbGF5
b3V0IHRlc3RzIGFmdGVyIHVwZGF0ZXMgdG8gSW4tQXBwIEJyb3dzZXIgUHJpdmFjeQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMTQ2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MjUyNDEyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvbm9uLWFwcC1ib3VuZC1k
b21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLmh0bWwKKworICAgICAgICBSZW1v
dmVzIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkLCB3aGljaCBpcyBubyBsb25nZXIgbmVl
ZGVkIGJ5CisgICAgICAgIGxheW91dCB0ZXN0cy4gU2V0dGluZyB0aGlzIGluIFRlc3RPcHRpb25z
IGlzIGVub3VnaC4KKyAgICAgICAgZ2V0V2ViVmlld0NhdGVnb3J5IGlzIG5vdCBuZWVkZWQgYmVj
YXVzZSB0aGlzIHBhdGNoIGRlbGV0ZXMgdGhlIG9ubHkgdGVzdAorICAgICAgICB3aGljaCB1c2Vz
IGl0LiBMYXN0bHksIGFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gY2xlYXIgYXBwLWJvdW5kIHNlc3Np
b25zCisgICAgICAgIG5vdyB0aGF0IG11bHRpcGxlIHRlc3RzIGFyZSBjaGVja2luZyBmb3IgdGhl
bS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyQXBwQm91bmRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpzZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFwcEJvdW5kU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNsZWFyQXBwQm91bmRTZXNzaW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKToKKyAgICAg
ICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfZ2V0V2ViVmlld0NhdGVnb3J5Rm9yOmNvbXBs
ZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjbGVhckFwcEJvdW5kU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oOgorCiAyMDIwLTA0LTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNYWNdIEFkb3B0IGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhE
UlZpZGVvQ2hhbmdlZCBub3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjRjODFmNjcxNDQ5MTQzMmEyNmZkMGE3NzI5
ZDNkZmY3OWE5MDRiNy4uMzUyYzVlMDQwZjc1YWY0Yjg1MzY5ZjcwOWU2ZTM1ZjcxNzJhODdmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTI2OTYsMTAgKzI2OTYsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzQXBwQm91bmRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmQKICAgICBjb21w
bGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJbkFw
cEJyb3dzZXJQcml2YWN5RW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZW5h
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIG5ldHdvcmtTZXNzaW9uLT5zZXRJbkFwcEJyb3dzZXJQcml2YWN5
RW5hYmxlZChlbmFibGUpOworICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJBcHBCb3VuZFNl
c3Npb24oKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkYTZhZDdhODc4YTdhOTkxYjA1YWI3MzhlM2I5MDdk
ZDk5MGJmODlhLi5hZWI3OGY5NDA1YjQ2NmVhNjUxNWY4ZjQ3YTU3NmViZDg3YmY1NDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNTAs
NyArMzUwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb29raWVBY2NlcHRQb2xpY3lDaGFuZ2Vk
KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgIHZvaWQgaGFzQXBwQm91bmRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBj
b25zdDsKLSAgICB2b2lkIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKFBBTDo6U2Vzc2lv
bklELCBib29sIGVuYWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IGNsZWFyQXBwQm91bmRTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShQQUw6OlNlc3Np
b25JRCwgSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNWVhYmEzN2FlMGJiOTIzNTY1ZDAwODEx
Yzk2NGQ1Mzc4OTY2N2UxMS4uMDIzNjZhZmU3NTI1ZGM0NDFlYTc1ZDJjZTkzNTlkOWE1NzMyYzQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNyArMTcyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIAogICAgIEhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FwcEJvdW5kU2Vzc2lvbikgQXN5bmMK
LSAgICBTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgQ2xlYXJBcHBCb3VuZFNlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIERpc2FibGVTZXJ2aWNlV29ya2Vy
RW50aXRsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCmluZGV4IDVjMjlkZjBmOTJkZTUyNzZhYzA1M2UwOGQ1ODdlMDFlY2Q0NzNlOTkuLmQ4
ZDNlY2JhZDhlNjg4NTA2YTg4NTY0MDg5MTg0OGEyYmEwNmU0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5BcHBCcm93
c2VyUHJpdmFjeUVuYWJsZWQoYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQXBwQm91
bmRTZXNzaW9uKCkgeyB9CiAgICAgdm9pZCBzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb24mJik7CiAgICAgdm9pZCBoYW5kbGVBZENsaWNrQXR0cmlidXRp
b25Db252ZXJzaW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbiYmLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVk
aXJlY3RSZXF1ZXN0KTsKICAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggMDc5N2JhMzhl
Yzk5Y2M3MjQ3NDg1YWRiMzBlMGFhNWYzNjdlNzljYy4uYWU0NTAxYTFlYmRmMDQzN2FiNzRkYzkw
ZTFhYjM3MWI3NzNiOThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gISFtX2FwcEJvdW5kU2Vzc2lvbjsgfQogCiAgICAgU2Vzc2lvbldyYXBwZXImIHNlc3Npb25X
cmFwcGVyRm9yVGFzayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgT3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4+KTsKLSAgICB2b2lkIHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgb3ZlcnJpZGUgeyBtX2lzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQgPSBlbmFibGVkOyB9
CisgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNJ
bkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbkFwcEJyb3dz
ZXJQcml2YWN5RW5hYmxlZDsgfQogICAgIGJvb2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRo
ZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRo
ZW50aWNhdGlvbjsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDYxZGRlMDc1NDFlMGIz
MzU5Y2FkYTNlOTAxZTNlMDY0NDM1YTMxMmIuLjNlOWJiMjFlODlmYTM1ZWE2YjAwYWM3MDBmODZi
YzRjMGVjOTVjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEzNjUsNiArMTM2NSwxMSBAQCB2
b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNsZWFySXNvbGF0ZWRTZXNzaW9ucygpCiAgICAgbV9p
c29sYXRlZFNlc3Npb25zLmNsZWFyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6
Y2xlYXJBcHBCb3VuZFNlc3Npb24oKQoreworICAgIG1fYXBwQm91bmRTZXNzaW9uID0gbnVsbHB0
cjsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkK
IHsKICAgICBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5j
cHAKaW5kZXggZjMwMjkwYzBmYjM3Mzg1ZTEwNDA5MjU1ZTk2YTNlNjBhNzgwMTE5Yy4uZjBmNWEx
NDFhYjdmZWVjZDJiZTY4MmJiODg4NWZlNjI4NjUyNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC03
NTUsOSArNzU1LDkgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFF1b3RhKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnQKICAgICB9KTsKIH0KIAotdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZWQsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRT
ZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0SW5BcHBC
cm93c2VyUHJpdmFjeUVuYWJsZWQoZW5hYmxlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVy
XSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+Y2xlYXJBcHBCb3VuZFNlc3Np
b24oW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCAwMTg0NGZkMGYxZjhmZjZh
NWE2ODljYzY0MTgxMDEwYTYxM2E1OWZjLi5mOWEzODIzN2ZmMzg3OWY3MGMyMjkxODRiNWU2ZTI3
ZjY5NGQ0YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtMTY4LDggKzE2OCw4IEBAIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhX
S1dlYnNpdGVECiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFF1b3RhQ2Fs
bGJhY2spKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVSZXNldFF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0UXVvdGFDYWxsYmFjayBjYWxsYmFj
ayk7CiAKLXR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclBy
aXZhY3lFbmFibGVkRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZWQsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJBcHBCb3VuZFNlc3Npb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dL
X0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwog
CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CmluZGV4IDczYzk4YTM0NjI1ZDhmNTU1MjQxNDM4NGUzY2U2YjhkYjg0MGU4ZDguLmI3ZGU3NTFh
YjE3N2Q3MmIwNTY4OTMzMzUxYmE5ZWJhN2JlYTdhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNDU2
LDIyICs0NTYsNiBAQCAtICh2b2lkKV9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0ZvcjooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodgogI2VuZGlmCiB9CiAKLS0gKHZv
aWQpX2dldFdlYlZpZXdDYXRlZ29yeUZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoX1dLV2ViVmlld0NhdGVnb3J5IGNhdGVnb3J5KSljb21wbGV0aW9u
SGFuZGxlcgotewotICAgIGlmICghd2ViVmlldykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihfV0tXZWJWaWV3Q2F0ZWdvcnlXZWJCcm93c2VyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGF1dG8gd2ViUGFnZVByb3h5ID0gW3dlYlZpZXcgX3BhZ2VdOwotICAgIGlmICghd2Vi
UGFnZVByb3h5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKF9XS1dlYlZpZXdDYXRlZ29y
eVdlYkJyb3dzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29tcGxldGlvbkhh
bmRsZXIodG9XS1dlYlZpZXdDYXRlZ29yeSh3ZWJQYWdlUHJveHktPmNvbmZpZ3VyYXRpb24oKS53
ZWJWaWV3Q2F0ZWdvcnkoKSkpOwotfQotCiAtICh2b2lkKV9zY2hlZHVsZUNvb2tpZUJsb2NraW5n
VXBkYXRlOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2
MDk1OWU0NzM1MWIwYWVkYTJhMjI3NzA0N2NmOTg4ZWQ1OTk2MzQ2Li5mNWRiNTdhM2I3N2IxYWQw
NDJiZWM1MGI4MjMxMjUwOTQ1YmIwOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAg
LTYzLDcgKzYzLDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVE
YXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIC0gKHZvaWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX2xvYWRlZFRoaXJkUGFy
dHlEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfY2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWluc0ZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
dm9pZClfZ2V0V2ViVmlld0NhdGVnb3J5Rm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShfV0tXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKGJvb2wpX2hhc1Jl
Z2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmOWFkZTc2MmFkYjM4MTRlNDlhZjllNTlkNWY0
ZDFhYTI4YzIxZGZjLi45YTcwMGI2NDVkZDU3ZDBlZTQ3OTE0YWM0MjVmNDQ5YTJhZWEzMzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKQEAgLTE0NzEsMTQgKzE0NzEsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpoYXNBcHBCb3VuZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW8KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpI
YXNBcHBCb3VuZFNlc3Npb24oc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEluQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNh
blNlbmRNZXNzYWdlKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChzZXNzaW9uSUQsIHZh
bHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQXBwQm91bmRTZXNzaW9uKHNlc3Npb25J
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpnZXRBcHBCb3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0ZjgwNTMzM2VjYzcxODExYjUy
YjIzOGRiMThkNmFhZGFkZDJkYTcwLi5lY2RlZDUxZjAyMWUyZWNhMWE1YWE1MmMwNzAzNWNlYzUz
NTc2OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlc291cmNlTG9hZERpZENvbXBsZXRlV2l0aEVycm9yKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IFJlc291cmNlTG9hZEluZm8mJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiYpOwogCiAgICAgdm9pZCBoYXNBcHBCb3VuZFNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgc2V0
SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFw
cEJvdW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDc3MzU2NjgxOGFiODZkZWQzZjU2ODYxM2IyNTc2NWVmMmFmYjUzNTku
LjA3YTE4Nzc2NmQxZTdmNTA4NzI5YzBiNDU0NjBhNTcxODU3MThmYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCkBAIC0yMzgzLDEzICsyMzgzLDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aGFzQXBw
Qm91bmRTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxlCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNl
dEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpj
bGVhckFwcEJvdW5kU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKICAgICBmb3IgKGF1
dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIG5l
dHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgICAg
ICBuZXR3b3JrUHJvY2Vzcy0+c2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQobV9zZXNzaW9u
SUQsIGVuYWJsZWQsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tB
Z2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5j
bGVhckFwcEJvdW5kU2Vzc2lvbihtX3Nlc3Npb25JRCwgW3Byb2Nlc3NQb29sLCBjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCmluZGV4IDVkYTVmYTUxYWUyOTMwOGRmZTk5ZmExNWE0YTg1MGQ2ODkwMjY1
ZjMuLmEyNjU1YmI0ZWRjYzczZTZiMGQyYzkzODQzNGJmMzAwYzYzYThhNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmgKQEAgLTI4NSw3ICsyODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0UXVvdGEoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc0FwcEJvdW5kU2Vzc2lvbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKLSAgICB2b2lkIHNldEluQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGJlZ2luQXBwQm91bmREb21haW5DaGVjayhjb25zdCBV
UkwmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKICAgICB2b2lkIGdldEFwcEJvdW5k
RG9tYWlucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4+Jik+JiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxYzUwNzA5ZTg3YWNiMDg1ZWUxZjVjNjc3NWM5MjVk
ODJjZWEzMjQuLjc2ZjQ3M2NmYTcxNmYwODE2NDBlNGU4M2YwMGMwODJjZmExM2M4NTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MyBAQAorMjAyMC0wNC0yOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KKworICAgICAgICBSZWZhY3RvciBsYXlvdXQgdGVzdHMgYWZ0ZXIgdXBkYXRlcyB0byBJbi1B
cHAgQnJvd3NlciBQcml2YWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTExNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYyNTI0MTI3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdHdv
IHVudXNlZCBmdW5jdGlvbnMgYWZ0ZXIgdXBkYXRpbmcgdGhlIHRlc3QgY2FzZXMuCisgICAgICAg
IHNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkIGlzIG5vIGxvbmdlciBuZWVkZWQsIHNldHRp
bmcgdGhpcworICAgICAgICBpbiBUZXN0T3B0aW9ucyBpcyBlbm91Z2guIGdldFdlYlZpZXdDYXRl
Z29yeSBpcyBub3QgbmVlZGVkIGJlY2F1c2UKKyAgICAgICAgdGhpcyBwYXRjaCBkZWxldGVzIHRo
ZSBvbmx5IHRlc3Qgd2hpY2ggdXNlcyBpdC4KKworICAgICAgICBBZGRzIGEgZnVuY3Rpb24gdG8g
Y2xlYXIgYXBwLWJvdW5kIHNlc3Npb25zIGJldHdlZW4gdGVzdHMgbm93IHRoYXQKKyAgICAgICAg
bXVsdGlwbGUgdGVzdHMgY2hlY2sgZm9yIHRoZW0uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmdldFdlYlZpZXdDYXRlZ29yeSk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5Q2FsbGJh
Y2spOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJbkFwcEJyb3dzZXJQ
cml2YWN5RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxE
aWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
TW92ZSB0aGUgY2FsbCB0byBjbGVhciB0aGUgYnVuZGxlIGlkIHRvIGhhcHBlbiBpbgorICAgICAg
ICByZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzIHRvIG1ha2Ugc3VyZSB0aGUgbmV4dCB0ZXN0
IGNhbiBzZXQgdGhlCisgICAgICAgIHZhbHVlIGlmIG5lZWRlZCAob3RoZXJ3aXNlIHJlc3VsdHMg
aW4gYSBjYWxsIHRvIGV4aXQoMSkpLgorCisgICAgICAgIChXVFI6OnVwZGF0ZVRlc3RPcHRpb25z
RnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBC
b3VuZFNlc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2V0V2ViVmlld0Nh
dGVnb3J5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEluQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpk
aWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
aGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKyAgICAgICAgQXBwLWJvdW5kIFdl
YlZpZXdzIG5vdyByZXF1aXJlIGEgc3BlY2lhbCBjb25maWd1cmF0aW9uIGFyZ3VtZW50LiBUaGlz
CisgICAgICAgIHBhdGNoIGFkZHMgbG9naWMgdG8gZW5hYmxlIHRoYXQgdXNpbmcgYSBuZXcgVGVz
dE9wdGlvbi4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdldFdlYlZpZXdDYXRlZ29y
eSk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjggIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbTGludXhdIFJlcGxhY2UgLS1nZW9tZXRyeSB3aXRoIC0t
ZnVsbHNjcmVlbiB3aGVuIHVzaW5nIE1pbmlCcm93c2VyIGZvciBXZWJEcml2ZXIgdGVzdHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDI3ZmRjOTJmMWM1MTcxZjJkNDE0MGRhZTMzOTAx
MDZhZjA2MDM1YzkuLjVjYmU5NTE2MmVkN2NkNzQ3Mjc0MzYwMGZjZDNjMmU0YTlhZTgzOTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzU4LDkgKzM1OCw2IEBAIGludGVyZmFjZSBU
ZXN0UnVubmVyIHsKICAgICAvLyBTdG9yYWdlIEFjY2VzcyBBUEkKICAgICB2b2lkIGdldEFsbFN0
b3JhZ2VBY2Nlc3NFbnRyaWVzKG9iamVjdCBjYWxsYmFjayk7CiAKLSAgICB2b2lkIGdldFdlYlZp
ZXdDYXRlZ29yeShvYmplY3QgY2FsbGJhY2spOwotICAgIHZvaWQgc2V0SW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQoYm9vbGVhbiB2YWx1ZSwgb2JqZWN0IGNhbGxiYWNrKTsKLQogICAgIC8vIE9w
ZW4gcGFuZWwKICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzKG9iamVjdCBmaWxlc0FycmF5KTsK
ICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzTWVkaWFJY29uKG9iamVjdCBtZWRpYUljb24pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAppbmRleCAxNjY3NTgwMjEwMTJmMGU0OGFiZTQzNjgzMTE0NzY1ODViZTY3
MDc4Li4xMGU2ZWUzZjcxZjMyMTZmYjQ3NjFlZWVlYzY1NzAwYjNmMmMwYzBmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtMzQ2LDExICszNDYsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbQogICAg
ICAgICBtX3Rlc3RSdW5uZXItPnN0YXRpc3RpY3NDYWxsRGlkU2V0U2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llc0NhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCi0gICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsRGlkU2V0
SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQiKSkgewotICAgICAgICBtX3Rlc3RSdW5uZXItPmNh
bGxEaWRTZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZENhbGxiYWNrKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIkNhbGxEaWRTZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSIpKSB7
CiAgICAgICAgIG1fdGVzdFJ1bm5lci0+c3RhdGlzdGljc0NhbGxEaWRTZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUNhbGxiYWNrKCk7CkBAIC00NDIsMTQgKzQzNyw2IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBtCiAgICAgICAgIG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlY2VpdmVM
b2FkZWRUaGlyZFBhcnR5RG9tYWluc0NhbGxiYWNrKFdURk1vdmUoZG9tYWlucykpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiQ2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnkiKSkgewotICAg
ICAgICBBU1NFUlQobWVzc2FnZUJvZHkpOwotICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLU3RyaW5nR2V0VHlwZUlEKCkpOwotCi0gICAgICAgIG1fdGVzdFJ1bm5l
ci0+Y2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnlDYWxsYmFjayh0b1dURlN0cmluZyhzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIpKSB7CiAgICAgICAg
IG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNr
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAppbmRleCBjY2YzYTQ4ODY1NjM2NWE3YmM3Nzg5YjRhNWFmYjYwNmUzOTBlNmRl
Li41M2QxMWFkNzMzZTkxZDhjMTE4NDRhMTAyZjI3NjM1ZDJjZjIwMGEyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTc2Myw4ICs3NjMsNiBAQCBlbnVtIHsKICAgICBUZXh0RmllbGREaWRCZWdpbkVkaXRpbmdDYWxs
YmFja0lELAogICAgIFRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxsYmFja0lELAogICAgIEN1c3Rv
bU1lbnVBY3Rpb25DYWxsYmFja0lELAotICAgIEdldFdlYlZpZXdDYXRlZ29yeUNhbGxiYWNrSUQs
Ci0gICAgRGlkU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWRDYWxsYmFja0lELAogICAgIEZp
cnN0VUlTY3JpcHRDYWxsYmFja0lEID0gMTAwCiB9OwogCkBAIC0yOTY3LDI2ICsyOTY1LDYgQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRPZmZzY3JlZW5DYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5LmdldCgpLCBl
bmFibGVkKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpnZXRXZWJWaWV3Q2F0ZWdvcnkoSlNWYWx1
ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhHZXRXZWJWaWV3
Q2F0ZWdvcnlDYWxsYmFja0lELCBjYWxsYmFjayk7Ci0gICAgCi0gICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiR2V0V2ViVmlld0NhdGVnb3J5IikpOwotICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVs
bHB0cik7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdv
cnlDYWxsYmFjayhTdHJpbmcgY2F0ZWdvcnkpCi17Ci0gICAgV0tCdW5kbGVGcmFtZVJlZiBtYWlu
RnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpKTsKLSAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxl
RnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwotCi0gICAgYXV0byByZXN1bHRT
dHJpbmcgPSBtYWtlU3RyaW5nKCJcIiIsIGNhdGVnb3J5LCAiXCIiKTsKLSAgICAKLSAgICBKU1Zh
bHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgYWRvcHQo
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzdWx0U3RyaW5nLnV0ZjgoKS5kYXRhKCkp
KS5nZXQoKSk7Ci0KLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEdldFdlYlZpZXdDYXRlZ29y
eUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOwotfQotCiBib29sIFRlc3RSdW5uZXI6Omhhc0FwcEJv
dW5kU2Vzc2lvbigpCiB7CiAgICAgYXV0byBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhc0FwcEJvdW5kU2Vzc2lvbiIpKTsKQEAgLTI5OTcsMTcg
KzI5NzUsNCBAQCBib29sIFRlc3RSdW5uZXI6Omhhc0FwcEJvdW5kU2Vzc2lvbigpCiAgICAgcmV0
dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihy
ZXR1cm5EYXRhKSkuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEluQXBwQnJvd3Nl
clByaXZhY3lFbmFibGVkKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soRGlkU2V0SW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWRDYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQiKSk7Ci0gICAgV0tSZXRhaW5Q
dHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZh
bHVlKSk7Ci0gICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Ci19Ci0K
LXZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkQ2Fs
bGJhY2soKQotewotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soRGlkU2V0SW5BcHBCcm93c2Vy
UHJpdmFjeUVuYWJsZWRDYWxsYmFja0lEKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmlu
ZGV4IGU3YjI1MjhhYjk5ZmZhZjBlNGFhMzZiOWU3MjFmOWU5YTBjNjYwNGYuLmY1YjYzNmUwMTg5
Y2E3MjQ5ZjQ2MzY1ZDRkYjY2ZmFjY2M0ZmFhYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NjksMTAgKzQ2OSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKEpTVmFsdWVSZWYg
Y2FsbGJhY2spOwogICAgIHZvaWQgY2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50cmll
c0NhbGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKTsKIAotICAgIAotICAgIHZvaWQgZ2V0
V2ViVmlld0NhdGVnb3J5KEpTVmFsdWVSZWYgY2FsbGJhY2spOwotICAgIHZvaWQgY2FsbERpZFJl
Y2VpdmVXZWJWaWV3Q2F0ZWdvcnlDYWxsYmFjayhTdHJpbmcpOwotCiAgICAgLy8gT3BlbiBwYW5l
bAogICAgIHZvaWQgc2V0T3BlblBhbmVsRmlsZXMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBzZXRP
cGVuUGFuZWxGaWxlc01lZGlhSWNvbihKU1ZhbHVlUmVmKTsKQEAgLTUwNSw4ICs1MDEsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24odW5zaWduZWQpOwogICAg
IGJvb2wgaXNNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlckVuYWJsZWQoKTsKICAgICBib29s
IGhhc0FwcEJvdW5kU2Vzc2lvbigpOwotICAgIHZvaWQgc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQoYm9vbCwgSlNWYWx1ZVJlZik7Ci0gICAgdm9pZCBjYWxsRGlkU2V0SW5BcHBCcm93c2Vy
UHJpdmFjeUVuYWJsZWRDYWxsYmFjaygpOwogCiAgICAgc2l6ZV90IHVzZXJTY3JpcHRJbmplY3Rl
ZENvdW50KCkgY29uc3Q7CiAgICAgdm9pZCBpbmplY3RVc2VyU2NyaXB0KEpTU3RyaW5nUmVmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYWE3MjNlZDhm
NDk2MWEyMDg0NmYxM2FhYzg1MTBiZWExZDNmZWZlYy4uODY3ZjJjMWQ5Zjc4YTMwNDQ3MjIyMGQ5
ZTgwYjJjZjI0ODQyNTVjMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTY0NSw3ICs2NDUsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJW
aWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIGV4aXQo
MSk7CiAgICAgfQogICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVz
dGluZ092ZXJyaWRlKCk7CiAgICAgICAgIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihv
cHRpb25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CiAgICAgICAgIG1faGFzU2V0QXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdHJ1ZTsKICAgICB9CkBAIC0xMTM2LDcgKzExMzUs
NyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBSZQogCiAgICAgc3RhdGlzdGljc1Jlc2V0VG9Db25z
aXN0ZW50U3RhdGUoKTsKICAgICBjbGVhckxvYWRlZFRoaXJkUGFydHlEb21haW5zKCk7Ci0KKyAg
ICBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7
CiAKICAgICBtX2RpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlv
biA9IGZhbHNlOwpAQCAtMTE1MCw4ICsxMTQ5LDEyIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJl
CiAgICAgaWYgKCFtX2RvbmVSZXNldHRpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
LSAgICBpZiAocmVzZXRTdGFnZSA9PSBSZXNldFN0YWdlOjpBZnRlclRlc3QpCisgICAgaWYgKHJl
c2V0U3RhZ2UgPT0gUmVzZXRTdGFnZTo6QWZ0ZXJUZXN0KSB7CiAgICAgICAgIHVwZGF0ZUxpdmVE
b2N1bWVudHNBZnRlclRlc3QoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgY2xlYXJB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyNlbmRpZgorICAg
IH0KIAogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7CiB9CkBAIC0xNTI3LDcgKzE1MzAsOCBA
QCBzdGF0aWMgdm9pZCB1cGRhdGVUZXN0T3B0aW9uc0Zyb21UZXN0SGVhZGVyKFRlc3RPcHRpb25z
JiB0ZXN0T3B0aW9ucywgY29uc3Qgc3RkOgogICAgICAgICAgICAgdGVzdE9wdGlvbnMuZW5hYmxl
SW5BcHBCcm93c2VyUHJpdmFjeSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMIikK
ICAgICAgICAgICAgIHRlc3RPcHRpb25zLnN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCA9IHBh
cnNlU3RyaW5nVGVzdEhlYWRlclZhbHVlQXNVUkwodmFsdWUpOwotCisgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiaXNBcHBCb3VuZFdlYlZpZXciKQorICAgICAgICAgICAgdGVzdE9wdGlvbnMuaXNB
cHBCb3VuZFdlYlZpZXcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBwYWlyU3RhcnQgPSBwYWlyRW5kICsgMTsKICAgICB9CiB9CkBAIC0zMTkxLDEwICszMTk1
LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWlucygp
CiAgICAgV0tQYWdlQ2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWlucyhtX21haW5XZWJWaWV3LT5w
YWdlKCkpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpnZXRXZWJWaWV3Q2F0ZWdvcnkoKQot
ewotfQotCiAjZW5kaWYKIAogc3RydWN0IENsZWFyU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnND
YWxsYmFja0NvbnRleHQgewpAQCAtMzg1MCwxMyArMzg1MCwxMSBAQCBib29sIFRlc3RDb250cm9s
bGVyOjpoYXNBcHBCb3VuZFNlc3Npb24oKQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0K
IAotCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChi
b29sIHZhbHVlKQordm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBCb3VuZFNlc3Npb24oKQog
ewogICAgIEluQXBwQnJvd3NlclByaXZhY3lDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7
Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoVGVz
dENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUsICZjb250ZXh0LCBpbkFwcEJy
b3dzZXJQcml2YWN5Vm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVD
bGVhckFwcEJvdW5kU2Vzc2lvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCAm
Y29udGV4dCwgaW5BcHBCcm93c2VyUHJpdmFjeVZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVu
VW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwotICAgIG1fY3VycmVudEludm9jYXRpb24t
PmRpZFNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKCk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTUyNzg3YWE3MzQ5MzZhMTgyNjhlMmNmYjVhMTFjNGQ3
Yzg5ZjA5ZC4uMzM3ZWY2ZTNiNDMwYmUxZDc3NzIyZWFiN2ZlYThjYjIxYWVlZDFjMSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjcxLDggKzI3MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCk7CiAgICAgdm9pZCBs
b2FkZWRUaGlyZFBhcnR5RG9tYWlucygpOwogICAgIHZvaWQgY2xlYXJMb2FkZWRUaGlyZFBhcnR5
RG9tYWlucygpOwotICAgIHZvaWQgZ2V0V2ViVmlld0NhdGVnb3J5KCk7Ci0gICAgdm9pZCBzZXRJ
bkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChib29sKTsKKyAgICB2b2lkIGNsZWFyQXBwQm91bmRT
ZXNzaW9uKCk7CiAgICAgdm9pZCByZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoKTsKIAogICAg
IFdLQXJyYXlSZWYgb3BlblBhbmVsRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBtX29wZW5QYW5l
bEZpbGVVUkxzLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IDcxOWM1MmNjYjBlZjA2MjM0NTMyMDkyYTk1NDMwZTAzZTUzNzgzNGUuLjdlYTdk
MjAwYWE0NzBjMTEwMmE4MzA5MGM3OGU0MmRmYjA5NTQ0MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC03NjAsMTMgKzc2MCw2IEBAIHZvaWQgVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVm
IG1lc3NhZ2VOYW1lCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0
aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1
ZSksIGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldEluQXBwQnJvd3NlclByaXZh
Y3lFbmFibGVkIikpIHsKLSAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9
PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoV0tCb29sZWFu
R2V0VmFsdWUodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNzU2NyaXB0
IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwpAQCAtODA3LDExICs4MDAs
NiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuc2V0T3BlblBhbmVsRmlsZVVSTHMoc3RhdGljX2Nhc3Q8V0tBcnJheVJlZj4obWVz
c2FnZUJvZHkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkdldFdlYlZpZXdDYXRlZ29yeSIp
KSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5nZXRXZWJWaWV3Q2F0ZWdv
cnkoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRP
cGVuUGFuZWxGaWxlVVJMc01lZGlhSWNvbiIpKSB7CkBAIC0xOTI5LDEyICsxOTE3LDYgQEAgdm9p
ZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcygpCiAg
ICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRy
KTsKIH0KIAotdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQoKQotewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxEaWRTZXRJbkFwcEJyb3dz
ZXJQcml2YWN5RW5hYmxlZCIpKTsKLSAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5k
bGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIG51bGxwdHIpOwotfQotCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRT
ZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSgpCiB7CiAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiQ2FsbERpZFNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIikpOwpA
QCAtMjAyMywxNCArMjAwNSw2IEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVMb2Fk
ZWRUaGlyZFBhcnR5RG9tYWlucyhWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpCiAgICAgV0tQYWdl
UG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5t
YWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQo
KSk7CiB9CiAKLXZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnko
U3RyaW5nJiYgd2ViVmlld0NhdGVnb3J5KQotewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNh
bGxEaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5IikpOwotICAgIAotICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcod2ViVmlld0NhdGVnb3J5LnV0ZjgoKS5kYXRhKCkpKTsKLSAgICBXS1BhZ2VQb3N0TWVz
c2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJW
aWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKLX0K
LQogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCkK
IHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRl
bnRpYWxzQ2FsbGJhY2siKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgK
aW5kZXggYzdhOTU2NDM0NDYzMjk0YjE1NWM1YzA1MDAyNGRlZjQ3ZmNiNzFmNS4uMWU1NzdkYWE3
ZDkwODVkNDA2ZGFhMTczNGNlMDA1YzQyOGQ4M2QzMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uaApAQCAtODgsOCArODgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRT
ZXRIYXNIYWRVc2VySW50ZXJhY3Rpb24oKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxTdG9yYWdl
QWNjZXNzRW50cmllcyhWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZUxvYWRlZFRoaXJkUGFydHlEb21haW5zKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlld0NhdGVnb3J5KFN0cmluZyYmKTsKLSAgICB2b2lkIGRp
ZFNldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKCk7CiAKICAgICB2b2lkIGRpZFJlbW92ZUFs
bFNlc3Npb25DcmVkZW50aWFscygpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oCmluZGV4IGEyYWYxMmYyMzk3OWM5MjQ2NzdhZmU0NzllYjE2NDAzNjZjZmRlMzkuLjNjOGU0
NDBmZWVkMWUzNzM3MjdkY2JjYTY4MjFiYzk0NjY3M2NhNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewog
ICAgIGJvb2wgZW5hYmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICBi
b29sIGFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5IHsgZmFsc2UgfTsKKyAgICBib29sIGlzQXBwQm91bmRXZWJW
aWV3IHsgZmFsc2UgfTsKIAogICAgIGRvdWJsZSBjb250ZW50SW5zZXRUb3AgeyAwIH07CiAKQEAg
LTE3Miw3ICsxNzMsOCBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgICAgICAgICAgfHwgZW5h
YmxlQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzICE9IG9wdGlvbnMuZW5hYmxlQ2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzCiAgICAgICAgICAgICB8fCBhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
ICE9IG9wdGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcwogICAgICAgICAgICAgfHwg
ZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeSAhPSBvcHRpb25zLmVuYWJsZUluQXBwQnJvd3NlclBy
aXZhY3kKLSAgICAgICAgICAgIHx8IHN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCAhPSBvcHRp
b25zLnN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCkKKyAgICAgICAgICAgIHx8IHN0YW5kYWxv
bmVXZWJBcHBsaWNhdGlvblVSTCAhPSBvcHRpb25zLnN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVS
TAorICAgICAgICAgICAgfHwgaXNBcHBCb3VuZFdlYlZpZXcgIT0gb3B0aW9ucy5pc0FwcEJvdW5k
V2ViVmlldykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAoIWNvbnRl
eHRPcHRpb25zLmhhc1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMob3B0aW9ucy5jb250ZXh0T3B0
aW9ucykpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250
cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KaW5kZXggMWNlM2RkMzk3Zjg1YmUwZDJiNDA5MjU3M2ViY2EyYWVlZjk2OTUz
NC4uZTE3NTdlNzllOTFhNmIwNGE5MTA1MTIwNzQwOTM1NjRlNWQxNThhZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAt
MTQ1LDYgKzE0NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmll
dyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0CiAgICAgICAgIFtjb3BpZWRD
b25maWd1cmF0aW9uIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzOllFU107CiAgICAgaWYg
KG9wdGlvbnMudXNlQ2hhcmFjdGVyU2VsZWN0aW9uR3JhbnVsYXJpdHkpCiAgICAgICAgIFtjb3Bp
ZWRDb25maWd1cmF0aW9uIHNldFNlbGVjdGlvbkdyYW51bGFyaXR5OldLU2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXJdOworICAgIGlmIChvcHRpb25zLmlzQXBwQm91bmRXZWJWaWV3KQorICAg
ICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRMaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zOllFU107CiAjZWxzZQogICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRTZXJ2aWNl
Q29udHJvbHNFbmFibGVkOm9wdGlvbnMuZW5hYmxlU2VydmljZUNvbnRyb2xzXTsKICNlbmRpZgpA
QCAtMzcyLDMyICszNzQsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhckxvYWRlZFRoaXJk
UGFydHlEb21haW5zKCkKICAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURh
dGFTdG9yZSBfY2xlYXJMb2FkZWRUaGlyZFBhcnR5RG9tYWluc0ZvcjpwYXJlbnRWaWV3LT5wbGF0
Zm9ybVZpZXcoKV07CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmdldFdlYlZpZXdDYXRlZ29y
eSgpCi17Ci0gICAgYXV0byogcGFyZW50VmlldyA9IG1haW5XZWJWaWV3KCk7Ci0gICAgaWYgKCFw
YXJlbnRWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3Vy
YXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfZ2V0V2ViVmlld0NhdGVnb3J5Rm9yOnBhcmVudFZpZXct
PnBsYXRmb3JtVmlldygpIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLV2ViVmlld0NhdGVnb3J5IHdl
YlZpZXdDYXRlZ29yeSkgewotICAgICAgICBTdHJpbmcgY2F0ZWdvcnk7Ci0gICAgICAgIHN3aXRj
aCAod2ViVmlld0NhdGVnb3J5KSB7Ci0gICAgICAgIGNhc2UgX1dLV2ViVmlld0NhdGVnb3J5QXBw
Qm91bmREb21haW46Ci0gICAgICAgICAgICBjYXRlZ29yeSA9ICJBcHBCb3VuZERvbWFpbiI7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBfV0tXZWJWaWV3Q2F0ZWdvcnlIeWJyaWRB
cHA6Ci0gICAgICAgICAgICBjYXRlZ29yeSA9ICJIeWJyaWRBcHAiOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgX1dLV2ViVmlld0NhdGVnb3J5SW5BcHBCcm93c2VyOgotICAgICAg
ICAgICAgY2F0ZWdvcnkgPSAiSW5BcHBCcm93c2VyIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIF9XS1dlYlZpZXdDYXRlZ29yeVdlYkJyb3dzZXI6Ci0gICAgICAgICAgICBjYXRl
Z29yeSA9ICJXZWJCcm93c2VyIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFJlY2VpdmVXZWJWaWV3Q2F0ZWdvcnkoV1RGTW92
ZShjYXRlZ29yeSkpOwotICAgIH1dOwotfQotCiB2b2lkIFRlc3RDb250cm9sbGVyOjppbmplY3RV
c2VyU2NyaXB0KFdLU3RyaW5nUmVmIHNjcmlwdCkKIHsKICAgICBhdXRvIHVzZXJTY3JpcHQgPSBh
ZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTogdG9XVEZTdHJpbmco
c2NyaXB0KSBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50
U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT10pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4NDliY2FiMjhlNGE3OThkMDhk
NjUwOTA5MmJjYjQzMDg3NjY4OTguLjVjM2QxZmM2ODZlZTM4ZTY0MWRmZWJiMTEwZDVjNWQwZTJm
MzVkZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMC0wNC0yOCAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBsYXlvdXQgdGVz
dHMgYWZ0ZXIgdXBkYXRlcyB0byBJbi1BcHAgQnJvd3NlciBQcml2YWN5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExNDYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzYyNTI0MTI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZXMgdGhlIHRlc3QgY2FzZXMgaW4gMiB3YXlzOgorICAgICAgICAx
LiBEZWxldGVzIGFwcC1ib3VuZC1kb21haW4uaHRtbCwgd2hpY2ggaXMgZnVsbHkgYW5kIHByb3Bl
cmx5IHRlc3RlZAorICAgICAgICB1c2luZyBBUEkgdGVzdHMgYW5kIGlzIHVubmVjZXNzYXJ5IGhl
cmUuCisgICAgICAgIDIuIFNwbGl0cyBzd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFw
cC1ib3VuZC1kb21haW4uaHRtbCBpbnRvCisgICAgICAgIHR3byBzZXBhcmF0ZSB0ZXN0cyBub3cg
dGhhdCBuYXZpZ2F0aW9uIGJldHdlZW4gYXBwLWJvdW5kIGFuZCAKKyAgICAgICAgbm9uLWFwcC1i
b3VuZCBXZWJWaWV3cyBpcyBub3QgYWxsb3dlZC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5k
LWRvbWFpbi1nZXRzLWFwcC1ib3VuZC1zZXNzaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21haW4t
Z2V0cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9ub24tYXBwLWJvdW5k
LWRvbWFpbi1kb2VzLW5vdC1nZXQtYXBwLWJvdW5kLXNlc3Npb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvbm9uLWFwcC1i
b3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0Y2gtc2Vzc2lv
bi1vbi1uYXZpZ2F0aW9uLXRvLWFwcC1ib3VuZC1kb21haW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFwcC1ib3VuZC1kb21haW4uaHRtbDogUmVtb3ZlZC4KKwog
MjAyMC0wNC0yOCAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBOdWxscHRyIGNyYXNoIGluIEVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZCB2aWEgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQt
ZG9tYWluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTUyM2E2
OTFiOGNlODEyOTM1Yzc4MzBjZWQxZmUzZThiNmViYzk0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHRoYXQgYW4gQXBwLUJvdW5kIERvbWFpbiBnZXRzIGNs
YXNzaWZpZWQgYXMgc28KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgU3Vj
Y2VzcywgZG9tYWluIGNsYXNzaWZpZWQgYXMgSW4tQXBwIEJyb3dzZXIuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQt
ZG9tYWluLWdldHMtYXBwLWJvdW5kLXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1h
cHAtYm91bmQtc2Vzc2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNlNDFiZTU2Y2I0YjNk
Njg3Njg5YjJiM2U5OTI1YTcwYjRlNjY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLWdldHMt
YXBwLWJvdW5kLXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRo
YXQgYW4gYXBwLWJvdW5kIGRvbWFpbiBoYXMgYW4gYXBwLWJvdW5kIHNlc3Npb24uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE9yaWdpbiBoYXMgYXBwLWJvdW5kIHNlc3Np
b24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5
L2FwcC1ib3VuZC1kb21haW4tZ2V0cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1kb21haW4tZ2V0
cy1hcHAtYm91bmQtc2Vzc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWI2ZWEzYjk3MzU1NDRlZmMz
MmU4NWIyNDk2YjhiNTQ0ZGIzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi1nZXRzLWFwcC1i
b3VuZC1zZXNzaW9uLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5PXRydWUgYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyPWluQXBwQnJvd3NlclByaXZhY3lUZXN0SWRlbnRpZmllciBp
c0FwcEJvdW5kV2ViVmlldz10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBhbiBhcHAtYm91bmQgZG9tYWluIGhhcyBhbiBhcHAtYm91bmQgc2Vzc2lvbi4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICghdGVzdFJ1bm5lci5oYXNBcHBCb3VuZFNlc3Npb24oKSkgeworICAgICAgICAgICAgdGVz
dEZhaWxlZCgiT3JpZ2luIGRpZCBub3Qgc3RhcnQgd2l0aCBhcHAtYm91bmQgc2Vzc2lvbi4iKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBhcHAtYm91bmQgc2Vzc2lvbi4iKTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJy
b3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9tYWluLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWRvbWFpbi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTlkNWFiYjFlNzVmNjFkZDdkNTNlYjFmYjU0MTcyNmU4
YTQxMDIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtZG9t
YWluLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3k9dHJ1ZSBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI9aW5BcHBCcm93c2VyUHJpdmFjeVRlc3RJZGVudGlm
aWVyIF0gLS0+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgIGRl
c2NyaXB0aW9uKCdUZXN0cyB0aGF0IGFuIEFwcC1Cb3VuZCBEb21haW4gZ2V0cyBjbGFzc2lmaWVk
IGFzIHNvJyk7Ci0gICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBmdW5jdGlvbiBhc2tGb3JXZWJWaWV3Q2F0
ZWdvcnkoKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmdldFdlYlZpZXdDYXRlZ29yeShmdW5j
dGlvbiAoY2F0ZWdvcnkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgIT0gIkluQXBw
QnJvd3NlciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICBhc2tGb3JXZWJWaWV3Q2F0ZWdvcnko
KTsKLSAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3MsIGRvbWFpbiBjbGFzc2lmaWVkIGFzIElu
LUFwcCBCcm93c2VyLiIpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBkZXN0aW5hdGlv
bk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwotICAgICAgICBmdW5jdGlvbiBuYXZp
Z2F0ZVRvTm9uQXBwQm91bmREb21haW4oKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBw
LWJvdW5kLWRvbWFpbi5odG1sI3N0ZXAyIjsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT0gIiNzdGVwMiIpIHsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuZ2V0V2ViVmlld0NhdGVnb3J5KGZ1bmN0aW9uIChjYXRlZ29yeSkgewotICAgICAg
ICAgICAgICAgIGlmIChjYXRlZ29yeSAhPSAiQXBwQm91bmREb21haW4iKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkZhaWx1cmUsIHN0YXJ0aW5nIGNhdGVnb3J5IG5vdCBBcHBC
b3VuZERvbWFpbiIpOwotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmF2aWdhdGVUb05vbkFwcEJv
dW5kRG9tYWluKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGFza0ZvcldlYlZpZXdDYXRlZ29yeSgpOwotICAgICAgICB9Ci0gICAgCi0gICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJGYWlsdXJlLCBk
b21haW4gbm90IGNsYXNzaWZpZWQgYXMgSW4tQXBwIEJyb3dzZXIuIik7Ci0gICAgICAgICAgICBj
b25zb2xlLmxvZygiVGVzdCB0aW1lZCBvdXQgYWZ0ZXIgMjAgc2Vjb25kcyIpOwotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCkKLSAgICAgICAgfSwgMjAwMDApOwotICAgIAotICAg
IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvbm9uLWFwcC1i
b3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9ub24tYXBwLWJv
dW5kLWRvbWFpbi1kb2VzLW5vdC1nZXQtYXBwLWJvdW5kLXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAzOTU3MTZmZTE0Njc4NzY5ZGI3YjE1YWNhMjg5NWE3NDIwMWNjZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZh
Y3kvbm9uLWFwcC1ib3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgbm9uLWFwcC1ib3VuZCBk
b21haW4gZG9lcyBub3QgaGF2ZSBhbiBhcHAtYm91bmQgc2Vzc2lvbi4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgT3JpZ2luIGhhcyBub24tYXBwLWJvdW5kIHNlc3Npb24u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L25v
bi1hcHAtYm91bmQtZG9tYWluLWRvZXMtbm90LWdldC1hcHAtYm91bmQtc2Vzc2lvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L25vbi1hcHAtYm91
bmQtZG9tYWluLWRvZXMtbm90LWdldC1hcHAtYm91bmQtc2Vzc2lvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwNzMwZjEwZmNjMGVmNmIzMmVkNDEwYmJkNzQwZTA1Njc3ODVkZTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvbm9uLWFw
cC1ib3VuZC1kb21haW4tZG9lcy1ub3QtZ2V0LWFwcC1ib3VuZC1zZXNzaW9uLmh0bWwKQEAgLTAs
MCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5PXRydWUgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyPWlu
QXBwQnJvd3NlclByaXZhY3lUZXN0SWRlbnRpZmllciBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgYSBub24tYXBwLWJvdW5kIGRvbWFpbiBkb2VzIG5vdCBoYXZlIGFuIGFwcC1i
b3VuZCBzZXNzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzQXBwQm91bmRTZXNzaW9u
KCkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBzdGFydGVkIHdpdGggYXBwLWJv
dW5kIHNlc3Npb24uIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm9uLWFwcC1ib3VuZCBz
ZXNzaW9uLiIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tYXBwLWJvdW5kLWRvbWFpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1hcHAtYm91bmQtZG9tYWluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGZlOGE2M2U0NzdhOWEwZGNjMDJkNjI3NWVkNmFiMTBjNWI3OWRmMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1hcHAtYm91bmQtZG9tYWluLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLVRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJh
bWUgbmF2aWdhdGlvbiB0byBhbiBhcHAtYm91bmQgZG9tYWluLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tp
ZS4KLVBBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuCi1QQVNT
IE9yaWdpbiBoYXMgYXBwLWJvdW5kIHNlc3Npb24gYWZ0ZXIgbmF2aWdhdGlvbi4KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUyMjRiMGI0ZDcxNjRkYjBhZjhiODQ5ZGI0NWJjYWVjZmJjMDQ4MmUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8t
YXBwLWJvdW5kLWRvbWFpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlSW5BcHBCcm93c2Vy
UHJpdmFjeT10cnVlIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcj1pbkFwcEJyb3dzZXJQcml2
YWN5VGVzdElkZW50aWZpZXIgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRo
ZSBzZXNzaW9uIGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYW4gYXBw
LWJvdW5kIGRvbWFpbi4iKTsKLSAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotICAgIGNvbnN0
IGFwcEJvdW5kT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Ci0gICAgY29uc3Qgbm9u
QXBwQm91bmRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKLSAgICBjb25zdCBzZXNz
aW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKLSAgICBjb25zdCBwZXJzaXN0ZW50Q29v
a2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKLSAgICBjb25zdCB0d29NaW51dGVzSW5TZWNv
bmRzID0gMTIwOwotCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChmYWxzZSwgZmluaXNoSlNUZXN0KTsK
LSAgICB9Ci0gICAgCi0gICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsKLSAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LyI7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKLSAgICAgICAgZG9jdW1l
bnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsgTWF4LUFnZT0i
ICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVj
a0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJzaXN0ZW50Q29v
a2llKSB7Ci0gICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50LmNvb2tpZSAr
ICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCi0gICAgICAgICAgICBoYXNQZXJzaXN0
ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJzaXN0ZW50Q29v
a2llTmFtZSk7Ci0KLSAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nl
c3Npb25Db29raWUpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFz
IHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKLSAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVNlc3Np
b25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOwotICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoVGVzdCk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpIHsK
LSAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHNlc3Np
b24gY29va2llLiIpOwotICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
VGVzdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0
IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7Ci0KLQotICAgICAg
ICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkK
LSAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3Rl
bnQgY29va2llLiIpOwotICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tp
ZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hv
dWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7Ci0gICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hUZXN0KTsKLSAgICAgICAgfSBl
bHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tp
ZSkgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUg
cGVyc2lzdGVudCBjb29raWUuIik7Ci0gICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hUZXN0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJT
aG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKLSAgICAgICAgICAgIGNhc2UgIiI6Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCh0cnVlLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4g
IT09IGFwcEJvdW5kT3JpZ2luKQotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBhcHBCb3VuZE9yaWdpbiArICIuIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGUgdGVzdCBtYW51YWxseSBzZXRzIHRo
ZSBpbkFwcEJyb3dzZXJQcml2YWN5IGZsYWcgaW4gdGhlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAvLyBOZXR3b3JrIHByb2Nlc3MsIHdlIG5lZWQgdG8gcmUtZXN0YWJsaXNoIGFuIGFwcC1ib3Vu
ZCBzZXNzaW9uIGJ5Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuYXZpZ2F0aW5nIGF3YXkg
dGhlbiBiYWNrIHRvIHRoZSBhcHAtYm91bmQgRG9tYWluIGJlZm9yZSBzZXR0aW5nIGNvb2tpZXMu
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uQXBw
Qm91bmRPcmlnaW4gKyAiL2luLWFwcC1icm93c2VyLXByaXZhY3kvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1hcHAtYm91bmQtZG9tYWluLmh0bWwjc3RlcDEiOwotICAgICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGFwcEJvdW5kT3JpZ2luICsgIi9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L3N3
aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tYXBwLWJvdW5kLWRvbWFpbi5odG1sI3N0ZXAy
IjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6Ci0g
ICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gYXBwQm91bmRP
cmlnaW4pCi0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24g
IiArIGFwcEJvdW5kT3JpZ2luICsgIi4iKTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oYXBwQm91bmRPcmlnaW4sIHRydWUsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIHNldFBlcnNpc3RlbnRDb29raWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOwotICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5oYXNBcHBCb3VuZFNlc3Npb24oKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiT3JpZ2luIGRpZCBub3Qgc3RhcnQgd2l0aCBhcHAtYm91bmQgc2Vzc2lvbi4iKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaFRl
c3QpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgYXBwLWJvdW5kIHNlc3Npb24uIik7Ci0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25BcHBCb3VuZE9yaWdpbiArICIv
aW4tYXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFw
cC1ib3VuZC1kb21haW4uaHRtbCNzdGVwMyI7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICIjc3RlcDMiOgotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAiI3N0ZXA0IgotICAgICAgICAgICAgICAgIGNo
ZWNrQ29va2llcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gIT09IG5vbkFwcEJvdW5kT3JpZ2luKQotICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTdGVwIDMgaXMgbm90IG9uICIgKyBub25BcHBCb3VuZE9yaWdpbik7Ci0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
cnVuVGVzdCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICIjc3Rl
cDQiOgotICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyhmYWxzZSwgZmFsc2UpOwotICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBhcHBCb3VuZE9yaWdpbiArICIvaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLWFwcC1i
b3VuZC1kb21haW4uaHRtbCNzdGVwNSI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlICIjc3RlcDUiOgotICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0
cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5oYXNBcHBCb3VuZFNlc3Npb24o
KSkKLSAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBhcHAtYm91bmQg
c2Vzc2lvbiBhZnRlciBuYXZpZ2F0aW9uLiIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBubyBhcHAtYm91bmQgc2Vzc2lv
biBhZnRlciBuYXZpZ2F0aW9uLiIpOwotICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaFRlc3QpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtub3duIGhhc2guIik7Ci0g
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoVGVzdCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>