<?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>105619</bug_id>
          
          <creation_ts>2012-12-20 23:09:52 -0800</creation_ts>
          <short_desc>Remove old-run-webkit-tests support from webkitpy</short_desc>
          <delta_ts>2013-01-02 12:39:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>lforschler</cc>
    
    <cc>roger_fong</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796156</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-20 23:09:52 -0800</bug_when>
    <thetext>Remove old-run-webkit-tests support from webkitpy

It&apos;s just confusing things.  Only Apple Win still uses old-run-webkit-tests, and the Apple-Win EWS does not run tests.

I believe partially-broken NRWT support is at the root of bug 103839, in part because NRWT is currently a second-class &quot;experimental&quot; citizen in the EWS code.  Since NRWT has now long been the default, we should make it a real boy and kill ORWT (since I&apos;m very likely to break it by re-working this code anyway).

At least the following tools will break:
1. sheriff-bot, webkit-patch will no longer understand ORWT results files (from Apple-Win buildbots, etc.)
2. webkit-patch build-and-test (something no one uses) will not work on AppleWin
3. The AppleWin EWS cannot graduate to a testing-EWS w/o moving to NRWT (that&apos;s probably for the best, given how impossibly slow it is already).

There is no urgency to this, but again, I think it&apos;s likely I may break ORWT support in webkitpy by accident as part of fixing bug 103839.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796157</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-20 23:10:56 -0800</bug_when>
    <thetext>I should note that this will *not* affect the buildbots, or those calling run-webkit-tests directly.  Only webkit-patch (and associated commands) which currently know how to run old-run-webkit-tests or interpret its results (as I&apos;ve listed above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796606</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-21 21:02:41 -0800</bug_when>
    <thetext>We could also investigate modifying ORWT to output NRWT-compatible stuff. I don&apos;t know if that&apos;s more or less work than finishing getting NRWT running on win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798773</commentid>
    <comment_count>3</comment_count>
      <attachid>181044</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 12:04:12 -0800</bug_when>
    <thetext>Created attachment 181044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798775</commentid>
    <comment_count>4</comment_count>
      <attachid>181044</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-02 12:07:15 -0800</bug_when>
    <thetext>Comment on attachment 181044
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=181044&amp;action=review

I suspect there is more than this.  :)  But this is a start.

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:88
&gt;          return LayoutTestResults.results_from_string(results_file)

This could call results_from_json directly now, I think.

&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:63
&gt;      # FIXME: run-webkit-tests should store the --exit-after-N-failures value

This seems like this would be trivial for one of us to fix.  I&apos;m kinda surprised this is still here. :(

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:-182
&gt; -            # This differs from ORWT because it does not include WebProcess crashes.

I would leave this in?  I&apos;m not sure if WebKit2 folks care about this or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798782</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 12:18:08 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 181044 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181044&amp;action=review
&gt; 
&gt; I suspect there is more than this.  :)  But this is a start.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:88
&gt; &gt;          return LayoutTestResults.results_from_string(results_file)
&gt; 
&gt; This could call results_from_json directly now, I think.

Searching 1977 files for &quot;results_from_json&quot;

0 matches across 0 files

If you mean ResultsJSONParser.parse_results_json, we could but we&apos;d still need to construct a LayoutTestResults interface to wrap the results.

