<?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>232553</bug_id>
          
          <creation_ts>2021-10-31 21:52:09 -0700</creation_ts>
          <short_desc>Add a run-webkit-tests mode to A/B test a given feature</short_desc>
          <delta_ts>2021-11-01 14:31:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>heycam</cc>
    
    <cc>jbedard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810548</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-31 21:52:09 -0700</bug_when>
    <thetext>Add a run-webkit-tests mode to A/B test a given feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810549</commentid>
    <comment_count>1</comment_count>
      <attachid>442954</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-31 21:52:31 -0700</bug_when>
    <thetext>Created attachment 442954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810550</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-31 21:54:11 -0700</bug_when>
    <thetext>I am super open to naming adjustments (I&apos;ve solicited suggestions elsewhere, hopefully the patch helps people come up with something), I don&apos;t love the name as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810620</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-11-01 08:33:01 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #2)
&gt; I am super open to naming adjustments (I&apos;ve solicited suggestions elsewhere,
&gt; hopefully the patch helps people come up with something), I don&apos;t love the
&gt; name as-is.

The name is the only thing I don&apos;t love....just some brainstormed options:

--compare-feature
--ab-test-feature
--feature-heade

I guess the problem I see is that the flag name is so long, maybe we keep the long name but also add a short one (maybe even just --ab or --feature) as an alternative</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810630</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-11-01 08:54:04 -0700</bug_when>
    <thetext>I think the tricky part is you want the long name to cover both the fact that it is running the tests in a weird way AND explain what the value of the argument should be (our test header format), thus the length. I did originally have `--ab-header`, but I&apos;m not sure `ab` very well conveys `A/B` :) Maybe it does!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810761</commentid>
    <comment_count>5</comment_count>
      <attachid>443000</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-11-01 12:28:42 -0700</bug_when>
    <thetext>Created attachment 443000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810878</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-01 14:30:46 -0700</bug_when>
    <thetext>Committed r285132 (243771@main): &lt;https://commits.webkit.org/243771@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810879</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-01 14:31:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/84899542&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442954</attachid>
            <date>2021-10-31 21:52:31 -0700</date>
            <delta_ts>2021-11-01 12:28:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232553-20211031215230.patch</filename>
            <type>text/plain</type>
            <size>16322</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY5MDJiNDBlOGJmMmQxOGRhOWY2MThjNDg4MzYwNmQx
NGQwMzg2OS4uNTNiODc2ZjU5MzZlNTE0OWM5NWRiOTQ0NWI0MDZkNWEyZjFiOWE3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYy
IEBACisyMDIxLTEwLTMxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIHJ1bi13ZWJraXQtdGVzdHMgbW9kZSB0byBBL0IgdGVzdCBhIGdpdmVu
IGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjU1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgYXJndW1lbnQgLS1jb21wYXJpc29uLXRlc3QtaGVhZGVyIHRvIHJ1bi13ZWJraXQt
dGVzdHMsIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIHRvIHRlc3QgdGhlIGltcGFjdCBvZiBh
IGdpdmVuIGZlYXR1cmUgKG9yIHNldCBvZiBmZWF0dXJlczsKKyAgICAgICAgaXQgYWNjZXB0cyB0
aGUgc3RhbmRhcmQgdGVzdCBmZWF0dXJlcyBoZWFkZXIgZm9ybWF0KS4KKworICAgICAgICBXaGVu
IHRlc3RzIGFyZSBydW4gaW4gdGhpcyBtb2RlLCBhbGwgdGVzdHMgYXJlIHJ1biBpbiB0aGUgcmVm
LXRlc3QKKyAgICAgICAgc3R5bGUsIGJ1dCB3aXRoIHRoZSBgZXhwZWN0ZWRgIGFuZCBgYWN0dWFs
YCByZXN1bHRzIGxvYWRpbmcgdGhlIHNhbWUKKyAgICAgICAgdGVzdCBmaWxlIChpZ25vcmluZyB0
aGUgdXN1YWwgLWV4cGVjdGVkLmh0bWwgb3Igd2hhdGV2ZXIpOyB0aGV5IGRpZmZlcgorICAgICAg
ICBvbmx5IGluIHRoZSBzZXQgb2YgZmVhdHVyZXMvcHJlZmVyZW5jZXMgZW5hYmxlZC4KKworICAg
ICAgICBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB0ZXN0aW5nIHRoZSBpbXBhY3Qgb2Yg
ZS5nLiBwbGF0Zm9ybQorICAgICAgICBncmFwaGljcyBmZWF0dXJlcywgd2hlcmUgdGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiB0aGUgc2hpcHBpbmcgYmVoYXZpb3IKKyAgICAgICAgYW5kIGluLWRldmVs
b3BtZW50IGJlaGF2aW9yIGlzIG1vcmUgaW50ZXJlc3RpbmcgdGhhbiB3aGV0aGVyIG9yIG5vdAor
ICAgICAgICBpdCBhY3R1YWxseSBtYWtlcyB0aGUgdGVzdHMsIGFzIHdyaXR0ZW4sIGZhaWwuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5n
bGVfdGVzdF9ydW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyKToKKyAgICAgICAg
KFNpbmdsZVRlc3RSdW5uZXIuX3J1bl9jb21wYXJpc29uX3Rlc3QpOgorICAgICAgICBBZGQgdGhl
IGNvbXBhcmlzb24gdGVzdCBydW5uZXIsIGFuZCBwcmVmZXIgaXQgaWYgcmVxdWVzdGVkLgorCisg
ICAgICAgIE9uZSBub3RlIGhlcmU6IHRoZSBydW4gd2l0aCB0aGUgLS1jb21wYXJpc29uLXRlc3Qt
aGVhZGVyIG9wdGlvbnMgaXMKKyAgICAgICAgY29uc2lkZXJlZCB0aGUgImFjdHVhbCIgcmVzdWx0
IGFuZCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHRoZSAiZXhwZWN0ZWQiLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAg
ICAgICAgKHBhcnNlX2FyZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHk6CisgICAgICAgIChEcml2ZXJJbnB1dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXJJ
bnB1dC5fX3JlcHJfXyk6CisgICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5w
dXQpOgorICAgICAgICBQYXNzIHRoZSBjb21wYXJpc29uIHRlc3QgaGVhZGVyIGFsb25nIHRvIHRo
ZSB0ZXN0IHJ1bm5lci4KKworICAgICAgICBBbHNvLCBmaXggYSBsb25nc3RhbmRpbmcgZXJyb3Ig
d2hlcmUgLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIKKyAgICAgICAgY291bGQgZ2V0IGlu
c2VydGVkIGltbWVkaWF0ZWx5IGFmdGVyIC0tcGl4ZWwtdGVzdCwgY2F1c2luZyB0aGUgdGVzdCBy
dW5uZXIKKyAgICAgICAgdG8gY29uc3VtZSBpdCBhcyB0aGUgZXhwZWN0ZWQgaW1hZ2UgaGFzaCEg
QW5kIGxlYXZlIGEgY29tbWVudCBzbyBub2JvZHkKKyAgICAgICAgZWxzZSBoYXMgdG8gZGVidWcg
dGhpcyBhZ2Fpbi4uLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9UZXN0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXVFI6OnBhcnNlSW5wdXRMaW5lKToKKyAgICAgICAgKiBUZXN0UnVubmVy
U2hhcmVkL1Rlc3RDb21tYW5kLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVh
dHVyZXMuY3BwOgorICAgICAgICAoV1RSOjpwYXJzZVRlc3RIZWFkZXJTdHJpbmcpOgorICAgICAg
ICAoV1RSOjpwYXJzZVRlc3RIZWFkZXIpOgorICAgICAgICAoV1RSOjpmZWF0dXJlRGVmYXVsdHNG
cm9tQ29tcGFyaXNvblRlc3RIZWFkZXIpOgorICAgICAgICBGYWN0b3Igb3V0IHRoZSBwYXJzaW5n
IG9mIHRoZSBwYXJ0IG9mIHRoZSB0ZXN0IGhlYWRlciBpbnNpZGUgdGhlIFsgXSwKKyAgICAgICAg
c2luY2Ugd2UgdXNlIHRoaXMgZm9ybWF0IGZvciB0aGUgdmFsdWUgb2YgLS1jb21wYXJpc29uLXRl
c3QtaGVhZGVyIGFzIHdlbGwuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0
dXJlcy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6dGVzdE9wdGlvbnNGb3JUZXN0IGNvbnN0KToKKyAgICAgICAgTWVyZ2UgdGhl
IGNvbXBhcmlzb24gaGVhZGVyJ3Mgb3B0aW9ucyBpbiB0byB0aGUgdGVzdCBvcHRpb25zIGJlZm9y
ZQorICAgICAgICB0aGUgdGVzdCdzIG93biBoZWFkZXIsIHNvIHRoYXQgdGhlIGNvbXBhcmlzb24g
aGVhZGVyIHdpbnMuCisKIDIwMjEtMTAtMjkgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0gQXNzaWduIFBSIHRvIGF1dGhvcgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
c2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IDE5NTcwM2QxOGJjMDc0
Y2NlMDhhOTI5YTMzYWNhMGQ5MzIzNTkxYzMuLjYzY2FhYTc4NjBmYWQzZmVkZTRjMjkzY2MzMjEz
NWI5ZWNlN2MzZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkK
QEAgLTExMSw2ICsxMTEsOCBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGlt
YWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCwgc2VsZi5fc2hvdWxkX2R1bXBf
anNjb25zb2xlbG9nX2luX3N0ZGVycikKIAogICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIGlm
IHNlbGYuX3BvcnQuZ2V0X29wdGlvbignY29tcGFyaXNvbl90ZXN0X2hlYWRlcicpOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21wYXJpc29uX3Rlc3QoKQogICAgICAgICBpZiBzZWxm
Ll9yZWZlcmVuY2VfZmlsZXM6CiAgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24o
J25vX3JlZl90ZXN0cycpIG9yIHNlbGYuX29wdGlvbnMucmVzZXRfcmVzdWx0czoKICAgICAgICAg
ICAgICAgICByZWZ0ZXN0X3R5cGUgPSBzZXQoW3JlZmVyZW5jZV9maWxlWzBdIGZvciByZWZlcmVu
Y2VfZmlsZSBpbiBzZWxmLl9yZWZlcmVuY2VfZmlsZXNdKQpAQCAtMzM2LDYgKzMzOCwyMSBAQCBj
bGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHJlZnRlc3RfdHlwZSA9IHNl
dChbcmVmZXJlbmNlX2ZpbGVbMF0gZm9yIHJlZmVyZW5jZV9maWxlIGluIHNlbGYuX3JlZmVyZW5j
ZV9maWxlc10pCiAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfaW5wdXQsIHRl
c3RfcmVzdWx0LmZhaWx1cmVzLCB0b3RhbF90ZXN0X3RpbWUgKyB0ZXN0X3Jlc3VsdC50ZXN0X3J1
bl90aW1lLCB0ZXN0X3Jlc3VsdC5oYXNfc3RkZXJyLCByZWZ0ZXN0X3R5cGU9cmVmdGVzdF90eXBl
LCBwaWQ9dGVzdF9yZXN1bHQucGlkLCByZWZlcmVuY2VzPXJlZmVyZW5jZV90ZXN0X25hbWVzKQog
CisgICAgZGVmIF9ydW5fY29tcGFyaXNvbl90ZXN0KHNlbGYpOgorICAgICAgICBkcml2ZXJfaW5w
dXQgPSBzZWxmLl9kcml2ZXJfaW5wdXQoKQorICAgICAgICBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1
bl9waXhlbF90ZXN0ID0gVHJ1ZQorCisgICAgICAgIHJlZmVyZW5jZV9vdXRwdXQgPSBzZWxmLl9k
cml2ZXIucnVuX3Rlc3QoZHJpdmVyX2lucHV0LCBzZWxmLl9zdG9wX3doZW5fZG9uZSkKKyAgICAg
ICAgZHJpdmVyX2lucHV0LmNvbXBhcmlzb25fdGVzdF9oZWFkZXIgPSBzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ2NvbXBhcmlzb25fdGVzdF9oZWFkZXInKQorICAgICAgICB0ZXN0X291dHB1dCA9IHNl
bGYuX2RyaXZlci5ydW5fdGVzdChkcml2ZXJfaW5wdXQsIHNlbGYuX3N0b3Bfd2hlbl9kb25lKQor
CisgICAgICAgIHRlc3RfZnVsbF9wYXRoID0gc2VsZi5fcG9ydC5hYnNwYXRoX2Zvcl90ZXN0KHNl
bGYuX3Rlc3RfbmFtZSkKKyAgICAgICAgdGVzdF9yZXN1bHQgPSBzZWxmLl9jb21wYXJlX291dHB1
dF93aXRoX3JlZmVyZW5jZShyZWZlcmVuY2Vfb3V0cHV0LCB0ZXN0X291dHB1dCwgdGVzdF9mdWxs
X3BhdGgsIEZhbHNlKQorCisgICAgICAgIGFzc2VydChyZWZlcmVuY2Vfb3V0cHV0KQorICAgICAg
ICB0ZXN0X3Jlc3VsdF93cml0ZXIud3JpdGVfdGVzdF9yZXN1bHQoc2VsZi5fZmlsZXN5c3RlbSwg
c2VsZi5fcG9ydCwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rlc3RfbmFtZSwgdGVz
dF9vdXRwdXQsIHJlZmVyZW5jZV9vdXRwdXQsIHRlc3RfcmVzdWx0LmZhaWx1cmVzKQorICAgICAg
ICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl90ZXN0X2lucHV0LCB0ZXN0X3Jlc3VsdC5mYWlsdXJl
cywgdGVzdF9yZXN1bHQudGVzdF9ydW5fdGltZSwgdGVzdF9yZXN1bHQuaGFzX3N0ZGVyciwgcGlk
PXRlc3RfcmVzdWx0LnBpZCkKKwogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX3JlbGF0aXZl
X3JlZmVyZW5jZV9wYXRoKHRlc3RfZnVsbF9wYXRoLCByZWZlcmVuY2VfZnVsbF9wYXRoKToKICAg
ICAgICAgdGVzdF9kaXIgPSBvcy5wYXRoLnNwbGl0KHRlc3RfZnVsbF9wYXRoKVswXQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHMucHkKaW5kZXggMDFhM2UwNGE1MDQ4YTMxMDVlNDg3Y2VhYjhlMTg2YjljYmVlZjgzOC4uMTcy
ZGIzYjliYTRhZWRlNTNjOWZiNGU0YWM1YmEwNjU4Y2NjMDkxNSAxMDA3NTUKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBA
IC0zNDQsNiArMzQ0LDcgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAgICAgICAiLS1w
cmVmZXItaW50ZWdyYXRlZC1ncHUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNl
LAogICAgICAgICAgICAgaGVscD0oIlByZWZlciB1c2luZyB0aGUgbG93ZXItcG93ZXIgaW50ZWdy
YXRlZCBHUFUgb24gYSBkdWFsLUdQVSBzeXN0ZW0uIE5vdGUgdGhhdCBvdGhlciBydW5uaW5nIGFw
cGxpY2F0aW9ucyBhbmQgdGhlIHRlc3RzIHRoZW1zZWx2ZXMgY2FuIG92ZXJyaWRlIHRoaXMgcmVx
dWVzdC4iKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXNob3ctd2luZG93Jywg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSB0aGUgdGVzdCBy
dW5uZXIgd2luZG93IHZpc2libGUgZHVyaW5nIHRlc3RpbmcuIiksCisgICAgICAgIG9wdHBhcnNl
Lm1ha2Vfb3B0aW9uKCItLWNvbXBhcmlzb24tdGVzdC1oZWFkZXIiLCBoZWxwPSJSdW4gYWxsIHRl
c3RzIGFzIEEvQiB0ZXN0cyBiZXR3ZWVuIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYW5kIHRo
ZSBnaXZlbiB0ZXN0IGZlYXR1cmVzIGhlYWRlciAoaWdub3JpbmcgZXhwZWN0ZWQgcmVzdWx0cyku
IiksCiAgICAgXSkpCiAKICAgICBvcHRpb25fZ3JvdXBfZGVmaW5pdGlvbnMuYXBwZW5kKCgiV2Vi
IFBsYXRmb3JtIFRlc3QgU2VydmVyIE9wdGlvbnMiLCBbCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2RyaXZlci5weQppbmRleCA2NTY4ZmZhNzE0N2RiN2NlNDhlZmU5MmEwNjE2NzgwYjJlM2QyNTg0
Li5lYzU2NTk5NzdiNjZmMDg4ODI4ZjIyNWM3MGQwODMzY2FmNThiYTU1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTQ2LDE2ICs0NiwxNyBAQCBfbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgRHJpdmVySW5wdXQob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBzaG91
bGRfcnVuX3BpeGVsX3Rlc3QsIHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI9Tm9u
ZSwgYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0
LCBpbWFnZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3QsIHNob3VsZF9kdW1wX2pzY29uc29s
ZWxvZ19pbl9zdGRlcnI9Tm9uZSwgYXJncz1Ob25lLCBjb21wYXJpc29uX3Rlc3RfaGVhZGVyPU5v
bmUpOgogICAgICAgICBzZWxmLnRlc3RfbmFtZSA9IHRlc3RfbmFtZQogICAgICAgICBzZWxmLnRp
bWVvdXQgPSB0aW1lb3V0ICAjIGluIG1zCiAgICAgICAgIHNlbGYuaW1hZ2VfaGFzaCA9IGltYWdl
X2hhc2gKICAgICAgICAgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzaG91bGRfcnVuX3Bp
eGVsX3Rlc3QKICAgICAgICAgc2VsZi5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJy
ID0gc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycgogICAgICAgICBzZWxmLmFyZ3Mg
PSBhcmdzIG9yIFtdCisgICAgICAgIHNlbGYuY29tcGFyaXNvbl90ZXN0X2hlYWRlciA9IGNvbXBh
cmlzb25fdGVzdF9oZWFkZXIKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0
dXJuICJEcml2ZXJJbnB1dCh0ZXN0X25hbWU9J3t9JywgdGltZW91dD17fSwgaW1hZ2VfaGFzaD17
fSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PXt9LCBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5f
c3RkZXJyPXt9JyIuZm9ybWF0KHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNlbGYuaW1h
Z2VfaGFzaCwgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QsIHNlbGYuc2hvdWxkX2R1bXBfanNj
b25zb2xlbG9nX2luX3N0ZGVycikKKyAgICAgICAgcmV0dXJuICJEcml2ZXJJbnB1dCh0ZXN0X25h
bWU9J3t9JywgdGltZW91dD17fSwgaW1hZ2VfaGFzaD17fSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0
PXt9LCBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyPXt9LCBjb21wYXJpc29uX3Rl
c3RfaGVhZGVyPXt9JyIuZm9ybWF0KHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNlbGYu
aW1hZ2VfaGFzaCwgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QsIHNlbGYuc2hvdWxkX2R1bXBf
anNjb25zb2xlbG9nX2luX3N0ZGVyciwgc2VsZi5jb21wYXJpc29uX3Rlc3RfaGVhZGVyKQogCiAK
IGNsYXNzIERyaXZlck91dHB1dChvYmplY3QpOgpAQCAtNjMxLDEyICs2MzIsMTcgQEAgY2xhc3Mg
RHJpdmVyKG9iamVjdCk6CiAgICAgICAgICMgJyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJn
dW1lbnRzLgogICAgICAgICBpZiBzZWxmLl9wb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQo
KToKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0
LnRpbWVvdXQKLSAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoK
LSAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZl
cl9pbnB1dC5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyOgogICAgICAgICAgICAg
Y29tbWFuZCArPSAiJy0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIgotICAgICAgICBpZiBk
cml2ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKLSAgICAgICAgICAgIGNvbW1hbmQgKz0gIiciICsgZHJp
dmVyX2lucHV0LmltYWdlX2hhc2gKKyAgICAgICAgaWYgZHJpdmVyX2lucHV0LmNvbXBhcmlzb25f
dGVzdF9oZWFkZXI6CisgICAgICAgICAgICBjb21tYW5kICs9ICInLS1jb21wYXJpc29uLXRlc3Qt
aGVhZGVyJyVzIiAlIGRyaXZlcl9pbnB1dC5jb21wYXJpc29uX3Rlc3RfaGVhZGVyCisKKyAgICAg
ICAgIyAtLXBpeGVsLXRlc3QgbXVzdCBiZSB0aGUgbGFzdCBhcmd1bWVudCwgYmVjYXVzZSB0aGUg
aGFzaCBpcyBvcHRpb25hbCwKKyAgICAgICAgIyBhbmQgYW55IGFyZ3VtZW50IHB1dCBpbiBpdHMg
cGxhY2Ugd2lsbCBiZSBpbmNvcnJlY3RseSBjb25zdW1lZCBhcyB0aGUgaGFzaC4KKyAgICAgICAg
aWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKKyAgICAgICAgICAgIGNvbW1h
bmQgKz0gIictLXBpeGVsLXRlc3QiCisgICAgICAgICAgICBpZiBkcml2ZXJfaW5wdXQuaW1hZ2Vf
aGFzaDoKKyAgICAgICAgICAgICAgICBjb21tYW5kICs9ICInIiArIGRyaXZlcl9pbnB1dC5pbWFn
ZV9oYXNoCiAgICAgICAgIHJldHVybiBjb21tYW5kICsgIlxuIgogCiAgICAgZGVmIF9yZWFkX2Zp
cnN0X2Jsb2NrKHNlbGYsIGRlYWRsaW5lLCB0ZXN0X25hbWUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9UZXN0Q29tbWFuZC5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1Rlc3RDb21tYW5kLmNwcAppbmRleCBiNDczZWRlN2ZlYzliMWIwNmVlOGIwZDRmZjFhYWEyNDk1
MDc5NTFlLi4zODRiZTczNmIzOWMwMjJkMzAwYzRhOGI0YWExNjRmNDhlZDcyYjU4IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmNwcAorKysgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmNwcApAQCAtOTgsNiArOTgsMTEgQEAgVGVzdENv
bW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAg
ICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAgICAgIGlmICh0
b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVs
SGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIH0gZWxzZSBpZiAoYXJnID09ICItLWNv
bXBhcmlzb24tdGVzdC1oZWFkZXIiKSB7CisgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05l
eHQoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY29tcGFyaXNvblRlc3RIZWFkZXIgPSB0b2tl
bml6ZXIubmV4dCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRpZShpbnB1
dExpbmUpOwogICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS1kdW1wLWpz
Y29uc29sZWxvZy1pbi1zdGRlcnIiKSkKICAgICAgICAgICAgIHJlc3VsdC5kdW1wSlNDb25zb2xl
TG9nSW5TdGRFcnIgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmco
Ii0tYWJzb2x1dGVQYXRoIikpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rl
c3RDb21tYW5kLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmgKaW5kZXgg
MjVlMjFmOTllYjJmMDM0OWZiYzhjMWY3Y2FlM2ViMmE4ODZjZWRmNy4uZWE1MWE3YTk3NTk1ZDFj
MzljODJhNjczODEyOTJhMmY1NWZkYjg5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9UZXN0Q29tbWFuZC5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdENvbW1h
bmQuaApAQCAtMzUsNiArMzUsNyBAQCBzdHJ1Y3QgVGVzdENvbW1hbmQgewogICAgIHN0ZDo6c3Ry
aW5nIHBhdGhPclVSTDsKICAgICBzdGQ6OmZpbGVzeXN0ZW06OnBhdGggYWJzb2x1dGVQYXRoOwog
ICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOworICAgIHN0ZDo6c3RyaW5nIGNvbXBh
cmlzb25UZXN0SGVhZGVyOwogICAgIFdURjo6U2Vjb25kcyB0aW1lb3V0OwogICAgIGJvb2wgc2hv
dWxkRHVtcFBpeGVscyB7IGZhbHNlIH07CiAgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVh
dHVyZXMuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwCmluZGV4
IGYzMGViMDRhYTc3MzAwNDZiOTBhZWEyN2Y0NWM2MzI5ODA3MTQ0NzEuLmQwNzc5YjUzYjVlNTBm
NmVmMWQ2NzA2OGE4NDk4NDBiNjg3Nzg0NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RG
ZWF0dXJlcy5jcHAKQEAgLTI0MywzMiArMjQzLDEwIEBAIGJvb2wgcGFyc2VUZXN0SGVhZGVyRmVh
dHVyZShUZXN0RmVhdHVyZXMmIGZlYXR1cmVzLCBzdGQ6OnN0cmluZyBrZXksIHN0ZDo6c3RyaW5n
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVzdEhl
YWRlcihzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFw
PHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVNYXApCitzdGF0aWMgVGVz
dEZlYXR1cmVzIHBhcnNlVGVzdEhlYWRlclN0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcGFpclN0
cmluZywgc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21h
cDxzdGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlUeXBlTWFwKQogewogICAgIFRl
c3RGZWF0dXJlcyBmZWF0dXJlczsKLSAgICBzdGQ6OmVycm9yX2NvZGUgZWM7Ci0gICAgaWYgKCFz
dGQ6OmZpbGVzeXN0ZW06OmV4aXN0cyhwYXRoLCBlYykpCi0gICAgICAgIHJldHVybiBmZWF0dXJl
czsKIAotICAgIHN0ZDo6aWZzdHJlYW0gZmlsZShwYXRoKTsKLSAgICBpZiAoIWZpbGUuZ29vZCgp
KSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IG9wZW4gZmlsZSB0byBpbnNwZWN0IHRl
c3QgaGVhZGVycyBpbiAlcyIsIHBhdGguY19zdHIoKSk7Ci0gICAgICAgIHJldHVybiBmZWF0dXJl
czsKLSAgICB9Ci0KLSAgICBzdGQ6OnN0cmluZyBvcHRpb25zOwotICAgIGdldGxpbmUoZmlsZSwg
b3B0aW9ucyk7Ci0gICAgc3RkOjpzdHJpbmcgYmVnaW5TdHJpbmcoIndlYmtpdC10ZXN0LXJ1bm5l
ciBbICIpOwotICAgIHN0ZDo6c3RyaW5nIGVuZFN0cmluZygiIF0iKTsKLSAgICBzaXplX3QgYmVn
aW5Mb2NhdGlvbiA9IG9wdGlvbnMuZmluZChiZWdpblN0cmluZyk7Ci0gICAgaWYgKGJlZ2luTG9j
YXRpb24gPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgIHJldHVybiBmZWF0dXJlczsKLSAg
ICBzaXplX3QgZW5kTG9jYXRpb24gPSBvcHRpb25zLmZpbmQoZW5kU3RyaW5nLCBiZWdpbkxvY2F0
aW9uKTsKLSAgICBpZiAoZW5kTG9jYXRpb24gPT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKLSAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZmluZCBlbmQgb2YgdGVzdCBoZWFkZXIgaW4gJXMiLCBw
YXRoLmNfc3RyKCkpOwotICAgICAgICByZXR1cm4gZmVhdHVyZXM7Ci0gICAgfQotICAgIHN0ZDo6
c3RyaW5nIHBhaXJTdHJpbmcgPSBvcHRpb25zLnN1YnN0cihiZWdpbkxvY2F0aW9uICsgYmVnaW5T
dHJpbmcuc2l6ZSgpLCBlbmRMb2NhdGlvbiAtIChiZWdpbkxvY2F0aW9uICsgYmVnaW5TdHJpbmcu
c2l6ZSgpKSk7CiAgICAgc2l6ZV90IHBhaXJTdGFydCA9IDA7CiAgICAgd2hpbGUgKHBhaXJTdGFy
dCA8IHBhaXJTdHJpbmcuc2l6ZSgpKSB7CiAgICAgICAgIHNpemVfdCBwYWlyRW5kID0gcGFpclN0
cmluZy5maW5kKCIgIiwgcGFpclN0YXJ0KTsKQEAgLTI5MSw5ICsyNjksNDQgQEAgc3RhdGljIFRl
c3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNv
bnN0IHN0ZDo6dW5vcmQKICAgICByZXR1cm4gZmVhdHVyZXM7CiB9CiAKK3N0YXRpYyBUZXN0RmVh
dHVyZXMgcGFyc2VUZXN0SGVhZGVyKHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCBwYXRoLCBjb25zdCBz
dGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJLZXlUeXBlPiYga2V5VHlw
ZU1hcCkKK3sKKyAgICBzdGQ6OmVycm9yX2NvZGUgZWM7CisgICAgaWYgKCFzdGQ6OmZpbGVzeXN0
ZW06OmV4aXN0cyhwYXRoLCBlYykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBzdGQ6Omlm
c3RyZWFtIGZpbGUocGF0aCk7CisgICAgaWYgKCFmaWxlLmdvb2QoKSkgeworICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBvcGVuIGZpbGUgdG8gaW5zcGVjdCB0ZXN0IGhlYWRlcnMgaW4gJXMi
LCBwYXRoLmNfc3RyKCkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIHN0ZDo6
c3RyaW5nIG9wdGlvbnM7CisgICAgZ2V0bGluZShmaWxlLCBvcHRpb25zKTsKKyAgICBzdGQ6OnN0
cmluZyBiZWdpblN0cmluZygid2Via2l0LXRlc3QtcnVubmVyIFsgIik7CisgICAgc3RkOjpzdHJp
bmcgZW5kU3RyaW5nKCIgXSIpOworICAgIHNpemVfdCBiZWdpbkxvY2F0aW9uID0gb3B0aW9ucy5m
aW5kKGJlZ2luU3RyaW5nKTsKKyAgICBpZiAoYmVnaW5Mb2NhdGlvbiA9PSBzdGQ6OnN0cmluZzo6
bnBvcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBzaXplX3QgZW5kTG9jYXRpb24gPSBvcHRp
b25zLmZpbmQoZW5kU3RyaW5nLCBiZWdpbkxvY2F0aW9uKTsKKyAgICBpZiAoZW5kTG9jYXRpb24g
PT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZmlu
ZCBlbmQgb2YgdGVzdCBoZWFkZXIgaW4gJXMiLCBwYXRoLmNfc3RyKCkpOworICAgICAgICByZXR1
cm4geyB9OworICAgIH0KKyAgICBzdGQ6OnN0cmluZyBwYWlyU3RyaW5nID0gb3B0aW9ucy5zdWJz
dHIoYmVnaW5Mb2NhdGlvbiArIGJlZ2luU3RyaW5nLnNpemUoKSwgZW5kTG9jYXRpb24gLSAoYmVn
aW5Mb2NhdGlvbiArIGJlZ2luU3RyaW5nLnNpemUoKSkpOworICAgIHJldHVybiBwYXJzZVRlc3RI
ZWFkZXJTdHJpbmcocGFpclN0cmluZywgcGF0aCwga2V5VHlwZU1hcCk7Cit9CisKIFRlc3RGZWF0
dXJlcyBmZWF0dXJlRGVmYXVsdHNGcm9tVGVzdEhlYWRlckZvclRlc3QoY29uc3QgVGVzdENvbW1h
bmQmIGNvbW1hbmQsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhl
YWRlcktleVR5cGU+JiBrZXlUeXBlTWFwKQogewogICAgIHJldHVybiBwYXJzZVRlc3RIZWFkZXIo
Y29tbWFuZC5hYnNvbHV0ZVBhdGgsIGtleVR5cGVNYXApOwogfQogCitUZXN0RmVhdHVyZXMgZmVh
dHVyZURlZmF1bHRzRnJvbUNvbXBhcmlzb25UZXN0SGVhZGVyKGNvbnN0IFRlc3RDb21tYW5kJiBj
b21tYW5kLCBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJL
ZXlUeXBlPiYga2V5VHlwZU1hcCkKK3sKKyAgICBpZiAoY29tbWFuZC5jb21wYXJpc29uVGVzdEhl
YWRlci5lbXB0eSgpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBwYXJzZVRlc3RI
ZWFkZXJTdHJpbmcoY29tbWFuZC5jb21wYXJpc29uVGVzdEhlYWRlciwgY29tbWFuZC5hYnNvbHV0
ZVBhdGgsIGtleVR5cGVNYXApOwogfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmggYi9Ub29scy9UZXN0UnVubmVy
U2hhcmVkL1Rlc3RGZWF0dXJlcy5oCmluZGV4IGY4MjVhMjcyYmU2NWY3NTc2YWViMmMwOWVmYzRl
OTJlYjU1NzU3NWQuLjcxOTZhMmYxNmE1MmY1ODNhN2JlN2JkNzViYTY4ZjI1N2U2ODBjNzYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmgKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuaApAQCAtNjksNSArNjksNiBAQCBlbnVt
IGNsYXNzIFRlc3RIZWFkZXJLZXlUeXBlIDogdWludDhfdCB7CiAgICAgVW5rbm93bgogfTsKIFRl
c3RGZWF0dXJlcyBmZWF0dXJlRGVmYXVsdHNGcm9tVGVzdEhlYWRlckZvclRlc3QoY29uc3QgVGVz
dENvbW1hbmQmLCBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFk
ZXJLZXlUeXBlPiYpOworVGVzdEZlYXR1cmVzIGZlYXR1cmVEZWZhdWx0c0Zyb21Db21wYXJpc29u
VGVzdEhlYWRlcihjb25zdCBUZXN0Q29tbWFuZCYsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxz
dGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+Jik7CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRp
b25zLmgKaW5kZXggOGVmZWQ1MmZiZWQ0MzI5YTdiMDRmMWMyNTA5NjIyZGMwMmYxYzhmZC4uMzlh
NWZlMjhjMWIzZGQ2OTk0YmJlZTU4NGU3NDI5ZTQ4OWYwY2E3NyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9P
cHRpb25zLmgKQEAgLTUyLDYgKzUyLDcgQEAgc3RydWN0IE9wdGlvbnMgewogICAgIGJvb2wgZW5h
YmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMgeyB0cnVlIH07CiAgICAgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IHBhdGhzOwogICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiBhbGxvd2VkSG9zdHM7
CisgICAgc3RkOjpzdHJpbmcgY29tcGFyaXNvblRlc3RIZWFkZXI7CiAgICAgVGVzdEZlYXR1cmVz
IGZlYXR1cmVzOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCA4MTM1YWFmNzFjNjFkYTJhMzkyNTZiYWRmN2U1M2NkMjQ3MzYyOTQwLi4yNWRkNTg4
YTQ1NTVlOTU1MDlmYjZhYTdlNDZiMjg3YzE1NWU3ZTc0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTMxMSw2ICsxMzExLDcgQEAgVGVzdE9wdGlvbnMg
VGVzdENvbnRyb2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYgY29t
bWFuZCkgY29uc3QKICAgICBtZXJnZShmZWF0dXJlcywgbV9nbG9iYWxGZWF0dXJlcyk7CiAgICAg
bWVyZ2UoZmVhdHVyZXMsIGhhcmRjb2RlZEZlYXR1cmVzQmFzZWRPblBhdGhGb3JUZXN0KGNvbW1h
bmQpKTsKICAgICBtZXJnZShmZWF0dXJlcywgcGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0
c0ZvclRlc3QoY29tbWFuZCkpOworICAgIG1lcmdlKGZlYXR1cmVzLCBmZWF0dXJlRGVmYXVsdHNG
cm9tQ29tcGFyaXNvblRlc3RIZWFkZXIoY29tbWFuZCwgVGVzdE9wdGlvbnM6OmtleVR5cGVNYXBw
aW5nKCkpKTsKICAgICBtZXJnZShmZWF0dXJlcywgZmVhdHVyZURlZmF1bHRzRnJvbVRlc3RIZWFk
ZXJGb3JUZXN0KGNvbW1hbmQsIFRlc3RPcHRpb25zOjprZXlUeXBlTWFwcGluZygpKSk7CiAgICAg
bWVyZ2UoZmVhdHVyZXMsIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJpZGVzRGVmYXVsdHNG
b3JUZXN0KGNvbW1hbmQpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443000</attachid>
            <date>2021-11-01 12:28:42 -0700</date>
            <delta_ts>2021-11-01 14:30:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232553-20211101122841.patch</filename>
            <type>text/plain</type>
            <size>16133</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGVhNGYxY2EwZGQ4MGYxZTMwYTFmZjgwMDc4OTMwODZh