&gt; &gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:63
&gt; &gt;      # FIXME: run-webkit-tests should store the --exit-after-N-failures value
&gt; 
&gt; This seems like this would be trivial for one of us to fix.  I&apos;m kinda surprised this is still here. :(

Yeah.  I think it might actually be in the JSON already.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:-182
&gt; &gt; -            # This differs from ORWT because it does not include WebProcess crashes.
&gt; 
&gt; I would leave this in?  I&apos;m not sure if WebKit2 folks care about this or not.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798785</commentid>
    <comment_count>6</comment_count>
      <attachid>181045</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 12:18:34 -0800</bug_when>
    <thetext>Created attachment 181045
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798792</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-02 12:20:11 -0800</bug_when>
    <thetext>Thank you.  Related bug 103839 is on my short-list for next week.  (Although you&apos;re welcome to tackle it before then if you are in the mood.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798811</commentid>
    <comment_count>8</comment_count>
      <attachid>181045</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-02 12:39:11 -0800</bug_when>
    <thetext>Comment on attachment 181045
Patch for landing

Clearing flags on attachment: 181045

Committed r138634: &lt;http://trac.webkit.org/changeset/138634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798812</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-02 12:39:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181044</attachid>
            <date>2013-01-02 12:04:12 -0800</date>
            <delta_ts>2013-01-02 12:18:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105619-20130102120120.patch</filename>
            <type>text/plain</type>
            <size>19760</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NjIyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzNjMjQ3YTRkMWI2ZGI5YmQ0ZTRmMzIxMDJhNmYxZmM5
Mjg0NmM5Ny4uN2E2ZTQ0MzI0YzQyNmViY2NhMDNkMGRlNzIyZWFlODA4ZDk3YjYzYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDEzLTAxLTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIG9sZC1ydW4td2Via2l0LXRlc3RzIHN1cHBvcnQgZnJvbSB3ZWJraXRweQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NjE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZW1vdmVzIHN1cHBvcnQgZm9yIHdlYmtpdHB5IHBhcnNpbmcgdGhlCisgICAgICAgIG9sZC1ydW4t
d2Via2l0LXRlc3RzIHJlc3VsdHMgZm9ybWF0LiBUaGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYW55
CisgICAgICAgIHJlYXNvbiB0byBrZWVwIHRoaXMgY29kZSBhcm91bmQgYW55bW9yZSBub3cgdGhh
dCBtb3N0IGJvdHMgaGF2ZQorICAgICAgICBzd2l0Y2hlZCB0byBuZXctcnVuLXdlYmtpdC10ZXN0
cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWls
ZGJvdC5weToKKyAgICAgICAgKEJ1aWxkZXIuZmV0Y2hfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5
OgorICAgICAgICAocGF0aF9mb3JfbGF5b3V0X3Rlc3QpOgorICAgICAgICAoTGF5b3V0VGVzdFJl
c3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0
c19mcm9tX3N0cmluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1
bm5lci5faW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRzKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToKKyAgICAgICAg
KHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0LnRlc3RfbWlzc2luZ19sYXlvdXRfdGVzdF9yZXN1bHRz
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNr
LnB5OgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2gpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5OgorICAgICAgICAo
UXVldWVzVGVzdC5hc3NlcnRfcXVldWVfb3V0cHV0cyk6CisKIDIwMTMtMDEtMDIgIEhlaWtraSBQ
YWFqYW5lbiAgPGhlaWtraS5wYWFqYW5lbkBwYWxtLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0g
QWRkIHNpbXBsZSBVSSB0byBmaW5kIHRleHQgZnJvbSBwYWdlCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3QucHkKaW5kZXggZDY4
MDRkNWI3M2JmOWNiZjk1MmZkYjAxZjI4YjVkY2JjZDVkZTNmZi4uNzViZTBlNzNkODAwYzNlZjk0
YTk0MDEwMDJhN2I2MDIwMTA3ZmJkMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdC5weQpAQCAtODUsMTAgKzg1LDYgQEAg
Y2xhc3MgQnVpbGRlcihvYmplY3QpOgogICAgIGRlZiBmZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRz
KHNlbGYsIHJlc3VsdHNfdXJsKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgY2FjaGUg
dGhhdCB0aGUgcmVzdWx0IHdhcyBhIDQwNCBhbmQgc3RvcCBoaXR0aW5nIHRoZSBuZXR3b3JrLgog
ICAgICAgICByZXN1bHRzX2ZpbGUgPSBOZXR3b3JrVHJhbnNhY3Rpb24oY29udmVydF80MDRfdG9f
Tm9uZT1UcnVlKS5ydW4obGFtYmRhOiBzZWxmLl9mZXRjaF9maWxlX2Zyb21fcmVzdWx0cyhyZXN1
bHRzX3VybCwgImZ1bGxfcmVzdWx0cy5qc29uIikpCi0gICAgICAgIGlmIG5vdCByZXN1bHRzX2Zp
bGU6Ci0gICAgICAgICAgICByZXN1bHRzX2ZpbGUgPSBOZXR3b3JrVHJhbnNhY3Rpb24oY29udmVy
dF80MDRfdG9fTm9uZT1UcnVlKS5ydW4obGFtYmRhOiBzZWxmLl9mZXRjaF9maWxlX2Zyb21fcmVz
dWx0cyhyZXN1bHRzX3VybCwgInJlc3VsdHMuaHRtbCIpKQotCi0gICAgICAgICMgcmVzdWx0c19m
cm9tX3N0cmluZyBhY2NlcHRzIGVpdGhlciBPUldUIGh0bWwgb3IgTlJXVCBqc29uLgogICAgICAg
ICByZXR1cm4gTGF5b3V0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhyZXN1bHRzX2Zp
bGUpCiAKICAgICBkZWYgdXJsX2VuY29kZWRfbmFtZShzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQppbmRleCA3
NDMyMmM3NTdiMTEyZWI0Zjc2NWE0ZTM2ZDZiYWUxYjU3YmU0MmNiLi5iOGNiMTU3NjlmMjQ4Nzdi
N2Q3MDRjZDdhZWM4NmJiMWNmODQwZWJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CkBAIC0yNSw5ICsyNSw2IEBA
CiAjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jIEEgbW9k
dWxlIGZvciBwYXJzaW5nIHJlc3VsdHMuaHRtbCBmaWxlcyBnZW5lcmF0ZWQgYnkgb2xkLXJ1bi13
ZWJraXQtdGVzdHMKLSMgVGhpcyBjbGFzcyBpcyBvbmUgYmlnIGhhY2sgYW5kIG9ubHkgbmVlZHMg
dG8gZXhpc3QgdW50aWwgd2UgdHJhbnNpdGlvbiB0byBuZXctcnVuLXdlYmtpdC10ZXN0cy4KIAog
aW1wb3J0IGxvZ2dpbmcKIApAQCAtNDUsODggKzQyLDYgQEAgZGVmIHBhdGhfZm9yX2xheW91dF90
ZXN0KHRlc3RfbmFtZSk6CiAgICAgcmV0dXJuICJMYXlvdXRUZXN0cy8lcyIgJSB0ZXN0X25hbWUK
IAogCi1jbGFzcyBPUldUUmVzdWx0c0hUTUxQYXJzZXIob2JqZWN0KToKLSAgICAiIiJUaGlzIGNs
YXNzIGtub3dzIGhvdyB0byBwYXJzZSBvbGQtcnVuLXdlYmtpdC10ZXN0cyByZXN1bHRzLmh0bWwg
ZmlsZXMuIiIiCi0KLSAgICBzdGRlcnJfa2V5ID0gdSdUZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0
cHV0OicKLSAgICBmYWlsX2tleSA9IHUnVGVzdHMgd2hlcmUgcmVzdWx0cyBkaWQgbm90IG1hdGNo
IGV4cGVjdGVkIHJlc3VsdHM6JwotICAgIHRpbWVvdXRfa2V5ID0gdSdUZXN0cyB0aGF0IHRpbWVk
IG91dDonCi0gICAgIyBGSVhNRTogVGhpcyBtYXkgbmVlZCB0byBiZSBtYWRlIGF3YXJlIG9mIFdl
YktpdFRlc3RSdW5uZXIgcmVzdWx0cyBmb3IgV2ViS2l0Mi4KLSAgICBjcmFzaF9rZXkgPSB1J1Rl
c3RzIHRoYXQgY2F1c2VkIHRoZSBEdW1wUmVuZGVyVHJlZSB0b29sIHRvIGNyYXNoOicKLSAgICBt
aXNzaW5nX2tleSA9IHUnVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFi
bHkgbmV3KTonCi0gICAgd2VicHJvY2Vzc19jcmFzaF9rZXkgPSB1J1Rlc3RzIHRoYXQgY2F1c2Vk
IHRoZSBXZWIgcHJvY2VzcyB0byBjcmFzaDonCi0KLSAgICBleHBlY3RlZF9rZXlzID0gWwotICAg
ICAgICBzdGRlcnJfa2V5LAotICAgICAgICBmYWlsX2tleSwKLSAgICAgICAgY3Jhc2hfa2V5LAot
ICAgICAgICB3ZWJwcm9jZXNzX2NyYXNoX2tleSwKLSAgICAgICAgdGltZW91dF9rZXksCi0gICAg
ICAgIG1pc3Npbmdfa2V5LAotICAgIF0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBfZmFp
bHVyZXNfZnJvbV9mYWlsX3JvdyhzZWxmLCByb3cpOgotICAgICAgICAjIExvb2sgYXQgYWxsIGFu
Y2hvcnMgaW4gdGhpcyByb3csIGFuZCBndWVzcyB3aGF0IHR5cGUKLSAgICAgICAgIyBvZiBuZXct
cnVuLXdlYmtpdC10ZXN0IGZhaWx1cmVzIHRoZXkgZXF1YXRlIHRvLgotICAgICAgICBmYWlsdXJl
cyA9IHNldCgpCi0gICAgICAgIHRlc3RfbmFtZSA9IE5vbmUKLSAgICAgICAgZm9yIGFuY2hvciBp
biByb3cuZmluZEFsbCgiYSIpOgotICAgICAgICAgICAgYW5jaG9yX3RleHQgPSB1bmljb2RlKGFu
Y2hvci5zdHJpbmcpCi0gICAgICAgICAgICBpZiBub3QgdGVzdF9uYW1lOgotICAgICAgICAgICAg
ICAgIHRlc3RfbmFtZSA9IGFuY2hvcl90ZXh0Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgIGlmIGFuY2hvcl90ZXh0IGluIFsiZXhwZWN0ZWQgaW1hZ2UiLCAiaW1hZ2UgZGlm
ZnMiXSBvciAnJScgaW4gYW5jaG9yX3RleHQ6Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMuYWRk
KHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKCkpCi0gICAgICAgICAgICBl
bGlmIGFuY2hvcl90ZXh0IGluIFsiZXhwZWN0ZWQiLCAiYWN0dWFsIiwgImRpZmYiLCAicHJldHR5
IGRpZmYiXToKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hZGQodGVzdF9mYWlsdXJlcy5GYWls
dXJlVGV4dE1pc21hdGNoKCkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIF9s
b2cud2FybmluZygiVW5oYW5kbGVkIGxpbmsgdGV4dCBpbiByZXN1bHRzLmh0bWwgcGFyc2luZzog
JXMuICBQbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IHdlYmtpdHB5LiIgJSBhbmNob3JfdGV4dCkK
LSAgICAgICAgIyBGSVhNRTogSXRzIHBvc3NpYmxlIHRoZSByb3cgY29udGFpbmVkIG5vIGxpbmtz
IGR1ZSB0byBPUldUIGJyb2tlbmVzcy4KLSAgICAgICAgIyBXZSBzaG91bGQgcHJvYmFibHkgYXNz
dW1lIHNvbWUgdHlwZSBvZiBmYWlsdXJlIGFueXdheS4KLSAgICAgICAgcmV0dXJuIGZhaWx1cmVz
Ci0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2ZhaWx1cmVzX2Zyb21fcm93KGNscywgcm93
LCB0YWJsZV90aXRsZSk6Ci0gICAgICAgIGlmIHRhYmxlX3RpdGxlID09IGNscy5mYWlsX2tleToK
LSAgICAgICAgICAgIHJldHVybiBjbHMuX2ZhaWx1cmVzX2Zyb21fZmFpbF9yb3cocm93KQotICAg
ICAgICBpZiB0YWJsZV90aXRsZSA9PSBjbHMuY3Jhc2hfa2V5OgotICAgICAgICAgICAgcmV0dXJu
IFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVDcmFzaCgpXQotICAgICAgICBpZiB0YWJsZV90aXRsZSA9
PSBjbHMud2VicHJvY2Vzc19jcmFzaF9rZXk6Ci0gICAgICAgICAgICByZXR1cm4gW3Rlc3RfZmFp
bHVyZXMuRmFpbHVyZUNyYXNoKHByb2Nlc3NfbmFtZT0iV2ViUHJvY2VzcyIpXQotICAgICAgICBp
ZiB0YWJsZV90aXRsZSA9PSBjbHMudGltZW91dF9rZXk6Ci0gICAgICAgICAgICByZXR1cm4gW3Rl
c3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKV0KLSAgICAgICAgaWYgdGFibGVfdGl0bGUgPT0g
Y2xzLm1pc3Npbmdfa2V5OgotICAgICAgICAgICAgcmV0dXJuIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVNaXNzaW5nUmVzdWx0KCksIHRlc3RfZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdJbWFnZUhhc2go
KSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0ltYWdlKCldCi0gICAgICAgIHJldHVybiBO
b25lCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3Rlc3RfcmVzdWx0X2Zyb21fcm93KGNs
cywgcm93LCB0YWJsZV90aXRsZSk6Ci0gICAgICAgIHRlc3RfbmFtZSA9IHVuaWNvZGUocm93LmZp
bmQoImEiKS5zdHJpbmcpCi0gICAgICAgIGZhaWx1cmVzID0gY2xzLl9mYWlsdXJlc19mcm9tX3Jv
dyhyb3csIHRhYmxlX3RpdGxlKQotICAgICAgICAjIFRlc3RSZXN1bHQgaXMgYSBjbGFzcyBkZXNp
Z25lZCB0byB3b3JrIHdpdGggbmV3LXJ1bi13ZWJraXQtdGVzdHMuCi0gICAgICAgICMgb2xkLXJ1
bi13ZWJraXQtdGVzdHMgZG9lcyBub3Qgc2F2ZSBxdWl0ZSBlbm91Z2ggaW5mb3JtYXRpb24gaW4g
cmVzdWx0cy5odG1sIGZvciB1cyB0byBwYXJzZS4KLSAgICAgICAgIyBGSVhNRTogSXQncyB1bmNs
ZWFyIGlmIHRlc3RfbmFtZSBzaG91bGQgaW5jbHVkZSBMYXlvdXRUZXN0cyBvciBub3QuCi0gICAg
ICAgIHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0X25hbWUsIGZhaWx1cmVzKQot
Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9wYXJzZV9yZXN1bHRzX3RhYmxlKGNscywgdGFi
bGUpOgotICAgICAgICB0YWJsZV90aXRsZSA9IHVuaWNvZGUodGFibGUuZmluZFByZXZpb3VzU2li
bGluZygicCIpLnN0cmluZykKLSAgICAgICAgaWYgdGFibGVfdGl0bGUgbm90IGluIGNscy5leHBl
Y3RlZF9rZXlzOgotICAgICAgICAgICAgIyBUaGlzIEV4Y2VwdGlvbiBzaG91bGQgb25seSBldmVy
IGJlIGhpdCBpZiBydW4td2Via2l0LXRlc3RzIGNoYW5nZXMgaXRzIHJlc3VsdHMuaHRtbCBmb3Jt
YXQuCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlVuaGFuZGxlZCB0aXRsZTogJXMiICUg
dGFibGVfdGl0bGUpCi0gICAgICAgICMgSWdub3JlIHN0ZGVyciBmYWlsdXJlcy4gIEV2ZXJ5b25l
IGlnbm9yZXMgdGhlbSBhbnl3YXkuCi0gICAgICAgIGlmIHRhYmxlX3RpdGxlID09IGNscy5zdGRl
cnJfa2V5OgotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgICMgRklYTUU6IFdlIG1pZ2h0
IGVuZCB3aXRoIHR3byBUZXN0UmVzdWx0cyBvYmplY3QgZm9yIHRoZSBzYW1lIHRlc3QgaWYgaXQg
YXBwZWFycyBpbiBtb3JlIHRoYW4gb25lIHJvdy4KLSAgICAgICAgcmV0dXJuIFtjbHMuX3Rlc3Rf
cmVzdWx0X2Zyb21fcm93KHJvdywgdGFibGVfdGl0bGUpIGZvciByb3cgaW4gdGFibGUuZmluZEFs
bCgidHIiKV0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZV9yZXN1bHRzX2h0bWwo
Y2xzLCBwYWdlKToKLSAgICAgICAgdGFibGVzID0gQmVhdXRpZnVsU291cChwYWdlKS5maW5kQWxs
KCJ0YWJsZSIpCi0gICAgICAgIHJldHVybiBzdW0oW2Nscy5fcGFyc2VfcmVzdWx0c190YWJsZSh0
YWJsZSkgZm9yIHRhYmxlIGluIHRhYmxlc10sIFtdKQotCi0KICMgRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHVuaWZpZWQgd2l0aCBSZXN1bHRzU3VtbWFyeSBvciBvdGhlciBOUldUIGxheW91dCB0ZXN0
cyBjb2RlCiAjIGluIHRoZSBsYXlvdXRfdGVzdHMgcGFja2FnZS4KICMgVGhpcyBkb2Vzbid0IGJl
bG9uZyBpbiBjb21tb24ubmV0LCBidXQgd2UgZG9uJ3QgaGF2ZSBhIGJldHRlciBwbGFjZSBmb3Ig
aXQgeWV0LgpAQCAtMTM1LDEyICs1MCw4IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzKG9iamVj
dCk6CiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgogICAgICAgICBp
ZiBub3Qgc3RyaW5nOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgIyBGb3Igbm93
IHdlIHRyeSB0byBwYXJzZSBmaXJzdCBhcyBqc29uLCB0aGVuIGFzIHJlc3VsdHMuaHRtbAotICAg
ICAgICAjIGV2ZW50dWFsbHkgd2Ugd2lsbCByZW1vdmUgdGhlIGh0bWwgZmFsbGJhY2sgc3VwcG9y
dC4KICAgICAgICAgdGVzdF9yZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0
c19qc29uKHN0cmluZykKICAgICAgICAgaWYgbm90IHRlc3RfcmVzdWx0czoKLSAgICAgICAgICAg
IHRlc3RfcmVzdWx0cyA9IE9SV1RSZXN1bHRzSFRNTFBhcnNlci5wYXJzZV9yZXN1bHRzX2h0bWwo
c3RyaW5nKQotICAgICAgICBpZiBub3QgdGVzdF9yZXN1bHRzOgogICAgICAgICAgICAgcmV0dXJu
IE5vbmUKICAgICAgICAgcmV0dXJuIGNscyh0ZXN0X3Jlc3VsdHMpCiAKQEAgLTE1MCw3ICs2MSw3
IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3VuaXRf
dGVzdF9mYWlsdXJlcyA9IFtdCiAKICAgICAjIEZJWE1FOiBydW4td2Via2l0LXRlc3RzIHNob3Vs
ZCBzdG9yZSB0aGUgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgdmFsdWUKLSAgICAjIChvciBzb21l
IGluZGljYXRpb24gb2YgZWFybHkgZXhpdCkgc29tZXdoZXJlIGluIHRoZSByZXN1bHRzLmh0bWwv
cmVzdWx0cy5qc29uCisgICAgIyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4aXQpIHNv
bWV3aGVyZSBpbiB0aGUgcmVzdWx0cy5qc29uCiAgICAgIyBmaWxlLiAgVW50aWwgaXQgZG9lcywg
Y2FsbGVycyBzaG91bGQgc2V0IHRoZSBsaW1pdCB0bwogICAgICMgLS1leGl0LWFmdGVyLU4tZmFp
bHVyZXMgdmFsdWUgdXNlZCBpbiB0aGF0IHJ1bi4gIENvbnN1bWVycyBvZiBMYXlvdXRUZXN0UmVz
dWx0cwogICAgICMgbWF5IHVzZSB0aGF0IHZhbHVlIHRvIGtub3cgaWYgYWJzZW5jZSBmcm9tIHRo
ZSBmYWlsdXJlIGxpc3QgbWVhbnMgUEFTUy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQpp
bmRleCA0MTMxYmRmODU0ODZjMWNiMDZiMTU4MWU2Y2M2MTcyNGY4OTg0NGQxLi5mYzAyMzcyZjAw
NTYwMjNhZmQ0MTQ1YWVjMmIyNTRlODgyNjFlMjk2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0
ZXN0LnB5CkBAIC0yOCwxMDYgKzI4LDE0IEBACiAKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1
bHRzLCBPUldUUmVzdWx0c0hUTUxQYXJzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlv
dXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5
LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVhdXRpZnVsU291cAogCiAKLWNsYXNz
IE9SV1RSZXN1bHRzSFRNTFBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIF9leGFt
cGxlX3Jlc3VsdHNfaHRtbCA9ICIiIgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5MYXlvdXQgVGVz
dCBSZXN1bHRzPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGVzdHMgdGhhdCBoYWQgc3Rk
ZXJyIG91dHB1dDo8L3A+Ci08dGFibGU+Ci08dHI+Ci08dGQ+PGEgaHJlZj0iL3Zhci9saWIvYnVp
bGRib3QvYnVpbGQvZ3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVpbGQvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbCI+YWNjZXNzaWJpbGl0eS9h
cmlhLWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbDwvYT48L3RkPgotPHRkPjxhIGhyZWY9ImFj
Y2Vzc2liaWxpdHkvYXJpYS1hY3RpdmVkZXNjZW5kYW50LWNyYXNoLXN0ZGVyci50eHQiPnN0ZGVy
cjwvYT48L3RkPgotPC90cj4KLTx0ZD48YSBocmVmPSIvdmFyL2xpYi9idWlsZGJvdC9idWlsZC9n
dGstbGludXgtNjQtcmVsZWFzZS9idWlsZC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NhbnZhcy1yZW1vdGUtcmVhZC1zdmctaW1hZ2UuaHRtbCI+aHR0cC90ZXN0cy9zZWN1cml0eS9j
YW52YXMtcmVtb3RlLXJlYWQtc3ZnLWltYWdlLmh0bWw8L2E+PC90ZD4KLTx0ZD48YSBocmVmPSJo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1zdmctaW1hZ2Utc3RkZXJyLnR4
dCI+c3RkZXJyPC9hPjwvdGQ+Ci08L3RyPgotPC90YWJsZT48cD5UZXN0cyB0aGF0IGhhZCBubyBl
eHBlY3RlZCByZXN1bHRzIChwcm9iYWJseSBuZXcpOjwvcD4KLTx0YWJsZT4KLTx0cj4KLTx0ZD48
YSBocmVmPSIvdmFyL2xpYi9idWlsZGJvdC9idWlsZC9ndGstbGludXgtNjQtcmVsZWFzZS9idWls
ZC9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVu
dC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwiPmZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWlu
LW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbDwvYT48L3RkPgotPHRkPjxhIGhyZWY9
ImZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVs
ZW1lbnQtYWN0dWFsLnR4dCI+cmVzdWx0PC9hPjwvdGQ+Ci08L3RyPgotPC90YWJsZT48L2JvZHk+
Ci08L2h0bWw+Ci0iIiIKLQotICAgIF9leGFtcGxlX3Jlc3VsdHNfaHRtbF93aXRoX2ZhaWxpbmdf
dGVzdHMgPSAiIiIKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+TGF5b3V0IFRlc3QgUmVzdWx0czwv
dGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRlc3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBt
YXRjaCBleHBlY3RlZCByZXN1bHRzOjwvcD4KLTx0YWJsZT4KLTx0cj4KLTx0ZD48YSBocmVmPSJo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2V4cG9ydC85MTI0NS90cnVuay9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQtcGx1Z2luLmh0bWwiPmNvbXBvc2l0aW5nL3BsdWdp
bnMvY29tcG9zaXRlZC1wbHVnaW4uaHRtbDwvYT48L3RkPgotPHRkPgotPGEgaHJlZj0iY29tcG9z
aXRpbmcvcGx1Z2lucy9jb21wb3NpdGVkLXBsdWdpbi1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9h
PgotPC90ZD4KLTx0ZD4KLTxhIGhyZWY9ImNvbXBvc2l0aW5nL3BsdWdpbnMvY29tcG9zaXRlZC1w
bHVnaW4tYWN0dWFsLnR4dCI+YWN0dWFsPC9hPgotPC90ZD4KLTx0ZD4KLTxhIGhyZWY9ImNvbXBv
c2l0aW5nL3BsdWdpbnMvY29tcG9zaXRlZC1wbHVnaW4tZGlmZnMudHh0Ij5kaWZmPC9hPgotPC90
ZD4KLTx0ZD4KLTxhIGhyZWY9ImNvbXBvc2l0aW5nL3BsdWdpbnMvY29tcG9zaXRlZC1wbHVnaW4t
cHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+Ci08L3RkPgotPC90cj4KLTwvdGFibGU+
Ci08cD5UZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0cHV0OjwvcD4KLTx0YWJsZT4KLTx0cj4KLTx0
ZD48YSBocmVmPSIvdmFyL2xpYi9idWlsZGJvdC9idWlsZC9ndGstbGludXgtNjQtcmVsZWFzZS9i
dWlsZC9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtYWN0aXZlZGVzY2VuZGFudC1jcmFz
aC5odG1sIj5hY2Nlc3NpYmlsaXR5L2FyaWEtYWN0aXZlZGVzY2VuZGFudC1jcmFzaC5odG1sPC9h
PjwvdGQ+Ci08dGQ+PGEgaHJlZj0iYWNjZXNzaWJpbGl0eS9hcmlhLWFjdGl2ZWRlc2NlbmRhbnQt
Y3Jhc2gtc3RkZXJyLnR4dCI+c3RkZXJyPC9hPjwvdGQ+Ci08L3RyPgotPHRkPjxhIGhyZWY9Ii92
YXIvbGliL2J1aWxkYm90L2J1aWxkL2d0ay1saW51eC02NC1yZWxlYXNlL2J1aWxkL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXN2Zy1pbWFnZS5odG1s
Ij5odHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1zdmctaW1hZ2UuaHRtbDwv
YT48L3RkPgotPHRkPjxhIGhyZWY9Imh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1y
ZWFkLXN2Zy1pbWFnZS1zdGRlcnIudHh0Ij5zdGRlcnI8L2E+PC90ZD4KLTwvdHI+Ci08L3RhYmxl
PjxwPlRlc3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldyk6PC9w
PgotPHRhYmxlPgotPHRyPgotPHRkPjxhIGhyZWY9Ii92YXIvbGliL2J1aWxkYm90L2J1aWxkL2d0
ay1saW51eC02NC1yZWxlYXNlL2J1aWxkL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9uby1jYXJl
dC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbCI+ZmFzdC9yZXBh
aW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNvbnRlbnQtZWRpdGFibGUtZWxlbWVudC5odG1s
PC9hPjwvdGQ+Ci08dGQ+PGEgaHJlZj0iZmFzdC9yZXBhaW50L25vLWNhcmV0LXJlcGFpbnQtaW4t
bm9uLWNvbnRlbnQtZWRpdGFibGUtZWxlbWVudC1hY3R1YWwudHh0Ij5yZXN1bHQ8L2E+PC90ZD4K
LTwvdHI+Ci08L3RhYmxlPjwvYm9keT4KLTwvaHRtbD4KLSIiIgotCi0gICAgZGVmIHRlc3RfcGFy
c2VfbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9m
YWlsdXJlcy5GYWlsdXJlTWlzc2luZ1Jlc3VsdCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNz
aW5nSW1hZ2VIYXNoKCksIHRlc3RfZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdJbWFnZSgpXQotICAg
ICAgICB0ZXN0bmFtZSA9ICdmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29u
dGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwnCi0gICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBb
dGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdG5hbWUsIGZhaWx1cmVzKV0KLQotICAgICAgICBy
ZXN1bHRzID0gT1JXVFJlc3VsdHNIVE1MUGFyc2VyLnBhcnNlX3Jlc3VsdHNfaHRtbChzZWxmLl9l
eGFtcGxlX3Jlc3VsdHNfaHRtbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9y
ZXN1bHRzLCByZXN1bHRzKQotCi0KLSAgICBkZWYgdGVzdF9mYWlsdXJlc19mcm9tX2ZhaWxfcm93
KHNlbGYpOgotICAgICAgICByb3cgPSBCZWF1dGlmdWxTb3VwKCI8dHI+PHRkPjxhPnRlc3QuaG1s
PC9hPjwvdGQ+PHRkPjxhPmV4cGVjdGVkIGltYWdlPC9hPjwvdGQ+PHRkPjxhPjI1JTwvYT48L3Rk
PjwvdHI+IikKLSAgICAgICAgdGVzdF9uYW1lID0gdW5pY29kZShyb3cuZmluZCgiYSIpLnN0cmlu
ZykKLSAgICAgICAgIyBFdmVuIGlmIHRoZSBjYWxsZXIgaGFzIGFscmVhZHkgZm91bmQgdGhlIHRl
c3QgbmFtZSwgZmluZEFsbCBpbnNpZGUgX2ZhaWx1cmVzX2Zyb21fZmFpbF9yb3cgd2lsbCBzZWUg
aXQgYWdhaW4uCi0gICAgICAgIGZhaWx1cmVzID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRw
dXRzKHNlbGYsIE9SV1RSZXN1bHRzSFRNTFBhcnNlci5fZmFpbHVyZXNfZnJvbV9mYWlsX3Jvdywg
W3Jvd10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZhaWx1cmVzKSwgMSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNvcnRlZChmYWlsdXJlcylbMF0pLCB0ZXN0X2ZhaWx1
cmVzLkZhaWx1cmVJbWFnZUhhc2hNaXNtYXRjaCkKLQotICAgICAgICByb3cgPSBCZWF1dGlmdWxT
b3VwKCI8dHI+PHRkPjxhPnRlc3QuaG1sPC9hPjxhPmZvbzwvYT48L3RkPjwvdHI+IikKLSAgICAg
ICAgZXhwZWN0ZWRfbG9ncyA9ICJVbmhhbmRsZWQgbGluayB0ZXh0IGluIHJlc3VsdHMuaHRtbCBw
YXJzaW5nOiBmb28uICBQbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IHdlYmtpdHB5LlxuIgotICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgT1JXVFJlc3VsdHNIVE1M
UGFyc2VyLl9mYWlsdXJlc19mcm9tX2ZhaWxfcm93LCBbcm93XSwgZXhwZWN0ZWRfbG9ncz1leHBl
Y3RlZF9sb2dzKQotCi0KIGNsYXNzIExheW91dFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0KICAgICBkZWYgdGVzdF9zZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToKICAg
ICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKFtdKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCBOb25lKQpAQCAtMTM3LDEwICs0
NSwzIEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5vbmUpLCBOb25l
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcoIiIpLCBOb25lKQotICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhPUldUUmVzdWx0c0hUTUxQYXJzZXJUZXN0Ll9leGFtcGxlX3Jl
c3VsdHNfaHRtbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0cy5mYWlsaW5n
X3Rlc3RzKCkpLCAxKQotCi0gICAgZGVmIHRlc3RfdGVzdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBl
cyhzZWxmKToKLSAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcoT1JXVFJlc3VsdHNIVE1MUGFyc2VyVGVzdC5fZXhhbXBsZV9yZXN1bHRzX2h0bWxf
d2l0aF9mYWlsaW5nX3Rlc3RzKQotICAgICAgICBmYWlsaW5nX3Rlc3RzID0gcmVzdWx0cy50ZXN0
c19tYXRjaGluZ19mYWlsdXJlX3R5cGVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0
Y2hdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHRzLmZhaWxpbmdfdGVzdHMo
KSksIDIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKaW5kZXggNWY5
YTMyNDcxYmFkMWVmNTYyYzk2ZjI5NzE5ZDFmMzQ5ZDg1MDJkZS4uYmE2NTI5YTEzZDg2MzJjNjY2
NmUyN2QzNTQwMmMxMTg1NzFhYmQ5MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0
X3J1bm5lci5weQpAQCAtMTc5LDcgKzE3OSw2IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZXhpdF9hZnRlcl9uX2NyYXNoZXNfb3Jf
dGltZW91dHMsCiAgICAgICAgICAgICBydW5fcmVzdWx0cy51bmV4cGVjdGVkX2NyYXNoZXMgKyBy
dW5fcmVzdWx0cy51bmV4cGVjdGVkX3RpbWVvdXRzLAogICAgICAgICAgICAgcnVuX3Jlc3VsdHMs
Ci0gICAgICAgICAgICAjIFRoaXMgZGlmZmVycyBmcm9tIE9SV1QgYmVjYXVzZSBpdCBkb2VzIG5v
dCBpbmNsdWRlIFdlYlByb2Nlc3MgY3Jhc2hlcy4KICAgICAgICAgICAgICJFeGl0aW5nIGVhcmx5
IGFmdGVyICVkIGNyYXNoZXMgYW5kICVkIHRpbWVvdXRzLiIgJSAocnVuX3Jlc3VsdHMudW5leHBl
Y3RlZF9jcmFzaGVzLCBydW5fcmVzdWx0cy51bmV4cGVjdGVkX3RpbWVvdXRzKSkKIAogICAgIGRl
ZiBfdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQoc2VsZiwgcnVuX3Jlc3VsdHMsIHJlc3VsdCk6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVl
dGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IDIyMTFiMWRlMDIyNGE5MDhhMTQyNjQyOWFlNTE3
OGVkNGFlNDQxOTMuLjNlM2ZhODhmNTNkOWE5MDAxNjYzNWMyNzgxM2NlMzA2MjU1N2FkOWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNr
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0yODAsNyArMjgwLDcgQEAgY29tbWFuZF9mYWlsZWQ6
IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlwdF9l
cnJvcj0nTU8KICAgICAgICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIHRlc3RzIGZhaWx1cmUiKSwK
ICAgICAgICAgXSkKICAgICAgICAgIyBDb21taXRRdWV1ZVRhc2sgd2lsbCBvbmx5IHJlcG9ydCBm
bGFreSB0ZXN0cyBpZiB3ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCi0gICAgICAgICMgcmVzdWx0cy5o
dG1sIGFuZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1bHRzIG9iamVjdCwgc28gd2UgZmFrZSBv
bmUuCisgICAgICAgICMgcmVzdWx0cy5qc29uIGFuZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1
bHRzIG9iamVjdCwgc28gd2UgZmFrZSBvbmUuCiAgICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jl
c3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQogICAgICAgICBleHBlY3RlZF9s
b2dzID0gIiIicnVuX3dlYmtpdF9wYXRjaDogWydjbGVhbiddCiBjb21tYW5kX3Bhc3NlZDogc3Vj
Y2Vzc19tZXNzYWdlPSdDbGVhbmVkIHdvcmtpbmcgZGlyZWN0b3J5JyBwYXRjaD0nMTAwMDAnCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1
bHRzcmVhZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9s
YXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQppbmRleCA2MDc5NjMyYmQxZDdkZGU1
ZDgyYzA3MmE5MjhmN2MzYzQ0YWQwODkzLi4xM2I5ODMyYzg2YzMyNDc4MzdjYTMwYjFkYTYzYWUx
YjU3MDg2Mjc3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xh
eW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTQ2
LDcgKzQ2LDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdCBvdXIgZmlsZXN5c3RlbSBtb2NrIGZ1
bmN0aW9ucyBhcyB3ZSBleHBlY3QuCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3Is
IHRvb2wuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSwgbGF5b3V0X3Rlc3RzX3Jlc3VsdHNfcGF0
aCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgdG9vbC5maWxlc3lzdGVtLnJl
YWRfdGV4dF9maWxlLCB1bml0X3Rlc3RzX3Jlc3VsdHNfcGF0aCkKLSAgICAgICAgIyBsYXlvdXRf
dGVzdF9yZXN1bHRzIHNob3VsZG4ndCByYWlzZSBldmVuIGlmIHRoZSByZXN1bHRzLmh0bWwgZmls
ZSBpcyBtaXNzaW5nLgorICAgICAgICAjIGxheW91dF90ZXN0X3Jlc3VsdHMgc2hvdWxkbid0IHJh
aXNlIGV2ZW4gaWYgdGhlIHJlc3VsdHMuanNvbiBmaWxlIGlzIG1pc3NpbmcuCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkKIAogICAgIGRlZiB0ZXN0X2Ny
ZWF0ZV91bml0X3Rlc3RfcmVzdWx0cyhzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IGNkZTFjODQyZTkwMWRm
ZjQwYmMwOTI3NmVjY2I4OGRlMTQ4Mzg1NmIuLmIwMWM2YzdlMjBlZTllMTNiYjczYjEwMzE2Zjhm
NDIzOGM0YzU2ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
cGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMTkyLDcgKzE5Miw3IEBAIGNsYXNzIFBhdGNoQW5h
bHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgICAgIGlm
IHNlbGYuX3Rlc3QoKToKLSAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYg
d2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5odG1sIGFuZCBhcmNoaXZpbmcg
cmVzdWx0cy4KKyAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2Vy
ZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0
cy4KICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZToKICAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0
cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCiAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVldWVzdGVzdC5weQppbmRleCAzMTRhNjQwMjE4ZmQzNWE1NjFhNmY1YmQyYmIxNGFj
NGEwNWE2MGY4Li4wZjdjNGVjZDQyZjI1YmI3ZmNlZjg5ZDJiZWIxYjU3NzMzNjBiNDQ3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzdGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzdGVzdC5w
eQpAQCAtNzksNyArNzksNyBAQCBjbGFzcyBRdWV1ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCiAgICAgICAgICAgICAjIFRoaXMgaXMgYSBo
YWNrIHRvIG1ha2UgaXQgZWFzeSBmb3IgY2FsbGVycyB0byBub3QgaGF2ZSB0byBzZXR1cCBhIGN1
c3RvbSBNb2NrRmlsZVN5c3RlbSBqdXN0IHRvIHRlc3QgdGhlIGNvbW1pdC1xdWV1ZQogICAgICAg
ICAgICAgIyB0aGUgY3EgdHJpZXMgdG8gcmVhZCB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0cywgYW5k
IHdpbGwgaGl0IGEgS2V5RXJyb3IgaW4gTW9ja0ZpbGVTeXN0ZW0gaWYgd2UgZG9uJ3QgZG8gdGhp
cy4KLSAgICAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJy9tb2NrLXJl
c3VsdHMvcmVzdWx0cy5odG1sJywgIiIpCisgICAgICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3Jp
dGVfdGV4dF9maWxlKCcvbW9jay1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uJywgIiIpCiAgICAg
ICAgIGlmIG5vdCBleHBlY3RlZF9zdGRvdXQ6CiAgICAgICAgICAgICBleHBlY3RlZF9zdGRvdXQg
PSB7fQogICAgICAgICBpZiBub3QgZXhwZWN0ZWRfc3RkZXJyOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181045</attachid>
            <date>2013-01-02 12:18:34 -0800</date>
            <delta_ts>2013-01-02 12:39:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105619-20130102121541.patch</filename>
            <type>text/plain</type>
            <size>18714</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NjIyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzNjMjQ3YTRkMWI2ZGI5YmQ0ZTRmMzIxMDJhNmYxZmM5
Mjg0NmM5Ny4uOGNhY2I2NGZjNjFhYjlhZDRiMDA2ZTkwMjQ3NTcwNGVkOTAzMGE5NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEzLTAxLTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIG9sZC1ydW4td2Via2l0LXRlc3RzIHN1cHBvcnQgZnJvbSB3ZWJraXRweQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NjE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1v
dmVzIHN1cHBvcnQgZm9yIHdlYmtpdHB5IHBhcnNpbmcgdGhlCisgICAgICAgIG9sZC1ydW4td2Vi
a2l0LXRlc3RzIHJlc3VsdHMgZm9ybWF0LiBUaGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYW55Cisg
ICAgICAgIHJlYXNvbiB0byBrZWVwIHRoaXMgY29kZSBhcm91bmQgYW55bW9yZSBub3cgdGhhdCBt
b3N0IGJvdHMgaGF2ZQorICAgICAgICBzd2l0Y2hlZCB0byBuZXctcnVuLXdlYmtpdC10ZXN0cy4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJv
dC5weToKKyAgICAgICAgKEJ1aWxkZXIuZmV0Y2hfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5Ogor
ICAgICAgICAocGF0aF9mb3JfbGF5b3V0X3Rlc3QpOgorICAgICAgICAoTGF5b3V0VGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cyk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19m
cm9tX3N0cmluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2tfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFpbHVyZSk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3Jl
YWRlcl91bml0dGVzdC5weToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzUmVhZGVyVGVzdC50
ZXN0X21pc3NpbmdfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoQW5hbHlz
aXNUYXNrLl90ZXN0X3BhdGNoKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVldWVzdGVzdC5weToKKyAgICAgICAgKFF1ZXVlc1Rlc3QuYXNzZXJ0X3F1ZXVlX291
dHB1dHMpOgorCiAyMDEzLTAxLTAyICBIZWlra2kgUGFhamFuZW4gIDxoZWlra2kucGFhamFuZW5A
cGFsbS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEFkZCBzaW1wbGUgVUkgdG8gZmluZCB0ZXh0
IGZyb20gcGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1aWxkYm90L2J1aWxkYm90LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1aWxkYm90L2J1aWxkYm90LnB5CmluZGV4IGQ2ODA0ZDViNzNiZjljYmY5NTJmZGIwMWYyOGI1
ZGNiY2Q1ZGUzZmYuLjc1YmUwZTczZDgwMGMzZWY5NGE5NDAxMDAyYTdiNjAyMDEwN2ZiZDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWls
ZGJvdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3Qv
YnVpbGRib3QucHkKQEAgLTg1LDEwICs4NSw2IEBAIGNsYXNzIEJ1aWxkZXIob2JqZWN0KToKICAg
ICBkZWYgZmV0Y2hfbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmLCByZXN1bHRzX3VybCk6CiAgICAg
ICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGNhY2hlIHRoYXQgdGhlIHJlc3VsdCB3YXMgYSA0MDQg
YW5kIHN0b3AgaGl0dGluZyB0aGUgbmV0d29yay4KICAgICAgICAgcmVzdWx0c19maWxlID0gTmV0
d29ya1RyYW5zYWN0aW9uKGNvbnZlcnRfNDA0X3RvX05vbmU9VHJ1ZSkucnVuKGxhbWJkYTogc2Vs
Zi5fZmV0Y2hfZmlsZV9mcm9tX3Jlc3VsdHMocmVzdWx0c191cmwsICJmdWxsX3Jlc3VsdHMuanNv
biIpKQotICAgICAgICBpZiBub3QgcmVzdWx0c19maWxlOgotICAgICAgICAgICAgcmVzdWx0c19m
aWxlID0gTmV0d29ya1RyYW5zYWN0aW9uKGNvbnZlcnRfNDA0X3RvX05vbmU9VHJ1ZSkucnVuKGxh
bWJkYTogc2VsZi5fZmV0Y2hfZmlsZV9mcm9tX3Jlc3VsdHMocmVzdWx0c191cmwsICJyZXN1bHRz
Lmh0bWwiKSkKLQotICAgICAgICAjIHJlc3VsdHNfZnJvbV9zdHJpbmcgYWNjZXB0cyBlaXRoZXIg
T1JXVCBodG1sIG9yIE5SV1QganNvbi4KICAgICAgICAgcmV0dXJuIExheW91dFRlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcocmVzdWx0c19maWxlKQogCiAgICAgZGVmIHVybF9lbmNvZGVk
X25hbWUoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKaW5kZXggNzQzMjJjNzU3YjExMmViNGY3NjVhNGUzNmQ2
YmFlMWI1N2JlNDJjYi4uYjhjYjE1NzY5ZjI0ODc3YjdkNzA0Y2Q3YWVjODZiYjFjZjg0MGViZiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3Ry
ZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0
ZXN0cmVzdWx0cy5weQpAQCAtMjUsOSArMjUsNiBAQAogIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIyBBIG1vZHVsZSBmb3IgcGFyc2luZyByZXN1bHRzLmh0
bWwgZmlsZXMgZ2VuZXJhdGVkIGJ5IG9sZC1ydW4td2Via2l0LXRlc3RzCi0jIFRoaXMgY2xhc3Mg
aXMgb25lIGJpZyBoYWNrIGFuZCBvbmx5IG5lZWRzIHRvIGV4aXN0IHVudGlsIHdlIHRyYW5zaXRp
b24gdG8gbmV3LXJ1bi13ZWJraXQtdGVzdHMuCiAKIGltcG9ydCBsb2dnaW5nCiAKQEAgLTQ1LDg4
ICs0Miw2IEBAIGRlZiBwYXRoX2Zvcl9sYXlvdXRfdGVzdCh0ZXN0X25hbWUpOgogICAgIHJldHVy
biAiTGF5b3V0VGVzdHMvJXMiICUgdGVzdF9uYW1lCiAKIAotY2xhc3MgT1JXVFJlc3VsdHNIVE1M
UGFyc2VyKG9iamVjdCk6Ci0gICAgIiIiVGhpcyBjbGFzcyBrbm93cyBob3cgdG8gcGFyc2Ugb2xk
LXJ1bi13ZWJraXQtdGVzdHMgcmVzdWx0cy5odG1sIGZpbGVzLiIiIgotCi0gICAgc3RkZXJyX2tl
eSA9IHUnVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dDonCi0gICAgZmFpbF9rZXkgPSB1J1Rl
c3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBtYXRjaCBleHBlY3RlZCByZXN1bHRzOicKLSAgICB0
aW1lb3V0X2tleSA9IHUnVGVzdHMgdGhhdCB0aW1lZCBvdXQ6JwotICAgICMgRklYTUU6IFRoaXMg
bWF5IG5lZWQgdG8gYmUgbWFkZSBhd2FyZSBvZiBXZWJLaXRUZXN0UnVubmVyIHJlc3VsdHMgZm9y
IFdlYktpdDIuCi0gICAgY3Jhc2hfa2V5ID0gdSdUZXN0cyB0aGF0IGNhdXNlZCB0aGUgRHVtcFJl
bmRlclRyZWUgdG9vbCB0byBjcmFzaDonCi0gICAgbWlzc2luZ19rZXkgPSB1J1Rlc3RzIHRoYXQg
aGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldyk6JwotICAgIHdlYnByb2Nlc3Nf
Y3Jhc2hfa2V5ID0gdSdUZXN0cyB0aGF0IGNhdXNlZCB0aGUgV2ViIHByb2Nlc3MgdG8gY3Jhc2g6
JwotCi0gICAgZXhwZWN0ZWRfa2V5cyA9IFsKLSAgICAgICAgc3RkZXJyX2tleSwKLSAgICAgICAg
ZmFpbF9rZXksCi0gICAgICAgIGNyYXNoX2tleSwKLSAgICAgICAgd2VicHJvY2Vzc19jcmFzaF9r
ZXksCi0gICAgICAgIHRpbWVvdXRfa2V5LAotICAgICAgICBtaXNzaW5nX2tleSwKLSAgICBdCi0K
LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2ZhaWx1cmVzX2Zyb21fZmFpbF9yb3coc2VsZiwg
cm93KToKLSAgICAgICAgIyBMb29rIGF0IGFsbCBhbmNob3JzIGluIHRoaXMgcm93LCBhbmQgZ3Vl
c3Mgd2hhdCB0eXBlCi0gICAgICAgICMgb2YgbmV3LXJ1bi13ZWJraXQtdGVzdCBmYWlsdXJlcyB0
aGV5IGVxdWF0ZSB0by4KLSAgICAgICAgZmFpbHVyZXMgPSBzZXQoKQotICAgICAgICB0ZXN0X25h
bWUgPSBOb25lCi0gICAgICAgIGZvciBhbmNob3IgaW4gcm93LmZpbmRBbGwoImEiKToKLSAgICAg
ICAgICAgIGFuY2hvcl90ZXh0ID0gdW5pY29kZShhbmNob3Iuc3RyaW5nKQotICAgICAgICAgICAg
aWYgbm90IHRlc3RfbmFtZToKLSAgICAgICAgICAgICAgICB0ZXN0X25hbWUgPSBhbmNob3JfdGV4
dAotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBhbmNob3JfdGV4dCBp
biBbImV4cGVjdGVkIGltYWdlIiwgImltYWdlIGRpZmZzIl0gb3IgJyUnIGluIGFuY2hvcl90ZXh0
OgotICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFkZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFn
ZUhhc2hNaXNtYXRjaCgpKQotICAgICAgICAgICAgZWxpZiBhbmNob3JfdGV4dCBpbiBbImV4cGVj
dGVkIiwgImFjdHVhbCIsICJkaWZmIiwgInByZXR0eSBkaWZmIl06Ci0gICAgICAgICAgICAgICAg
ZmFpbHVyZXMuYWRkKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoIlVuaGFuZGxlZCBsaW5r
IHRleHQgaW4gcmVzdWx0cy5odG1sIHBhcnNpbmc6ICVzLiAgUGxlYXNlIGZpbGUgYSBidWcgYWdh
aW5zdCB3ZWJraXRweS4iICUgYW5jaG9yX3RleHQpCi0gICAgICAgICMgRklYTUU6IEl0cyBwb3Nz
aWJsZSB0aGUgcm93IGNvbnRhaW5lZCBubyBsaW5rcyBkdWUgdG8gT1JXVCBicm9rZW5lc3MuCi0g
ICAgICAgICMgV2Ugc2hvdWxkIHByb2JhYmx5IGFzc3VtZSBzb21lIHR5cGUgb2YgZmFpbHVyZSBh
bnl3YXkuCi0gICAgICAgIHJldHVybiBmYWlsdXJlcwotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg
ZGVmIF9mYWlsdXJlc19mcm9tX3JvdyhjbHMsIHJvdywgdGFibGVfdGl0bGUpOgotICAgICAgICBp
ZiB0YWJsZV90aXRsZSA9PSBjbHMuZmFpbF9rZXk6Ci0gICAgICAgICAgICByZXR1cm4gY2xzLl9m
YWlsdXJlc19mcm9tX2ZhaWxfcm93KHJvdykKLSAgICAgICAgaWYgdGFibGVfdGl0bGUgPT0gY2xz
LmNyYXNoX2tleToKLSAgICAgICAgICAgIHJldHVybiBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlQ3Jh
c2goKV0KLSAgICAgICAgaWYgdGFibGVfdGl0bGUgPT0gY2xzLndlYnByb2Nlc3NfY3Jhc2hfa2V5
OgotICAgICAgICAgICAgcmV0dXJuIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVDcmFzaChwcm9jZXNz
X25hbWU9IldlYlByb2Nlc3MiKV0KLSAgICAgICAgaWYgdGFibGVfdGl0bGUgPT0gY2xzLnRpbWVv
dXRfa2V5OgotICAgICAgICAgICAgcmV0dXJuIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1lb3V0
KCldCi0gICAgICAgIGlmIHRhYmxlX3RpdGxlID09IGNscy5taXNzaW5nX2tleToKLSAgICAgICAg
ICAgIHJldHVybiBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ1Jlc3VsdCgpLCB0ZXN0X2Zh
aWx1cmVzLkZhaWx1cmVNaXNzaW5nSW1hZ2VIYXNoKCksIHRlc3RfZmFpbHVyZXMuRmFpbHVyZU1p
c3NpbmdJbWFnZSgpXQotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgQGNsYXNzbWV0aG9kCi0g
ICAgZGVmIF90ZXN0X3Jlc3VsdF9mcm9tX3JvdyhjbHMsIHJvdywgdGFibGVfdGl0bGUpOgotICAg
ICAgICB0ZXN0X25hbWUgPSB1bmljb2RlKHJvdy5maW5kKCJhIikuc3RyaW5nKQotICAgICAgICBm
YWlsdXJlcyA9IGNscy5fZmFpbHVyZXNfZnJvbV9yb3cocm93LCB0YWJsZV90aXRsZSkKLSAgICAg
ICAgIyBUZXN0UmVzdWx0IGlzIGEgY2xhc3MgZGVzaWduZWQgdG8gd29yayB3aXRoIG5ldy1ydW4t
d2Via2l0LXRlc3RzLgotICAgICAgICAjIG9sZC1ydW4td2Via2l0LXRlc3RzIGRvZXMgbm90IHNh
dmUgcXVpdGUgZW5vdWdoIGluZm9ybWF0aW9uIGluIHJlc3VsdHMuaHRtbCBmb3IgdXMgdG8gcGFy
c2UuCi0gICAgICAgICMgRklYTUU6IEl0J3MgdW5jbGVhciBpZiB0ZXN0X25hbWUgc2hvdWxkIGlu
Y2x1ZGUgTGF5b3V0VGVzdHMgb3Igbm90LgotICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHRzLlRl
c3RSZXN1bHQodGVzdF9uYW1lLCBmYWlsdXJlcykKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRl
ZiBfcGFyc2VfcmVzdWx0c190YWJsZShjbHMsIHRhYmxlKToKLSAgICAgICAgdGFibGVfdGl0bGUg
PSB1bmljb2RlKHRhYmxlLmZpbmRQcmV2aW91c1NpYmxpbmcoInAiKS5zdHJpbmcpCi0gICAgICAg
IGlmIHRhYmxlX3RpdGxlIG5vdCBpbiBjbHMuZXhwZWN0ZWRfa2V5czoKLSAgICAgICAgICAgICMg
VGhpcyBFeGNlcHRpb24gc2hvdWxkIG9ubHkgZXZlciBiZSBoaXQgaWYgcnVuLXdlYmtpdC10ZXN0
cyBjaGFuZ2VzIGl0cyByZXN1bHRzLmh0bWwgZm9ybWF0LgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCJVbmhhbmRsZWQgdGl0bGU6ICVzIiAlIHRhYmxlX3RpdGxlKQotICAgICAgICAjIEln
bm9yZSBzdGRlcnIgZmFpbHVyZXMuICBFdmVyeW9uZSBpZ25vcmVzIHRoZW0gYW55d2F5LgotICAg
ICAgICBpZiB0YWJsZV90aXRsZSA9PSBjbHMuc3RkZXJyX2tleToKLSAgICAgICAgICAgIHJldHVy
biBbXQotICAgICAgICAjIEZJWE1FOiBXZSBtaWdodCBlbmQgd2l0aCB0d28gVGVzdFJlc3VsdHMg
b2JqZWN0IGZvciB0aGUgc2FtZSB0ZXN0IGlmIGl0IGFwcGVhcnMgaW4gbW9yZSB0aGFuIG9uZSBy
b3cuCi0gICAgICAgIHJldHVybiBbY2xzLl90ZXN0X3Jlc3VsdF9mcm9tX3Jvdyhyb3csIHRhYmxl
X3RpdGxlKSBmb3Igcm93IGluIHRhYmxlLmZpbmRBbGwoInRyIildCi0KLSAgICBAY2xhc3NtZXRo
b2QKLSAgICBkZWYgcGFyc2VfcmVzdWx0c19odG1sKGNscywgcGFnZSk6Ci0gICAgICAgIHRhYmxl
cyA9IEJlYXV0aWZ1bFNvdXAocGFnZSkuZmluZEFsbCgidGFibGUiKQotICAgICAgICByZXR1cm4g
c3VtKFtjbHMuX3BhcnNlX3Jlc3VsdHNfdGFibGUodGFibGUpIGZvciB0YWJsZSBpbiB0YWJsZXNd
LCBbXSkKLQotCiAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggUmVzdWx0c1N1
bW1hcnkgb3Igb3RoZXIgTlJXVCBsYXlvdXQgdGVzdHMgY29kZQogIyBpbiB0aGUgbGF5b3V0X3Rl
c3RzIHBhY2thZ2UuCiAjIFRoaXMgZG9lc24ndCBiZWxvbmcgaW4gY29tbW9uLm5ldCwgYnV0IHdl
IGRvbid0IGhhdmUgYSBiZXR0ZXIgcGxhY2UgZm9yIGl0IHlldC4KQEAgLTEzNSwxMiArNTAsOCBA
QCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmplY3QpOgogICAgIGRlZiByZXN1bHRzX2Zyb21f
c3RyaW5nKGNscywgc3RyaW5nKToKICAgICAgICAgaWYgbm90IHN0cmluZzoKICAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgICMgRm9yIG5vdyB3ZSB0cnkgdG8gcGFyc2UgZmlyc3QgYXMg
anNvbiwgdGhlbiBhcyByZXN1bHRzLmh0bWwKLSAgICAgICAgIyBldmVudHVhbGx5IHdlIHdpbGwg
cmVtb3ZlIHRoZSBodG1sIGZhbGxiYWNrIHN1cHBvcnQuCiAgICAgICAgIHRlc3RfcmVzdWx0cyA9
IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihzdHJpbmcpCiAgICAgICAgIGlm
IG5vdCB0ZXN0X3Jlc3VsdHM6Ci0gICAgICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBPUldUUmVzdWx0
c0hUTUxQYXJzZXIucGFyc2VfcmVzdWx0c19odG1sKHN0cmluZykKLSAgICAgICAgaWYgbm90IHRl
c3RfcmVzdWx0czoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBjbHMo
dGVzdF9yZXN1bHRzKQogCkBAIC0xNTAsNyArNjEsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0
cyhvYmplY3QpOgogICAgICAgICBzZWxmLl91bml0X3Rlc3RfZmFpbHVyZXMgPSBbXQogCiAgICAg
IyBGSVhNRTogcnVuLXdlYmtpdC10ZXN0cyBzaG91bGQgc3RvcmUgdGhlIC0tZXhpdC1hZnRlci1O
LWZhaWx1cmVzIHZhbHVlCi0gICAgIyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4aXQp
IHNvbWV3aGVyZSBpbiB0aGUgcmVzdWx0cy5odG1sL3Jlc3VsdHMuanNvbgorICAgICMgKG9yIHNv
bWUgaW5kaWNhdGlvbiBvZiBlYXJseSBleGl0KSBzb21ld2hlcmUgaW4gdGhlIHJlc3VsdHMuanNv
bgogICAgICMgZmlsZS4gIFVudGlsIGl0IGRvZXMsIGNhbGxlcnMgc2hvdWxkIHNldCB0aGUgbGlt
aXQgdG8KICAgICAjIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzIHZhbHVlIHVzZWQgaW4gdGhhdCBy
dW4uICBDb25zdW1lcnMgb2YgTGF5b3V0VGVzdFJlc3VsdHMKICAgICAjIG1heSB1c2UgdGhhdCB2
YWx1ZSB0byBrbm93IGlmIGFic2VuY2UgZnJvbSB0aGUgZmFpbHVyZSBsaXN0IG1lYW5zIFBBU1Mu
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVz
dHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
bGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggNDEzMWJkZjg1NDg2YzFjYjA2YjE1
ODFlNmNjNjE3MjRmODk4NDRkMS4uZmMwMjM3MmYwMDU2MDIzYWZkNDE0NWFlYzJiMjU0ZTg4MjYx
ZTI5NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91
dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQpAQCAtMjgsMTA2ICsyOCwxNCBA
QAogCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRl
c3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cywgT1JXVFJlc3VsdHNIVE1MUGFyc2Vy
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91
dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBp
bXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGlt
cG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBv
cnQgdGVzdF9mYWlsdXJlcwogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0aWZ1bFNvdXAg
aW1wb3J0IEJlYXV0aWZ1bFNvdXAKIAogCi1jbGFzcyBPUldUUmVzdWx0c0hUTUxQYXJzZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBfZXhhbXBsZV9yZXN1bHRzX2h0bWwgPSAiIiIKLTxo
dG1sPgotPGhlYWQ+Ci08dGl0bGU+TGF5b3V0IFRlc3QgUmVzdWx0czwvdGl0bGU+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwPlRlc3RzIHRoYXQgaGFkIHN0ZGVyciBvdXRwdXQ6PC9wPgotPHRhYmxlPgot
PHRyPgotPHRkPjxhIGhyZWY9Ii92YXIvbGliL2J1aWxkYm90L2J1aWxkL2d0ay1saW51eC02NC1y
ZWxlYXNlL2J1aWxkL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1hY3RpdmVkZXNjZW5k
YW50LWNyYXNoLmh0bWwiPmFjY2Vzc2liaWxpdHkvYXJpYS1hY3RpdmVkZXNjZW5kYW50LWNyYXNo
Lmh0bWw8L2E+PC90ZD4KLTx0ZD48YSBocmVmPSJhY2Nlc3NpYmlsaXR5L2FyaWEtYWN0aXZlZGVz
Y2VuZGFudC1jcmFzaC1zdGRlcnIudHh0Ij5zdGRlcnI8L2E+PC90ZD4KLTwvdHI+Ci08dGQ+PGEg
aHJlZj0iL3Zhci9saWIvYnVpbGRib3QvYnVpbGQvZ3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVpbGQv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtc3ZnLWlt
YWdlLmh0bWwiPmh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXN2Zy1pbWFn
ZS5odG1sPC9hPjwvdGQ+Ci08dGQ+PGEgaHJlZj0iaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMt
cmVtb3RlLXJlYWQtc3ZnLWltYWdlLXN0ZGVyci50eHQiPnN0ZGVycjwvYT48L3RkPgotPC90cj4K
LTwvdGFibGU+PHA+VGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFibHkg
bmV3KTo8L3A+Ci08dGFibGU+Ci08dHI+Ci08dGQ+PGEgaHJlZj0iL3Zhci9saWIvYnVpbGRib3Qv
YnVpbGQvZ3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVpbGQvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNvbnRlbnQtZWRpdGFibGUtZWxlbWVudC5odG1sIj5m
YXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVt
ZW50Lmh0bWw8L2E+PC90ZD4KLTx0ZD48YSBocmVmPSJmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVw
YWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50LWFjdHVhbC50eHQiPnJlc3VsdDwv
YT48L3RkPgotPC90cj4KLTwvdGFibGU+PC9ib2R5PgotPC9odG1sPgotIiIiCi0KLSAgICBfZXhh
bXBsZV9yZXN1bHRzX2h0bWxfd2l0aF9mYWlsaW5nX3Rlc3RzID0gIiIiCi08aHRtbD4KLTxoZWFk
PgotPHRpdGxlPkxheW91dCBUZXN0IFJlc3VsdHM8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08
cD5UZXN0cyB3aGVyZSByZXN1bHRzIGRpZCBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVzdWx0czo8L3A+
Ci08dGFibGU+Ci08dHI+Ci08dGQ+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9leHBv
cnQvOTEyNDUvdHJ1bmsvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9jb21wb3NpdGVk
LXBsdWdpbi5odG1sIj5jb21wb3NpdGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQtcGx1Z2luLmh0bWw8
L2E+PC90ZD4KLTx0ZD4KLTxhIGhyZWY9ImNvbXBvc2l0aW5nL3BsdWdpbnMvY29tcG9zaXRlZC1w
bHVnaW4tZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT4KLTwvdGQ+Ci08dGQ+Ci08YSBocmVmPSJj
b21wb3NpdGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQtcGx1Z2luLWFjdHVhbC50eHQiPmFjdHVhbDwv
YT4KLTwvdGQ+Ci08dGQ+Ci08YSBocmVmPSJjb21wb3NpdGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQt
cGx1Z2luLWRpZmZzLnR4dCI+ZGlmZjwvYT4KLTwvdGQ+Ci08dGQ+Ci08YSBocmVmPSJjb21wb3Np
dGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQtcGx1Z2luLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBk
aWZmPC9hPgotPC90ZD4KLTwvdHI+Ci08L3RhYmxlPgotPHA+VGVzdHMgdGhhdCBoYWQgc3RkZXJy
IG91dHB1dDo8L3A+Ci08dGFibGU+Ci08dHI+Ci08dGQ+PGEgaHJlZj0iL3Zhci9saWIvYnVpbGRi
b3QvYnVpbGQvZ3RrLWxpbnV4LTY0LXJlbGVhc2UvYnVpbGQvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9hcmlhLWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbCI+YWNjZXNzaWJpbGl0eS9hcmlh
LWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbDwvYT48L3RkPgotPHRkPjxhIGhyZWY9ImFjY2Vz
c2liaWxpdHkvYXJpYS1hY3RpdmVkZXNjZW5kYW50LWNyYXNoLXN0ZGVyci50eHQiPnN0ZGVycjwv
YT48L3RkPgotPC90cj4KLTx0ZD48YSBocmVmPSIvdmFyL2xpYi9idWlsZGJvdC9idWlsZC9ndGst
bGludXgtNjQtcmVsZWFzZS9idWlsZC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nh
bnZhcy1yZW1vdGUtcmVhZC1zdmctaW1hZ2UuaHRtbCI+aHR0cC90ZXN0cy9zZWN1cml0eS9jYW52
YXMtcmVtb3RlLXJlYWQtc3ZnLWltYWdlLmh0bWw8L2E+PC90ZD4KLTx0ZD48YSBocmVmPSJodHRw
L3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1zdmctaW1hZ2Utc3RkZXJyLnR4dCI+
c3RkZXJyPC9hPjwvdGQ+Ci08L3RyPgotPC90YWJsZT48cD5UZXN0cyB0aGF0IGhhZCBubyBleHBl
Y3RlZCByZXN1bHRzIChwcm9iYWJseSBuZXcpOjwvcD4KLTx0YWJsZT4KLTx0cj4KLTx0ZD48YSBo
cmVmPSIvdmFyL2xpYi9idWlsZGJvdC9idWlsZC9ndGstbGludXgtNjQtcmVsZWFzZS9idWlsZC9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1l
ZGl0YWJsZS1lbGVtZW50Lmh0bWwiPmZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5v
bi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbDwvYT48L3RkPgotPHRkPjxhIGhyZWY9ImZh
c3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1l
bnQtYWN0dWFsLnR4dCI+cmVzdWx0PC9hPjwvdGQ+Ci08L3RyPgotPC90YWJsZT48L2JvZHk+Ci08
L2h0bWw+Ci0iIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2xheW91dF90ZXN0X3Jlc3VsdHMoc2Vs
Zik6Ci0gICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdSZXN1
bHQoKSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0ltYWdlSGFzaCgpLCB0ZXN0X2ZhaWx1
cmVzLkZhaWx1cmVNaXNzaW5nSW1hZ2UoKV0KLSAgICAgICAgdGVzdG5hbWUgPSAnZmFzdC9yZXBh
aW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNvbnRlbnQtZWRpdGFibGUtZWxlbWVudC5odG1s
JwotICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRl
c3RuYW1lLCBmYWlsdXJlcyldCi0KLSAgICAgICAgcmVzdWx0cyA9IE9SV1RSZXN1bHRzSFRNTFBh
cnNlci5wYXJzZV9yZXN1bHRzX2h0bWwoc2VsZi5fZXhhbXBsZV9yZXN1bHRzX2h0bWwpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcmVzdWx0cywgcmVzdWx0cykKLQotCi0gICAg
ZGVmIHRlc3RfZmFpbHVyZXNfZnJvbV9mYWlsX3JvdyhzZWxmKToKLSAgICAgICAgcm93ID0gQmVh
dXRpZnVsU291cCgiPHRyPjx0ZD48YT50ZXN0LmhtbDwvYT48L3RkPjx0ZD48YT5leHBlY3RlZCBp
bWFnZTwvYT48L3RkPjx0ZD48YT4yNSU8L2E+PC90ZD48L3RyPiIpCi0gICAgICAgIHRlc3RfbmFt
ZSA9IHVuaWNvZGUocm93LmZpbmQoImEiKS5zdHJpbmcpCi0gICAgICAgICMgRXZlbiBpZiB0aGUg
Y2FsbGVyIGhhcyBhbHJlYWR5IGZvdW5kIHRoZSB0ZXN0IG5hbWUsIGZpbmRBbGwgaW5zaWRlIF9m
YWlsdXJlc19mcm9tX2ZhaWxfcm93IHdpbGwgc2VlIGl0IGFnYWluLgotICAgICAgICBmYWlsdXJl
cyA9IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBPUldUUmVzdWx0c0hUTUxQ
YXJzZXIuX2ZhaWx1cmVzX2Zyb21fZmFpbF9yb3csIFtyb3ddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihmYWlsdXJlcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShz
b3J0ZWQoZmFpbHVyZXMpWzBdKSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNoTWlzbWF0
Y2gpCi0KLSAgICAgICAgcm93ID0gQmVhdXRpZnVsU291cCgiPHRyPjx0ZD48YT50ZXN0LmhtbDwv
YT48YT5mb288L2E+PC90ZD48L3RyPiIpCi0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiVW5oYW5k
bGVkIGxpbmsgdGV4dCBpbiByZXN1bHRzLmh0bWwgcGFyc2luZzogZm9vLiAgUGxlYXNlIGZpbGUg
YSBidWcgYWdhaW5zdCB3ZWJraXRweS5cbiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2Vy
dF9vdXRwdXRzKHNlbGYsIE9SV1RSZXN1bHRzSFRNTFBhcnNlci5fZmFpbHVyZXNfZnJvbV9mYWls
X3JvdywgW3Jvd10sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKLQotCiBjbGFzcyBMYXlv
dXRUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCiAgICAgZGVmIHRlc3Rfc2V0
X2ZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6CiAgICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0
UmVzdWx0cyhbXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzLmZhaWx1cmVfbGlt
aXRfY291bnQoKSwgTm9uZSkKQEAgLTEzNywxMCArNDUsMyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVz
dWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9z
dHJpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhOb25lKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKCIiKSwgTm9uZSkKLSAgICAg
ICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoT1JXVFJl
c3VsdHNIVE1MUGFyc2VyVGVzdC5fZXhhbXBsZV9yZXN1bHRzX2h0bWwpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKSwgMSkKLQotICAgIGRlZiB0
ZXN0X3Rlc3RzX21hdGNoaW5nX2ZhaWx1cmVfdHlwZXMoc2VsZik6Ci0gICAgICAgIHJlc3VsdHMg
PSBMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE9SV1RSZXN1bHRzSFRNTFBh
cnNlclRlc3QuX2V4YW1wbGVfcmVzdWx0c19odG1sX3dpdGhfZmFpbGluZ190ZXN0cykKLSAgICAg
ICAgZmFpbGluZ190ZXN0cyA9IHJlc3VsdHMudGVzdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyhb
dGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpLCAyKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eQppbmRleCAyMjExYjFkZTAyMjRhOTA4YTE0MjY0MjlhZTUxNzhlZDRhZTQ0MTkzLi4zZTNmYTg4
ZjUzZDlhOTAwMTY2MzVjMjc4MTNjZTMwNjI1NTdhZDljIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eQpAQCAtMjgwLDcgKzI4MCw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1Vu
YWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PCiAgICAgICAgICAg
ICBTY3JpcHRFcnJvcigiTU9DSyB0ZXN0cyBmYWlsdXJlIiksCiAgICAgICAgIF0pCiAgICAgICAg
ICMgQ29tbWl0UXVldWVUYXNrIHdpbGwgb25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugc3Vj
Y2Vzc2Z1bGx5IHBhcnNlZAotICAgICAgICAjIHJlc3VsdHMuaHRtbCBhbmQgcmV0dXJuZWQgYSBM
YXlvdXRUZXN0UmVzdWx0cyBvYmplY3QsIHNvIHdlIGZha2Ugb25lLgorICAgICAgICAjIHJlc3Vs
dHMuanNvbiBhbmQgcmV0dXJuZWQgYSBMYXlvdXRUZXN0UmVzdWx0cyBvYmplY3QsIHNvIHdlIGZh
a2Ugb25lLgogICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlv
dXRUZXN0UmVzdWx0cyhbXSkKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiInJ1bl93ZWJraXRf
cGF0Y2g6IFsnY2xlYW4nXQogY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5l
ZCB3b3JraW5nIGRpcmVjdG9yeScgcGF0Y2g9JzEwMDAwJwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFk
ZXJfdW5pdHRlc3QucHkKaW5kZXggNjA3OTYzMmJkMWQ3ZGRlNWQ4MmMwNzJhOTI4ZjdjM2M0NGFk
MDg5My4uMTNiOTgzMmM4NmMzMjQ3ODM3Y2EzMGIxZGE2M2FlMWI1NzA4NjI3NyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRl
cl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIExh
eW91dFRlc3RSZXN1bHRzUmVhZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMg
TWFrZSBzdXJlIHRoYXQgb3VyIGZpbGVzeXN0ZW0gbW9jayBmdW5jdGlvbnMgYXMgd2UgZXhwZWN0
LgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCB0b29sLmZpbGVzeXN0ZW0ucmVh
ZF90ZXh0X2ZpbGUsIGxheW91dF90ZXN0c19yZXN1bHRzX3BhdGgpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKElPRXJyb3IsIHRvb2wuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSwgdW5pdF90
ZXN0c19yZXN1bHRzX3BhdGgpCi0gICAgICAgICMgbGF5b3V0X3Rlc3RfcmVzdWx0cyBzaG91bGRu
J3QgcmFpc2UgZXZlbiBpZiB0aGUgcmVzdWx0cy5odG1sIGZpbGUgaXMgbWlzc2luZy4KKyAgICAg
ICAgIyBsYXlvdXRfdGVzdF9yZXN1bHRzIHNob3VsZG4ndCByYWlzZSBldmVuIGlmIHRoZSByZXN1
bHRzLmpzb24gZmlsZSBpcyBtaXNzaW5nLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlYWRl
ci5yZXN1bHRzKCksIE5vbmUpCiAKICAgICBkZWYgdGVzdF9jcmVhdGVfdW5pdF90ZXN0X3Jlc3Vs
dHMoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Bh
dGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weQppbmRleCBjZGUxYzg0MmU5MDFkZmY0MGJjMDkyNzZlY2NiODhkZTE0
ODM4NTZiLi5iMDFjNmM3ZTIwZWU5ZTEzYmI3M2IxMDMxNmY4ZjQyMzhjNGM1NmRlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHkKQEAgLTE5Miw3ICsxOTIsNyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgog
ICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6Ci0gICAg
ICAgICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBh
dCBwYXJzaW5nIHJlc3VsdHMuaHRtbCBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCisgICAgICAgICAg
ICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJz
aW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCiAgICAgICAgICAgICBpZiBm
aXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6CiAgICAgICAgICAgICAgICAg
c2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQogICAgICAgICAgICAgcmV0dXJuIFRydWUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkK
aW5kZXggMzE0YTY0MDIxOGZkMzVhNTYxYTZmNWJkMmJiMTRhYzRhMDVhNjBmOC4uMGY3YzRlY2Q0
MmYyNWJiN2ZjZWY4OWQyYmViMWI1NzczMzYwYjQ0NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkKQEAgLTc5LDcgKzc5LDcgQEAg
Y2xhc3MgUXVldWVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB0b29sID0g
TW9ja1Rvb2woKQogICAgICAgICAgICAgIyBUaGlzIGlzIGEgaGFjayB0byBtYWtlIGl0IGVhc3kg
Zm9yIGNhbGxlcnMgdG8gbm90IGhhdmUgdG8gc2V0dXAgYSBjdXN0b20gTW9ja0ZpbGVTeXN0ZW0g
anVzdCB0byB0ZXN0IHRoZSBjb21taXQtcXVldWUKICAgICAgICAgICAgICMgdGhlIGNxIHRyaWVz
IHRvIHJlYWQgdGhlIGxheW91dCB0ZXN0IHJlc3VsdHMsIGFuZCB3aWxsIGhpdCBhIEtleUVycm9y
IGluIE1vY2tGaWxlU3lzdGVtIGlmIHdlIGRvbid0IGRvIHRoaXMuCi0gICAgICAgICAgICB0b29s
LmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcvbW9jay1yZXN1bHRzL3Jlc3VsdHMuaHRtbCcs
ICIiKQorICAgICAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZSgnL21vY2st
cmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvbicsICIiKQogICAgICAgICBpZiBub3QgZXhwZWN0ZWRf
c3Rkb3V0OgogICAgICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0ge30KICAgICAgICAgaWYgbm90
IGV4cGVjdGVkX3N0ZGVycjoK
</data>

          </attachment>
      

    </bug>

</bugzilla>