ODI5YzBhYy4uNjE3NTk1OTlhOGFhZDgxM2ZmNDQ0ZDQ2NzM5OWVhNzEyODk2MTg5MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYy
IEBACisyMDIxLTExLTAxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIHJ1bi13ZWJraXQtdGVzdHMgbW9kZSB0byBBL0IgdGVzdCBhIGdpdmVu
IGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjU1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgYXJndW1lbnQgLS1zZWxmLWNvbXBhcmUtd2l0aC1oZWFkZXIgdG8gcnVuLXdlYmtp
dC10ZXN0cywgd2hpY2gKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gdGVzdCB0aGUgaW1wYWN0IG9m
IGEgZ2l2ZW4gZmVhdHVyZSAob3Igc2V0IG9mIGZlYXR1cmVzOworICAgICAgICBpdCBhY2NlcHRz
IHRoZSBzdGFuZGFyZCB0ZXN0IGZlYXR1cmVzIGhlYWRlciBmb3JtYXQpLgorCisgICAgICAgIFdo
ZW4gdGVzdHMgYXJlIHJ1biBpbiB0aGlzIG1vZGUsIGFsbCB0ZXN0cyBhcmUgcnVuIGluIHRoZSBy
ZWYtdGVzdAorICAgICAgICBzdHlsZSwgYnV0IHdpdGggdGhlIGBleHBlY3RlZGAgYW5kIGBhY3R1
YWxgIHJlc3VsdHMgbG9hZGluZyB0aGUgc2FtZQorICAgICAgICB0ZXN0IGZpbGUgKGlnbm9yaW5n
IHRoZSB1c3VhbCAtZXhwZWN0ZWQuaHRtbCBvciB3aGF0ZXZlcik7IHRoZXkgZGlmZmVyCisgICAg
ICAgIG9ubHkgaW4gdGhlIHNldCBvZiBmZWF0dXJlcy9wcmVmZXJlbmNlcyBlbmFibGVkLgorCisg
ICAgICAgIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHRlc3RpbmcgdGhlIGltcGFjdCBv
ZiBlLmcuIHBsYXRmb3JtCisgICAgICAgIGdyYXBoaWNzIGZlYXR1cmVzLCB3aGVyZSB0aGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZSBzaGlwcGluZyBiZWhhdmlvcgorICAgICAgICBhbmQgaW4tZGV2
ZWxvcG1lbnQgYmVoYXZpb3IgaXMgbW9yZSBpbnRlcmVzdGluZyB0aGFuIHdoZXRoZXIgb3Igbm90
CisgICAgICAgIGl0IGFjdHVhbGx5IG1ha2VzIHRoZSB0ZXN0cywgYXMgd3JpdHRlbiwgZmFpbC4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Np
bmdsZV90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIpOgorICAgICAg
ICAoU2luZ2xlVGVzdFJ1bm5lci5fcnVuX2NvbXBhcmlzb25fdGVzdCk6CisgICAgICAgIEFkZCB0
aGUgY29tcGFyaXNvbiB0ZXN0IHJ1bm5lciwgYW5kIHByZWZlciBpdCBpZiByZXF1ZXN0ZWQuCisK
KyAgICAgICAgT25lIG5vdGUgaGVyZTogdGhlIHJ1biB3aXRoIHRoZSBvcHRpb25zIGRlcml2ZWQg
ZnJvbSB0aGUgZ2l2ZW4gaGVhZGVyIGlzCisgICAgICAgIGNvbnNpZGVyZWQgdGhlICJhY3R1YWwi
IHJlc3VsdCBhbmQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0aGUgImV4cGVjdGVkIi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMu
cHk6CisgICAgICAgIChwYXJzZV9hcmdzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVySW5wdXQuX19pbml0X18pOgorICAgICAgICAo
RHJpdmVySW5wdXQuX19yZXByX18pOgorICAgICAgICAoRHJpdmVyLl9jb21tYW5kX2Zyb21fZHJp
dmVyX2lucHV0KToKKyAgICAgICAgUGFzcyB0aGUgY29tcGFyaXNvbiB0ZXN0IGhlYWRlciBhbG9u
ZyB0byB0aGUgdGVzdCBydW5uZXIuCisKKyAgICAgICAgQWxzbywgZml4IGEgbG9uZ3N0YW5kaW5n
IGVycm9yIHdoZXJlIC0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyCisgICAgICAgIGNvdWxk
IGdldCBpbnNlcnRlZCBpbW1lZGlhdGVseSBhZnRlciAtLXBpeGVsLXRlc3QsIGNhdXNpbmcgdGhl
IHRlc3QgcnVubmVyCisgICAgICAgIHRvIGNvbnN1bWUgaXQgYXMgdGhlIGV4cGVjdGVkIGltYWdl
IGhhc2ghIEFuZCBsZWF2ZSBhIGNvbW1lbnQgc28gbm9ib2R5CisgICAgICAgIGVsc2UgaGFzIHRv
IGRlYnVnIHRoaXMgYWdhaW4uLi4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVGVzdENv
bW1hbmQuY3BwOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgICogVGVz
dFJ1bm5lclNoYXJlZC9UZXN0Q29tbWFuZC5oOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQv
VGVzdEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdUUjo6cGFyc2VUZXN0SGVhZGVyU3RyaW5nKToK
KyAgICAgICAgKFdUUjo6cGFyc2VUZXN0SGVhZGVyKToKKyAgICAgICAgKFdUUjo6ZmVhdHVyZURl
ZmF1bHRzRnJvbUNvbXBhcmlzb25UZXN0SGVhZGVyKToKKyAgICAgICAgRmFjdG9yIG91dCB0aGUg
cGFyc2luZyBvZiB0aGUgcGFydCBvZiB0aGUgdGVzdCBoZWFkZXIgaW5zaWRlIHRoZSBbIF0sCisg
ICAgICAgIHNpbmNlIHdlIHVzZSB0aGlzIGZvcm1hdCBmb3IgdGhlIHZhbHVlIG9mIC0tc2VsZi1j
b21wYXJlLXdpdGgtaGVhZGVyIGFzIHdlbGwuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1Rlc3RGZWF0dXJlcy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6dGVzdE9wdGlvbnNGb3JUZXN0IGNvbnN0KToKKyAgICAgICAg
TWVyZ2UgdGhlIGNvbXBhcmlzb24gaGVhZGVyJ3Mgb3B0aW9ucyBpbiB0byB0aGUgdGVzdCBvcHRp
b25zIGJlZm9yZQorICAgICAgICB0aGUgdGVzdCdzIG93biBoZWFkZXIsIHNvIHRoYXQgdGhlIGNv
bXBhcmlzb24gaGVhZGVyIHdpbnMuCisKIDIwMjEtMTEtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1hZ2VEaWZmIG5vIGxvbmdlciBuZWVkcyBh
IC0tdG9sZXJhbmNlIGFyZ3VtZW50LCBhbmQgZml4IHNvbWV0aW1lcy1ibGFjayBkaWZmIGltYWdl
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IDE5NTcwM2Qx
OGJjMDc0Y2NlMDhhOTI5YTMzYWNhMGQ5MzIzNTkxYzMuLjEwZGUzYzAxMjgzZjQyNzIzMDUyMTA3
MTg1MmQ4MDI4YzI3OTczMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5u
ZXIucHkKQEAgLTExMSw2ICsxMTEsOSBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6
CiAgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVv
dXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCwgc2VsZi5fc2hvdWxk
X2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycikKIAogICAgIGRlZiBydW4oc2VsZik6CisgICAg
ICAgIHNlbGZfY29tcGFyaXNvbl9oZWFkZXIgPSBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NlbGZf
Y29tcGFyZV93aXRoX2hlYWRlcicpCisgICAgICAgIGlmIHNlbGZfY29tcGFyaXNvbl9oZWFkZXI6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3NlbGZfY29tcGFyaXNvbl90ZXN0KHNlbGZf
Y29tcGFyaXNvbl9oZWFkZXIpCiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKICAg
ICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignbm9fcmVmX3Rlc3RzJykgb3Igc2Vs
Zi5fb3B0aW9ucy5yZXNldF9yZXN1bHRzOgogICAgICAgICAgICAgICAgIHJlZnRlc3RfdHlwZSA9
IHNldChbcmVmZXJlbmNlX2ZpbGVbMF0gZm9yIHJlZmVyZW5jZV9maWxlIGluIHNlbGYuX3JlZmVy
ZW5jZV9maWxlc10pCkBAIC0zMzYsNiArMzM5LDIxIEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIo
b2JqZWN0KToKICAgICAgICAgcmVmdGVzdF90eXBlID0gc2V0KFtyZWZlcmVuY2VfZmlsZVswXSBm
b3IgcmVmZXJlbmNlX2ZpbGUgaW4gc2VsZi5fcmVmZXJlbmNlX2ZpbGVzXSkKICAgICAgICAgcmV0
dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9pbnB1dCwgdGVzdF9yZXN1bHQuZmFpbHVyZXMsIHRv
dGFsX3Rlc3RfdGltZSArIHRlc3RfcmVzdWx0LnRlc3RfcnVuX3RpbWUsIHRlc3RfcmVzdWx0Lmhh
c19zdGRlcnIsIHJlZnRlc3RfdHlwZT1yZWZ0ZXN0X3R5cGUsIHBpZD10ZXN0X3Jlc3VsdC5waWQs
IHJlZmVyZW5jZXM9cmVmZXJlbmNlX3Rlc3RfbmFtZXMpCiAKKyAgICBkZWYgX3J1bl9zZWxmX2Nv
bXBhcmlzb25fdGVzdChzZWxmLCBoZWFkZXIpOgorICAgICAgICBkcml2ZXJfaW5wdXQgPSBzZWxm
Ll9kcml2ZXJfaW5wdXQoKQorICAgICAgICBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90
ZXN0ID0gVHJ1ZQorCisgICAgICAgIHJlZmVyZW5jZV9vdXRwdXQgPSBzZWxmLl9kcml2ZXIucnVu
X3Rlc3QoZHJpdmVyX2lucHV0LCBzZWxmLl9zdG9wX3doZW5fZG9uZSkKKyAgICAgICAgZHJpdmVy
X2lucHV0LnNlbGZfY29tcGFyaXNvbl9oZWFkZXIgPSBoZWFkZXIKKyAgICAgICAgdGVzdF9vdXRw
dXQgPSBzZWxmLl9kcml2ZXIucnVuX3Rlc3QoZHJpdmVyX2lucHV0LCBzZWxmLl9zdG9wX3doZW5f
ZG9uZSkKKworICAgICAgICB0ZXN0X2Z1bGxfcGF0aCA9IHNlbGYuX3BvcnQuYWJzcGF0aF9mb3Jf
dGVzdChzZWxmLl90ZXN0X25hbWUpCisgICAgICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5fY29tcGFy
ZV9vdXRwdXRfd2l0aF9yZWZlcmVuY2UocmVmZXJlbmNlX291dHB1dCwgdGVzdF9vdXRwdXQsIHRl
c3RfZnVsbF9wYXRoLCBGYWxzZSkKKworICAgICAgICBhc3NlcnQocmVmZXJlbmNlX291dHB1dCkK
KyAgICAgICAgdGVzdF9yZXN1bHRfd3JpdGVyLndyaXRlX3Rlc3RfcmVzdWx0KHNlbGYuX2ZpbGVz
eXN0ZW0sIHNlbGYuX3BvcnQsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCBzZWxmLl90ZXN0X25h
bWUsIHRlc3Rfb3V0cHV0LCByZWZlcmVuY2Vfb3V0cHV0LCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcykK
KyAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fdGVzdF9pbnB1dCwgdGVzdF9yZXN1bHQu
ZmFpbHVyZXMsIHRlc3RfcmVzdWx0LnRlc3RfcnVuX3RpbWUsIHRlc3RfcmVzdWx0Lmhhc19zdGRl
cnIsIHBpZD10ZXN0X3Jlc3VsdC5waWQpCisKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9y
ZWxhdGl2ZV9yZWZlcmVuY2VfcGF0aCh0ZXN0X2Z1bGxfcGF0aCwgcmVmZXJlbmNlX2Z1bGxfcGF0
aCk6CiAgICAgICAgIHRlc3RfZGlyID0gb3MucGF0aC5zcGxpdCh0ZXN0X2Z1bGxfcGF0aClbMF0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5CmluZGV4IDAxYTNlMDRhNTA0OGEzMTA1ZTQ4N2NlYWI4ZTE4NmI5Y2JlZWY4
MzguLjUzZGY5Y2MwNTFmMDM4NTRiMjk1YzEyZWQzNWI0Yzg2MTcwZDU1ZmIgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weQpAQCAtMzQzLDcgKzM0Myw4IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3MpOgogICAgICAgICBv
cHRwYXJzZS5tYWtlX29wdGlvbigKICAgICAgICAgICAgICItLXByZWZlci1pbnRlZ3JhdGVkLWdw
dSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICBoZWxw
PSgiUHJlZmVyIHVzaW5nIHRoZSBsb3dlci1wb3dlciBpbnRlZ3JhdGVkIEdQVSBvbiBhIGR1YWwt
R1BVIHN5c3RlbS4gTm90ZSB0aGF0IG90aGVyIHJ1bm5pbmcgYXBwbGljYXRpb25zIGFuZCB0aGUg
dGVzdHMgdGhlbXNlbHZlcyBjYW4gb3ZlcnJpZGUgdGhpcyByZXF1ZXN0LiIpKSwKLSAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oJy0tc2hvdy13aW5kb3cnLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIHRoZSB0ZXN0IHJ1bm5lciB3aW5kb3cgdmlzaWJs
ZSBkdXJpbmcgdGVzdGluZy4iKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tc2hv
dy13aW5kb3ciLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtl
IHRoZSB0ZXN0IHJ1bm5lciB3aW5kb3cgdmlzaWJsZSBkdXJpbmcgdGVzdGluZy4iKSwKKyAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tc2VsZi1jb21wYXJlLXdpdGgtaGVhZGVyIiwgaGVs
cD0iUnVuIGFsbCB0ZXN0cyBhcyBBL0IgdGVzdHMgYmV0d2VlbiB0aGUgZGVmYXVsdCBjb25maWd1
cmF0aW9uIGFuZCB0aGUgZ2l2ZW4gdGVzdCBmZWF0dXJlcyBoZWFkZXIgKGlnbm9yaW5nIGV4cGVj
dGVkIHJlc3VsdHMpLiIpLAogICAgIF0pKQogCiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25z
LmFwcGVuZCgoIldlYiBQbGF0Zm9ybSBUZXN0IFNlcnZlciBPcHRpb25zIiwgWwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9kcml2ZXIucHkKaW5kZXggNjU2OGZmYTcxNDdkYjdjZTQ4ZWZlOTJhMDYx
Njc4MGIyZTNkMjU4NC4uNDMwNGYwYjI5OTUzYjNiZmNmMTBlOThmNDkxNmNlY2E5YTM2NDUwZiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CkBAIC00NiwxNiArNDYsMTcgQEAg
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIERyaXZlcklucHV0
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dCwgaW1h
Z2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2df
aW5fc3RkZXJyPU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3Rf
bmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBzaG91bGRf
ZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyPU5vbmUsIGFyZ3M9Tm9uZSwgc2VsZl9jb21wYXJp
c29uX2hlYWRlcj1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAg
ICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmltYWdl
X2hhc2ggPSBpbWFnZV9oYXNoCiAgICAgICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0g
c2hvdWxkX3J1bl9waXhlbF90ZXN0CiAgICAgICAgIHNlbGYuc2hvdWxkX2R1bXBfanNjb25zb2xl
bG9nX2luX3N0ZGVyciA9IHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIKICAgICAg
ICAgc2VsZi5hcmdzID0gYXJncyBvciBbXQorICAgICAgICBzZWxmLnNlbGZfY29tcGFyaXNvbl9o
ZWFkZXIgPSBzZWxmX2NvbXBhcmlzb25faGVhZGVyCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgIHJldHVybiAiRHJpdmVySW5wdXQodGVzdF9uYW1lPSd7fScsIHRpbWVvdXQ9e30s
IGltYWdlX2hhc2g9e30sIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD17fSwgc2hvdWxkX2R1bXBfanNj
b25zb2xlbG9nX2luX3N0ZGVycj17fSciLmZvcm1hdChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1l
b3V0LCBzZWxmLmltYWdlX2hhc2gsIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBzZWxmLnNo
b3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIpCisgICAgICAgIHJldHVybiAiRHJpdmVy
SW5wdXQodGVzdF9uYW1lPSd7fScsIHRpbWVvdXQ9e30sIGltYWdlX2hhc2g9e30sIHNob3VsZF9y
dW5fcGl4ZWxfdGVzdD17fSwgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycj17fSwg
c2VsZl9jb21wYXJpc29uX2hlYWRlcj17fSciLmZvcm1hdChzZWxmLnRlc3RfbmFtZSwgc2VsZi50
aW1lb3V0LCBzZWxmLmltYWdlX2hhc2gsIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBzZWxm
LnNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIsIHNlbGYuc2VsZl9jb21wYXJpc29u
X2hlYWRlcikKIAogCiBjbGFzcyBEcml2ZXJPdXRwdXQob2JqZWN0KToKQEAgLTYzMSwxMiArNjMy
LDE3IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICAjICcgaXMgdGhlIHNlcGFyYXRv
ciBiZXR3ZWVuIGFyZ3VtZW50cy4KICAgICAgICAgaWYgc2VsZi5fcG9ydC5zdXBwb3J0c19wZXJf
dGVzdF90aW1lb3V0KCk6CiAgICAgICAgICAgICBjb21tYW5kICs9ICInLS10aW1lb3V0JyVzIiAl
IGRyaXZlcl9pbnB1dC50aW1lb3V0Ci0gICAgICAgIGlmIGRyaXZlcl9pbnB1dC5zaG91bGRfcnVu
X3BpeGVsX3Rlc3Q6Ci0gICAgICAgICAgICBjb21tYW5kICs9ICInLS1waXhlbC10ZXN0IgogICAg
ICAgICBpZiBkcml2ZXJfaW5wdXQuc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycjoK
ICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLWR1bXAtanNjb25zb2xlbG9nLWluLXN0ZGVyciIK
LSAgICAgICAgaWYgZHJpdmVyX2lucHV0LmltYWdlX2hhc2g6Ci0gICAgICAgICAgICBjb21tYW5k
ICs9ICInIiArIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoCisgICAgICAgIGlmIGRyaXZlcl9pbnB1
dC5zZWxmX2NvbXBhcmlzb25faGVhZGVyOgorICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tc2Vs
Zi1jb21wYXJlLXdpdGgtaGVhZGVyJyVzIiAlIGRyaXZlcl9pbnB1dC5zZWxmX2NvbXBhcmlzb25f
aGVhZGVyCisKKyAgICAgICAgIyAtLXBpeGVsLXRlc3QgbXVzdCBiZSB0aGUgbGFzdCBhcmd1bWVu
dCwgYmVjYXVzZSB0aGUgaGFzaCBpcyBvcHRpb25hbCwKKyAgICAgICAgIyBhbmQgYW55IGFyZ3Vt
ZW50IHB1dCBpbiBpdHMgcGxhY2Ugd2lsbCBiZSBpbmNvcnJlY3RseSBjb25zdW1lZCBhcyB0aGUg
aGFzaC4KKyAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKKyAg
ICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCisgICAgICAgICAgICBpZiBkcml2
ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKKyAgICAgICAgICAgICAgICBjb21tYW5kICs9ICInIiArIGRy
aXZlcl9pbnB1dC5pbWFnZV9oYXNoCiAgICAgICAgIHJldHVybiBjb21tYW5kICsgIlxuIgogCiAg
ICAgZGVmIF9yZWFkX2ZpcnN0X2Jsb2NrKHNlbGYsIGRlYWRsaW5lLCB0ZXN0X25hbWUpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0Q29tbWFuZC5jcHAgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmNwcAppbmRleCBiNDczZWRlN2ZlYzliMWIwNmVl
OGIwZDRmZjFhYWEyNDk1MDc5NTFlLi42MmMzZWJmMWNjNDRiNGY4MTg1ZTI4Mzg0MTA0MTdlODgz
NjJhYTMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmNw
cAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmNwcApAQCAtOTgsNiAr
OTgsMTEgQEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlu
cHV0TGluZSkKICAgICAgICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKICAg
ICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICAgICAgICAgIHJlc3Vs
dC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09ICItLXNlbGYtY29tcGFyZS13aXRoLWhlYWRlciIpIHsKKyAgICAgICAgICAgIGlm
ICh0b2tlbml6ZXIuaGFzTmV4dCgpKQorICAgICAgICAgICAgICAgIHJlc3VsdC5zZWxmQ29tcGFy
aXNvbkhlYWRlciA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgZGllKGlucHV0TGluZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoYXJnID09IHN0ZDo6
c3RyaW5nKCItLWR1bXAtanNjb25zb2xlbG9nLWluLXN0ZGVyciIpKQogICAgICAgICAgICAgcmVz
dWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFy
ZyA9PSBzdGQ6OnN0cmluZygiLS1hYnNvbHV0ZVBhdGgiKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVGVzdENvbW1hbmQuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVz
dENvbW1hbmQuaAppbmRleCAyNWUyMWY5OWViMmYwMzQ5ZmJjOGMxZjdjYWUzZWIyYTg4NmNlZGY3
Li5kOGM3MjU4YzBlZTdkMjhiZWY0ZjBjYmNjYzZmM2FjNjVmMDZlNWEzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RDb21tYW5kLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9UZXN0Q29tbWFuZC5oCkBAIC0zNSw2ICszNSw3IEBAIHN0cnVjdCBUZXN0Q29tbWFu
ZCB7CiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwogICAgIHN0ZDo6ZmlsZXN5c3RlbTo6cGF0
aCBhYnNvbHV0ZVBhdGg7CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQaXhlbEhhc2g7CisgICAg
c3RkOjpzdHJpbmcgc2VsZkNvbXBhcmlzb25IZWFkZXI7CiAgICAgV1RGOjpTZWNvbmRzIHRpbWVv
dXQ7CiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBib29sIGR1bXBK
U0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RG
ZWF0dXJlcy5jcHAKaW5kZXggZjMwZWIwNGFhNzczMDA0NmI5MGFlYTI3ZjQ1YzYzMjk4MDcxNDQ3
MS4uODNjNzQ1ZmE0OWM2OTEwODMxZDkyNTI0YTFiMzhjNjA3YzRiMDBkZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmNwcApAQCAtMjQzLDMyICsyNDMsMTAgQEAgYm9vbCBw
YXJzZVRlc3RIZWFkZXJGZWF0dXJlKFRlc3RGZWF0dXJlcyYgZmVhdHVyZXMsIHN0ZDo6c3RyaW5n
IGtleSwgc3RkOjpzdHJpbmcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBUZXN0RmVh
dHVyZXMgcGFyc2VUZXN0SGVhZGVyKHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCBwYXRoLCBjb25zdCBz
dGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJLZXlUeXBlPiYga2V5VHlw
ZU1hcCkKK3N0YXRpYyBUZXN0RmVhdHVyZXMgcGFyc2VUZXN0SGVhZGVyU3RyaW5nKGNvbnN0IHN0
ZDo6c3RyaW5nJiBwYWlyU3RyaW5nLCBzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qg
c3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5
cGVNYXApCiB7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwotICAgIHN0ZDo6ZXJyb3JfY29k
ZSBlYzsKLSAgICBpZiAoIXN0ZDo6ZmlsZXN5c3RlbTo6ZXhpc3RzKHBhdGgsIGVjKSkKLSAgICAg
ICAgcmV0dXJuIGZlYXR1cmVzOwogCi0gICAgc3RkOjppZnN0cmVhbSBmaWxlKHBhdGgpOwotICAg
IGlmICghZmlsZS5nb29kKCkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qgb3BlbiBm
aWxlIHRvIGluc3BlY3QgdGVzdCBoZWFkZXJzIGluICVzIiwgcGF0aC5jX3N0cigpKTsKLSAgICAg
ICAgcmV0dXJuIGZlYXR1cmVzOwotICAgIH0KLQotICAgIHN0ZDo6c3RyaW5nIG9wdGlvbnM7Ci0g
ICAgZ2V0bGluZShmaWxlLCBvcHRpb25zKTsKLSAgICBzdGQ6OnN0cmluZyBiZWdpblN0cmluZygi
d2Via2l0LXRlc3QtcnVubmVyIFsgIik7Ci0gICAgc3RkOjpzdHJpbmcgZW5kU3RyaW5nKCIgXSIp
OwotICAgIHNpemVfdCBiZWdpbkxvY2F0aW9uID0gb3B0aW9ucy5maW5kKGJlZ2luU3RyaW5nKTsK
LSAgICBpZiAoYmVnaW5Mb2NhdGlvbiA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSAgICAgICAgcmV0
dXJuIGZlYXR1cmVzOwotICAgIHNpemVfdCBlbmRMb2NhdGlvbiA9IG9wdGlvbnMuZmluZChlbmRT
dHJpbmcsIGJlZ2luTG9jYXRpb24pOwotICAgIGlmIChlbmRMb2NhdGlvbiA9PSBzdGQ6OnN0cmlu
Zzo6bnBvcykgewotICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5kIGVuZCBvZiB0ZXN0
IGhlYWRlciBpbiAlcyIsIHBhdGguY19zdHIoKSk7Ci0gICAgICAgIHJldHVybiBmZWF0dXJlczsK
LSAgICB9Ci0gICAgc3RkOjpzdHJpbmcgcGFpclN0cmluZyA9IG9wdGlvbnMuc3Vic3RyKGJlZ2lu
TG9jYXRpb24gKyBiZWdpblN0cmluZy5zaXplKCksIGVuZExvY2F0aW9uIC0gKGJlZ2luTG9jYXRp
b24gKyBiZWdpblN0cmluZy5zaXplKCkpKTsKICAgICBzaXplX3QgcGFpclN0YXJ0ID0gMDsKICAg
ICB3aGlsZSAocGFpclN0YXJ0IDwgcGFpclN0cmluZy5zaXplKCkpIHsKICAgICAgICAgc2l6ZV90
IHBhaXJFbmQgPSBwYWlyU3RyaW5nLmZpbmQoIiAiLCBwYWlyU3RhcnQpOwpAQCAtMjkxLDkgKzI2
OSw0NCBAQCBzdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVzdEhlYWRlcihzdGQ6OmZpbGVzeXN0
ZW06OnBhdGggcGF0aCwgY29uc3Qgc3RkOjp1bm9yZAogICAgIHJldHVybiBmZWF0dXJlczsKIH0K
IAorc3RhdGljIFRlc3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOjpmaWxlc3lzdGVtOjpw
YXRoIHBhdGgsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRl
cktleVR5cGU+JiBrZXlUeXBlTWFwKQoreworICAgIHN0ZDo6ZXJyb3JfY29kZSBlYzsKKyAgICBp
ZiAoIXN0ZDo6ZmlsZXN5c3RlbTo6ZXhpc3RzKHBhdGgsIGVjKSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZmlsZShwYXRoKTsKKyAgICBpZiAoIWZpbGUuZ29vZCgp
KSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IG9wZW4gZmlsZSB0byBpbnNwZWN0IHRl
c3QgaGVhZGVycyBpbiAlcyIsIHBhdGguY19zdHIoKSk7CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorCisgICAgc3RkOjpzdHJpbmcgb3B0aW9uczsKKyAgICBnZXRsaW5lKGZpbGUsIG9wdGlv
bnMpOworICAgIHN0ZDo6c3RyaW5nIGJlZ2luU3RyaW5nKCJ3ZWJraXQtdGVzdC1ydW5uZXIgWyAi
KTsKKyAgICBzdGQ6OnN0cmluZyBlbmRTdHJpbmcoIiBdIik7CisgICAgc2l6ZV90IGJlZ2luTG9j
YXRpb24gPSBvcHRpb25zLmZpbmQoYmVnaW5TdHJpbmcpOworICAgIGlmIChiZWdpbkxvY2F0aW9u
ID09IHN0ZDo6c3RyaW5nOjpucG9zKQorICAgICAgICByZXR1cm4geyB9OworICAgIHNpemVfdCBl
bmRMb2NhdGlvbiA9IG9wdGlvbnMuZmluZChlbmRTdHJpbmcsIGJlZ2luTG9jYXRpb24pOworICAg
IGlmIChlbmRMb2NhdGlvbiA9PSBzdGQ6OnN0cmluZzo6bnBvcykgeworICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkIG5vdCBmaW5kIGVuZCBvZiB0ZXN0IGhlYWRlciBpbiAlcyIsIHBhdGguY19zdHIo
KSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorICAgIHN0ZDo6c3RyaW5nIHBhaXJTdHJp
bmcgPSBvcHRpb25zLnN1YnN0cihiZWdpbkxvY2F0aW9uICsgYmVnaW5TdHJpbmcuc2l6ZSgpLCBl
bmRMb2NhdGlvbiAtIChiZWdpbkxvY2F0aW9uICsgYmVnaW5TdHJpbmcuc2l6ZSgpKSk7CisgICAg
cmV0dXJuIHBhcnNlVGVzdEhlYWRlclN0cmluZyhwYWlyU3RyaW5nLCBwYXRoLCBrZXlUeXBlTWFw
KTsKK30KKwogVGVzdEZlYXR1cmVzIGZlYXR1cmVEZWZhdWx0c0Zyb21UZXN0SGVhZGVyRm9yVGVz
dChjb25zdCBUZXN0Q29tbWFuZCYgY29tbWFuZCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0
ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVNYXApCiB7CiAgICAgcmV0dXJu
IHBhcnNlVGVzdEhlYWRlcihjb21tYW5kLmFic29sdXRlUGF0aCwga2V5VHlwZU1hcCk7CiB9CiAK
K1Rlc3RGZWF0dXJlcyBmZWF0dXJlRGVmYXVsdHNGcm9tU2VsZkNvbXBhcmlzb25IZWFkZXIoY29u
c3QgVGVzdENvbW1hbmQmIGNvbW1hbmQsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0
cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlUeXBlTWFwKQoreworICAgIGlmIChjb21tYW5k
LnNlbGZDb21wYXJpc29uSGVhZGVyLmVtcHR5KCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAg
cmV0dXJuIHBhcnNlVGVzdEhlYWRlclN0cmluZyhjb21tYW5kLnNlbGZDb21wYXJpc29uSGVhZGVy
LCBjb21tYW5kLmFic29sdXRlUGF0aCwga2V5VHlwZU1hcCk7CiB9CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuaCBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmgKaW5kZXggZjgyNWEyNzJiZTY1
Zjc1NzZhZWIyYzA5ZWZjNGU5MmViNTU3NTc1ZC4uZTFhN2IxNTU4Y2NlZmRkMDdhZmY5ZWNkMjA2
OGFkODQ3YjNhNGFiNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVh
dHVyZXMuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5oCkBAIC02
OSw1ICs2OSw2IEBAIGVudW0gY2xhc3MgVGVzdEhlYWRlcktleVR5cGUgOiB1aW50OF90IHsKICAg
ICBVbmtub3duCiB9OwogVGVzdEZlYXR1cmVzIGZlYXR1cmVEZWZhdWx0c0Zyb21UZXN0SGVhZGVy
Rm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6
OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+Jik7CitUZXN0RmVhdHVyZXMgZmVhdHVyZURlZmF1
bHRzRnJvbVNlbGZDb21wYXJpc29uSGVhZGVyKGNvbnN0IFRlc3RDb21tYW5kJiwgY29uc3Qgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mKTsKIAogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA4MTM1YWFmNzFj
NjFkYTJhMzkyNTZiYWRmN2U1M2NkMjQ3MzYyOTQwLi42ZDk4OGZiZTdiNTQ1YjBlMDU1NWY2Njdi
ZDFlNDVmMzNlYTNhMGVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtMTMxMSw2ICsxMzExLDcgQEAgVGVzdE9wdGlvbnMgVGVzdENvbnRyb2xsZXI6OnRl
c3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYgY29tbWFuZCkgY29uc3QKICAgICBt
ZXJnZShmZWF0dXJlcywgbV9nbG9iYWxGZWF0dXJlcyk7CiAgICAgbWVyZ2UoZmVhdHVyZXMsIGhh
cmRjb2RlZEZlYXR1cmVzQmFzZWRPblBhdGhGb3JUZXN0KGNvbW1hbmQpKTsKICAgICBtZXJnZShm
ZWF0dXJlcywgcGxhdGZvcm1TcGVjaWZpY0ZlYXR1cmVEZWZhdWx0c0ZvclRlc3QoY29tbWFuZCkp
OworICAgIG1lcmdlKGZlYXR1cmVzLCBmZWF0dXJlRGVmYXVsdHNGcm9tU2VsZkNvbXBhcmlzb25I
ZWFkZXIoY29tbWFuZCwgVGVzdE9wdGlvbnM6OmtleVR5cGVNYXBwaW5nKCkpKTsKICAgICBtZXJn
ZShmZWF0dXJlcywgZmVhdHVyZURlZmF1bHRzRnJvbVRlc3RIZWFkZXJGb3JUZXN0KGNvbW1hbmQs
IFRlc3RPcHRpb25zOjprZXlUeXBlTWFwcGluZygpKSk7CiAgICAgbWVyZ2UoZmVhdHVyZXMsIHBs
YXRmb3JtU3BlY2lmaWNGZWF0dXJlT3ZlcnJpZGVzRGVmYXVsdHNGb3JUZXN0KGNvbW1hbmQpKTsK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>