<?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>98203</bug_id>
          
          <creation_ts>2012-10-02 14:39:12 -0700</creation_ts>
          <short_desc>Force GC between PageLoad tests</short_desc>
          <delta_ts>2012-10-11 01:15:12 -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>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>
          
          <blocked>77037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Rogers">pdr</reporter>
          <assigned_to name="Philip Rogers">pdr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>fmalita</cc>
    
    <cc>haraken</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733088</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-02 14:39:12 -0700</bug_when>
    <thetext>Our pageload tests are multi-modal, typically with a small cluster at 1-2x the median.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733098</commentid>
    <comment_count>1</comment_count>
      <attachid>166755</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-02 14:48:58 -0700</bug_when>
    <thetext>Created attachment 166755
Force GC between PageLoad tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733100</commentid>
    <comment_count>2</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-02 14:51:11 -0700</bug_when>
    <thetext>You can see an example of this multi-modal distribution here:
http://webkit-perf.appspot.com/graph.html#tests=[[1610801,2001,7288486],[1610801,2001,32196]]&amp;sel=1349148472736.8853,1349214037661,0,422.22222222222223&amp;displayrange=90&amp;datatype=running

The light blue area represents the &quot;spikes&quot; once every ~10 tests where DRT ran a GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733107</commentid>
    <comment_count>3</comment_count>
      <attachid>166755</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-02 14:57:58 -0700</bug_when>
    <thetext>Comment on attachment 166755
Force GC between PageLoad tests.

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

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:210
&gt; +        driver.run_test(DriverInput(&quot;resources/forceGC.html&quot;, time_out_ms, image_hash=None, should_run_pixel_test=should_run_pixel_test), stop_when_done=False)

You can just pass False to should_run_pixel_test.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:211
&gt; +        return driver.run_test(DriverInput(path_or_url, time_out_ms, image_hash=None, should_run_pixel_test=should_run_pixel_test), stop_when_done=False)

Maybe we should call super(ReplayPerfTest, self).run_single instead?

&gt; LayoutTests/ChangeLog:16
&gt; +        * resources/forceGC.html: Added.

How about force-gc.html? or ForceGC.html. I don&apos;t think we use camelCase for file names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733158</commentid>
    <comment_count>4</comment_count>
      <attachid>166766</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-02 15:47:13 -0700</bug_when>
    <thetext>Created attachment 166766
Update per reviewer comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734128</commentid>
    <comment_count>5</comment_count>
      <attachid>166766</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-03 15:59:40 -0700</bug_when>
    <thetext>Comment on attachment 166766
Update per reviewer comments

Seems odd that this is in LayoutTests instead of PerformanceTests...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734183</commentid>
    <comment_count>6</comment_count>
      <attachid>166766</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-03 16:38:53 -0700</bug_when>
    <thetext>Comment on attachment 166766
Update per reviewer comments

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

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:210
&gt; +        super(PageLoadingPerfTest, self).run_single(driver, &quot;resources/force-gc.html&quot;, time_out_ms, False)

I&apos;m surprised that this works given it&apos;s located in LayoutTests.
You probably need to give a full path. See the code in perftestrunner.py

&gt; LayoutTests/ChangeLog:16
&gt; +        * resources/forceGC.html: Added.

Oh yeah, this should be in PerformanceTests/resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734366</commentid>
    <comment_count>7</comment_count>
      <attachid>167032</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-03 22:30:46 -0700</bug_when>
    <thetext>Created attachment 167032
Update per reviewer comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734369</commentid>
    <comment_count>8</comment_count>
      <attachid>167032</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-03 22:33:30 -0700</bug_when>
    <thetext>Comment on attachment 167032
Update per reviewer comments

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

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:207
&gt; +        self.force_gc_file = port.perf_tests_dir() + &quot;/resources/force-gc.html&quot;

There&apos;s port.host.filesystem.join. Use that instead of +.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734378</commentid>
    <comment_count>9</comment_count>
      <attachid>167034</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-03 22:48:13 -0700</bug_when>
    <thetext>Created attachment 167034
Updated to use filesystem.join for joining paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734380</commentid>
    <comment_count>10</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-03 22:53:10 -0700</bug_when>
    <thetext>Thank you both for the reviews.

(In reply to comment #5)
&gt; (From update of attachment 166766 [details])
&gt; Seems odd that this is in LayoutTests instead of PerformanceTests...
This worked since DRT pulls from LayoutTests, but it was a sloppy approach. Moved to PerformanceTests.

(In reply to comment #6)
&gt; (From update of attachment 166766 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166766&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:210
&gt; &gt; +        super(PageLoadingPerfTest, self).run_single(driver, &quot;resources/force-gc.html&quot;, time_out_ms, False)
&gt; 
&gt; I&apos;m surprised that this works given it&apos;s located in LayoutTests.
&gt; You probably need to give a full path. See the code in perftestrunner.py

Great catch. This probably would have broken on other ports. Fixed!

(In reply to comment #8)
&gt; (From update of attachment 167032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167032&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:207
&gt; &gt; +        self.force_gc_file = port.perf_tests_dir() + &quot;/resources/force-gc.html&quot;
&gt; 
&gt; There&apos;s port.host.filesystem.join. Use that instead of +.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734386</commentid>
    <comment_count>11</comment_count>
      <attachid>167037</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-03 23:05:34 -0700</bug_when>
    <thetext>Created attachment 167037
Remove unnecessary perf_tests_dir definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734397</commentid>
    <comment_count>12</comment_count>
      <attachid>167037</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 23:29:34 -0700</bug_when>
    <thetext>Comment on attachment 167037
Remove unnecessary perf_tests_dir definition.

Clearing flags on attachment: 167037

Committed r130366: &lt;http://trac.webkit.org/changeset/130366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734398</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 23:29:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166755</attachid>
            <date>2012-10-02 14:48:58 -0700</date>
            <delta_ts>2012-10-02 15:47:13 -0700</delta_ts>
            <desc>Force GC between PageLoad tests.</desc>
            <filename>98203.1.patch</filename>
            <type>text/plain</type>
            <size>3389</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEzMDIxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTEwLTAyICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRm9yY2UgR0MgYmV0d2VlbiBQYWdlTG9hZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgb3VyIFBhZ2VMb2Fk
IFBlcmZUZXN0cyBoYWQgbXVsdGktbW9kYWwgZGlzdHJpYnV0aW9ucywKKyAgICAgICAgdHlwaWNh
bGx5IHdpdGggYSBzbWFsbCBjbHVzdGVyIGF0IDEtMnggdGhlIG1lZGlhbi4gVGhpcyB0dXJuZWQg
b3V0CisgICAgICAgIHRvIGJlIGNhdXNlZCBieSBub3QgZ2FyYmFnZSBjb2xsZWN0aW5nIGJldHdl
ZW4gdGVzdHMhCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZpbGUsIGZvcmNlR0Mu
aHRtbCwgYW5kIGxvYWRzIHRoaXMgZmlsZSBiZXR3ZWVuCisgICAgICAgIFBhZ2VMb2FkIHRlc3Rz
IHRvIGZvcmNlIGEgR0MuIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhhdCB0aGlzIGNsZWFucyB1cAor
ICAgICAgICBvdXIgcGVyZiB0ZXN0IG91dGxpZXJzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weToKKyAgICAgICAgKFBhZ2VMb2FkaW5n
UGVyZlRlc3QucnVuX3NpbmdsZSk6CisKIDIwMTItMTAtMDIgIFJhcGhhZWwgS3VibyBkYSBDb3N0
YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRo
ZSBsYXN0IGJpdHMgb2YgTVNZUyBzdXBwb3J0IGZyb20gd2Via2l0cGVybC4KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5w
eQkocmV2aXNpb24gMTMwMTg5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5j
ZV90ZXN0cy9wZXJmdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDYgKzIwNSwxMSBAQCBj
bGFzcyBQYWdlTG9hZGluZ1BlcmZUZXN0KFBlcmZUZXN0KToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgdGVzdF9uYW1lLCBwYXRoX29yX3VybCk6CiAgICAgICAgIHN1cGVyKFBhZ2VMb2Fk
aW5nUGVyZlRlc3QsIHNlbGYpLl9faW5pdF9fKHBvcnQsIHRlc3RfbmFtZSwgcGF0aF9vcl91cmwp
CiAKKyAgICBkZWYgcnVuX3NpbmdsZShzZWxmLCBkcml2ZXIsIHBhdGhfb3JfdXJsLCB0aW1lX291
dF9tcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0PUZhbHNlKToKKyAgICAgICAgIyBGb3JjZSBwYWdl
IEdDIHRvIHByZXZlbnQgcGFnZWxvYWQgbm9pc2UuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMDMKKyAgICAgICAgZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklu
cHV0KCJyZXNvdXJjZXMvZm9yY2VHQy5odG1sIiwgdGltZV9vdXRfbXMsIGltYWdlX2hhc2g9Tm9u
ZSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PXNob3VsZF9ydW5fcGl4ZWxfdGVzdCksIHN0b3Bfd2hl
bl9kb25lPUZhbHNlKQorICAgICAgICByZXR1cm4gZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0
KHBhdGhfb3JfdXJsLCB0aW1lX291dF9tcywgaW1hZ2VfaGFzaD1Ob25lLCBzaG91bGRfcnVuX3Bp
eGVsX3Rlc3Q9c2hvdWxkX3J1bl9waXhlbF90ZXN0KSwgc3RvcF93aGVuX2RvbmU9RmFsc2UpCisK
ICAgICBkZWYgcnVuKHNlbGYsIGRyaXZlciwgdGltZV9vdXRfbXMpOgogICAgICAgICB0ZXN0X3Rp
bWVzID0gW10KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMjEzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTAtMDIgIFBoaWxp
cCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KKworICAgICAgICBGb3JjZSBHQyBiZXR3ZWVuIFBh
Z2VMb2FkIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTgyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcmV2aW91c2x5LCBvdXIgUGFnZUxvYWQgUGVyZlRlc3RzIGhhZCBtdWx0aS1tb2RhbCBk
aXN0cmlidXRpb25zLAorICAgICAgICB0eXBpY2FsbHkgd2l0aCBhIHNtYWxsIGNsdXN0ZXIgYXQg
MS0yeCB0aGUgbWVkaWFuLiBUaGlzIHR1cm5lZCBvdXQKKyAgICAgICAgdG8gYmUgY2F1c2VkIGJ5
IG5vdCBnYXJiYWdlIGNvbGxlY3RpbmcgYmV0d2VlbiB0ZXN0cyEKKworICAgICAgICBUaGlzIHBh
dGNoIGFkZHMgYSBuZXcgZmlsZSwgZm9yY2VHQy5odG1sLCBhbmQgbG9hZHMgdGhpcyBmaWxlIGJl
dHdlZW4KKyAgICAgICAgUGFnZUxvYWQgdGVzdHMgdG8gZm9yY2UgYSBHQy4gSSBtYW51YWxseSB2
ZXJpZmllZCB0aGF0IHRoaXMgY2xlYW5zIHVwCisgICAgICAgIG91ciBwZXJmIHRlc3Qgb3V0bGll
cnMuCisKKyAgICAgICAgKiByZXNvdXJjZXMvZm9yY2VHQy5odG1sOiBBZGRlZC4KKwogMjAxMi0x
MC0wMiAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBtb3Jl
IGZsYWt5IHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2ZvcmNlR0MuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvZm9yY2VHQy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2ZvcmNlR0MuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgSFRNTD4KKzwhLS0gVGhpcyBwYWdlIGZvcmNlcyBh
IEdDIGluIERSVCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MjAzLiAtLT4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJ3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxl
Y3QoKTsiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="179196"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166766</attachid>
            <date>2012-10-02 15:47:13 -0700</date>
            <delta_ts>2012-10-03 22:30:46 -0700</delta_ts>
            <desc>Update per reviewer comments</desc>
            <filename>98203.2.patch</filename>
            <type>text/plain</type>
            <size>3301</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEzMDIxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTEwLTAyICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRm9yY2UgR0MgYmV0d2VlbiBQYWdlTG9hZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgb3VyIFBhZ2VMb2Fk
IFBlcmZUZXN0cyBoYWQgbXVsdGktbW9kYWwgZGlzdHJpYnV0aW9ucywKKyAgICAgICAgdHlwaWNh
bGx5IHdpdGggYSBzbWFsbCBjbHVzdGVyIGF0IDEtMnggdGhlIG1lZGlhbi4gVGhpcyB0dXJuZWQg
b3V0CisgICAgICAgIHRvIGJlIGNhdXNlZCBieSBub3QgZ2FyYmFnZSBjb2xsZWN0aW5nIGJldHdl
ZW4gdGVzdHMhCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZpbGUsIGZvcmNlR0Mu
aHRtbCwgYW5kIGxvYWRzIHRoaXMgZmlsZSBiZXR3ZWVuCisgICAgICAgIFBhZ2VMb2FkIHRlc3Rz
IHRvIGZvcmNlIGEgR0MuIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhhdCB0aGlzIGNsZWFucyB1cAor
ICAgICAgICBvdXIgcGVyZiB0ZXN0IG91dGxpZXJzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weToKKyAgICAgICAgKFBhZ2VMb2FkaW5n
UGVyZlRlc3QucnVuX3NpbmdsZSk6CisKIDIwMTItMTAtMDIgIFJhcGhhZWwgS3VibyBkYSBDb3N0
YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRo
ZSBsYXN0IGJpdHMgb2YgTVNZUyBzdXBwb3J0IGZyb20gd2Via2l0cGVybC4KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5w
eQkocmV2aXNpb24gMTMwMTg5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5j
ZV90ZXN0cy9wZXJmdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDYgKzIwNSwxMSBAQCBj
bGFzcyBQYWdlTG9hZGluZ1BlcmZUZXN0KFBlcmZUZXN0KToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgdGVzdF9uYW1lLCBwYXRoX29yX3VybCk6CiAgICAgICAgIHN1cGVyKFBhZ2VMb2Fk
aW5nUGVyZlRlc3QsIHNlbGYpLl9faW5pdF9fKHBvcnQsIHRlc3RfbmFtZSwgcGF0aF9vcl91cmwp
CiAKKyAgICBkZWYgcnVuX3NpbmdsZShzZWxmLCBkcml2ZXIsIHBhdGhfb3JfdXJsLCB0aW1lX291
dF9tcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0PUZhbHNlKToKKyAgICAgICAgIyBGb3JjZSBwYWdl
IEdDIHRvIHByZXZlbnQgcGFnZWxvYWQgbm9pc2UuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMDMKKyAgICAgICAgc3VwZXIoUGFnZUxvYWRpbmdQZXJmVGVz
dCwgc2VsZikucnVuX3NpbmdsZShkcml2ZXIsICJyZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbCIsIHRp
bWVfb3V0X21zLCBGYWxzZSkKKyAgICAgICAgcmV0dXJuIHN1cGVyKFBhZ2VMb2FkaW5nUGVyZlRl
c3QsIHNlbGYpLnJ1bl9zaW5nbGUoZHJpdmVyLCBwYXRoX29yX3VybCwgdGltZV9vdXRfbXMsIHNo
b3VsZF9ydW5fcGl4ZWxfdGVzdCkKKwogICAgIGRlZiBydW4oc2VsZiwgZHJpdmVyLCB0aW1lX291
dF9tcyk6CiAgICAgICAgIHRlc3RfdGltZXMgPSBbXQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzAy
MTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MCBAQAorMjAxMi0xMC0wMiAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgorCisgICAg
ICAgIEZvcmNlIEdDIGJldHdlZW4gUGFnZUxvYWQgdGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODIwMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHksIG91ciBQYWdlTG9hZCBQZXJm
VGVzdHMgaGFkIG11bHRpLW1vZGFsIGRpc3RyaWJ1dGlvbnMsCisgICAgICAgIHR5cGljYWxseSB3
aXRoIGEgc21hbGwgY2x1c3RlciBhdCAxLTJ4IHRoZSBtZWRpYW4uIFRoaXMgdHVybmVkIG91dAor
ICAgICAgICB0byBiZSBjYXVzZWQgYnkgbm90IGdhcmJhZ2UgY29sbGVjdGluZyBiZXR3ZWVuIHRl
c3RzIQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmaWxlLCBmb3JjZUdDLmh0bWws
IGFuZCBsb2FkcyB0aGlzIGZpbGUgYmV0d2VlbgorICAgICAgICBQYWdlTG9hZCB0ZXN0cyB0byBm
b3JjZSBhIEdDLiBJIG1hbnVhbGx5IHZlcmlmaWVkIHRoYXQgdGhpcyBjbGVhbnMgdXAKKyAgICAg
ICAgb3VyIHBlcmYgdGVzdCBvdXRsaWVycy4KKworICAgICAgICAqIHJlc291cmNlcy9mb3JjZUdD
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTAyICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgQWRkIG1vcmUgZmxha3kgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvZm9yY2UtZ2MuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Jlc291cmNlcy9m
b3JjZS1nYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBIVE1M
PgorPCEtLSBUaGlzIHBhZ2UgZm9yY2VzIGEgR0MgaW4gRFJUIGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMDMuIC0tPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9
IndpbmRvdy5HQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="179213"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167032</attachid>
            <date>2012-10-03 22:30:46 -0700</date>
            <delta_ts>2012-10-03 22:48:13 -0700</delta_ts>
            <desc>Update per reviewer comments</desc>
            <filename>98203.3.patch</filename>
            <type>text/plain</type>
            <size>10870</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzAzNjIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTAzICBQ
aGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRm9yY2UgR0MgYmV0d2Vl
biBQYWdlTG9hZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJldmlvdXNseSwgb3VyIFBhZ2VMb2FkIFBlcmZUZXN0cyBoYWQgbXVsdGktbW9k
YWwgZGlzdHJpYnV0aW9ucywKKyAgICAgICAgdHlwaWNhbGx5IHdpdGggYSBzbWFsbCBjbHVzdGVy
IGF0IDEtMnggdGhlIG1lZGlhbi4gVGhpcyB0dXJuZWQgb3V0CisgICAgICAgIHRvIGJlIGNhdXNl
ZCBieSBub3QgZ2FyYmFnZSBjb2xsZWN0aW5nIGJldHdlZW4gdGVzdHMhCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIGEgbmV3IGZpbGUsIGZvcmNlLWdjLmh0bWwsIGFuZCBsb2FkcyB0aGlzIGZp
bGUgYmV0d2VlbgorICAgICAgICBQYWdlTG9hZCB0ZXN0cyB0byBmb3JjZSBhIEdDLiBJIG1hbnVh
bGx5IHZlcmlmaWVkIHRoYXQgdGhpcyBjbGVhbnMgdXAKKyAgICAgICAgb3VyIHBlcmYgdGVzdCBv
dXRsaWVycy4KKworICAgICAgICAqIHJlc291cmNlcy9mb3JjZS1nYy5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wMyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgYSBwZXJmb3JtYW5jZSB0ZXN0IGZvciBzdWJ0cmVlIGRldGFjaGluZwpJbmRl
eDogUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9mb3JjZS1nYy5odG1sCShyZXZpc2lvbiAwKQor
KysgUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgSFRNTD4KKzwhLS0gVGhpcyBwYWdlIGZvcmNlcyBh
IEdDIGluIERSVCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MjAzLiAtLT4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJ3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxl
Y3QoKTsiPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMzYyKQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTItMTAtMDMgIFBoaWxpcCBS
b2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KKworICAgICAgICBGb3JjZSBHQyBiZXR3ZWVuIFBhZ2VM
b2FkIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTgyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQcmV2aW91c2x5LCBvdXIgUGFnZUxvYWQgUGVyZlRlc3RzIGhhZCBtdWx0aS1tb2RhbCBkaXN0
cmlidXRpb25zLAorICAgICAgICB0eXBpY2FsbHkgd2l0aCBhIHNtYWxsIGNsdXN0ZXIgYXQgMS0y
eCB0aGUgbWVkaWFuLiBUaGlzIHR1cm5lZCBvdXQKKyAgICAgICAgdG8gYmUgY2F1c2VkIGJ5IG5v
dCBnYXJiYWdlIGNvbGxlY3RpbmcgYmV0d2VlbiB0ZXN0cyEKKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBuZXcgZmlsZSwgZm9yY2UtZ2MuaHRtbCwgYW5kIGxvYWRzIHRoaXMgZmlsZSBiZXR3
ZWVuCisgICAgICAgIFBhZ2VMb2FkIHRlc3RzIHRvIGZvcmNlIGEgR0MuIEkgbWFudWFsbHkgdmVy
aWZpZWQgdGhhdCB0aGlzIGNsZWFucyB1cAorICAgICAgICBvdXIgcGVyZiB0ZXN0IG91dGxpZXJz
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVz
dC5weToKKyAgICAgICAgKFBhZ2VMb2FkaW5nUGVyZlRlc3QuX19pbml0X18pOgorICAgICAgICAo
UGFnZUxvYWRpbmdQZXJmVGVzdCk6CisgICAgICAgIChQYWdlTG9hZGluZ1BlcmZUZXN0LnJ1bl9z
aW5nbGUpOgorCisgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIG5vdyBsb2FkcyB0d28gcGFnZXM6
IG9uZSB0byBmb3JjZSBhIGdjIGFuZAorICAgICAgICAgICAgdGhlbiB0aGUgdGVzdCB0byBydW4u
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0
X3VuaXR0ZXN0LnB5OgorCisgICAgICAgICAgICBNb2RpZmllZCBzZXZlcmFsIGV4aXN0aW5nIHRl
c3RzIHRvIHNob3cgdGhhdCB0aGUgZm9yY2UtZ2MgZmlsZQorICAgICAgICAgICAgaXMgbG9hZGVk
LgorCisgICAgICAgIChNb2NrUG9ydCk6CisgICAgICAgIChNb2NrUG9ydC5fX2luaXRfXyk6Cisg
ICAgICAgIChNb2NrUG9ydC5wZXJmX3Rlc3RzX2Rpcik6CisgICAgICAgIChUZXN0UGFnZUxvYWRp
bmdQZXJmVGVzdC5Nb2NrRHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKFRlc3RQYWdlTG9hZGlu
Z1BlcmZUZXN0Lk1vY2tEcml2ZXIucnVuX3Rlc3QpOgorICAgICAgICAoVGVzdFBhZ2VMb2FkaW5n
UGVyZlRlc3QudGVzdF9ydW4pOgorICAgICAgICAoVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QudGVz
dF9ydW5fd2l0aF9iYWRfb3V0cHV0KToKKyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC5SZXBs
YXlUZXN0UG9ydCk6CisgICAgICAgIChUZXN0UmVwbGF5UGVyZlRlc3QuUmVwbGF5VGVzdFBvcnQu
X19pbml0X18pOgorICAgICAgICAoVGVzdFJlcGxheVBlcmZUZXN0LnRlc3RfcnVuX3NpbmdsZS5y
dW5fdGVzdCk6CisgICAgICAgIChUZXN0UmVwbGF5UGVyZlRlc3QudGVzdF9ydW5fc2luZ2xlKToK
KyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC50ZXN0X3J1bl9zaW5nbGVfZmFpbHNfd2hlbl9v
dXRwdXRfaGFzX2Vycm9yKToKKyAgICAgICAgKFRlc3RQZXJmVGVzdEZhY3RvcnkudGVzdF9yZWd1
bGFyX3Rlc3QpOgorICAgICAgICAoVGVzdFBlcmZUZXN0RmFjdG9yeS50ZXN0X2luc3BlY3Rvcl90
ZXN0KToKKyAgICAgICAgKFRlc3RQZXJmVGVzdEZhY3RvcnkudGVzdF9wYWdlX2xvYWRpbmdfdGVz
dCk6CisKIDIwMTItMTAtMDMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyB0ZXN0cyBvbiB3aW4zMiBhZnRlciByMTI3MzAyCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMv
cGVyZnRlc3QucHkJKHJldmlzaW9uIDEzMDM1NykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw2ICsy
MDQsMTIgQEAgY2xhc3MgQ2hyb21pdW1TdHlsZVBlcmZUZXN0KFBlcmZUZXN0KToKIGNsYXNzIFBh
Z2VMb2FkaW5nUGVyZlRlc3QoUGVyZlRlc3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0
LCB0ZXN0X25hbWUsIHBhdGhfb3JfdXJsKToKICAgICAgICAgc3VwZXIoUGFnZUxvYWRpbmdQZXJm
VGVzdCwgc2VsZikuX19pbml0X18ocG9ydCwgdGVzdF9uYW1lLCBwYXRoX29yX3VybCkKKyAgICAg
ICAgc2VsZi5mb3JjZV9nY19maWxlID0gcG9ydC5wZXJmX3Rlc3RzX2RpcigpICsgIi9yZXNvdXJj
ZXMvZm9yY2UtZ2MuaHRtbCIKKworICAgIGRlZiBydW5fc2luZ2xlKHNlbGYsIGRyaXZlciwgcGF0
aF9vcl91cmwsIHRpbWVfb3V0X21zLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9RmFsc2UpOgorICAg
ICAgICAjIEZvcmNlIHBhZ2UgR0MgdG8gcHJldmVudCBwYWdlbG9hZCBub2lzZS4gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODIwMworICAgICAgICBzdXBlcihQ
YWdlTG9hZGluZ1BlcmZUZXN0LCBzZWxmKS5ydW5fc2luZ2xlKGRyaXZlciwgc2VsZi5mb3JjZV9n
Y19maWxlLCB0aW1lX291dF9tcywgRmFsc2UpCisgICAgICAgIHJldHVybiBzdXBlcihQYWdlTG9h
ZGluZ1BlcmZUZXN0LCBzZWxmKS5ydW5fc2luZ2xlKGRyaXZlciwgcGF0aF9vcl91cmwsIHRpbWVf
b3V0X21zLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3QpCiAKICAgICBkZWYgcnVuKHNlbGYsIGRyaXZl
ciwgdGltZV9vdXRfbXMpOgogICAgICAgICB0ZXN0X3RpbWVzID0gW10KSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJm
dGVzdF91bml0dGVzdC5weQkocmV2aXNpb24gMTMwMzU3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weQkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsMTMgQEAgZnJvbSB3ZWJraXRweS5wZXJmb3JtYW5jZV90ZXN0cy5wZXJm
dGVzdAogZnJvbSB3ZWJraXRweS5wZXJmb3JtYW5jZV90ZXN0cy5wZXJmdGVzdCBpbXBvcnQgUmVw
bGF5UGVyZlRlc3QKIAogCitjbGFzcyBNb2NrUG9ydChUZXN0UG9ydCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGN1c3RvbV9ydW5fdGVzdD1Ob25lKToKKyAgICAgICAgc3VwZXIoTW9ja1BvcnQs
IHNlbGYpLl9faW5pdF9fKGhvc3Q9TW9ja0hvc3QoKSwgY3VzdG9tX3J1bl90ZXN0PWN1c3RvbV9y
dW5fdGVzdCkKKworICAgIGRlZiBwZXJmX3Rlc3RzX2RpcihzZWxmKToKKyAgICAgICAgcmV0dXJu
ICcvcGF0aC9zb21lLXBlcmYtdGVzdC1kaXInCisKIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICBkZWYgdGVzdF9wYXJzZV9vdXRwdXQoc2VsZik6CiAgICAgICAgIG91dHB1
dCA9IERyaXZlck91dHB1dCgnXG4nLmpvaW4oWwpAQCAtOTgsMTEgKzEwNSwxNCBAQCBjbGFzcyBN
YWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIGNsYXNzIFRlc3RQYWdlTG9hZGluZ1BlcmZU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBjbGFzcyBNb2NrRHJpdmVyKG9iamVjdCk6Ci0g
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZXMpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgdmFsdWVzLCB0ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3ZhbHVlcyA9IHZhbHVlcwog
ICAgICAgICAgICAgc2VsZi5faW5kZXggPSAwCisgICAgICAgICAgICBzZWxmLl90ZXN0ID0gdGVz
dAogCiAgICAgICAgIGRlZiBydW5fdGVzdChzZWxmLCBpbnB1dCwgc3RvcF93aGVuX2RvbmUpOgor
ICAgICAgICAgICAgaWYgaW5wdXQudGVzdF9uYW1lID09IHNlbGYuX3Rlc3QuZm9yY2VfZ2NfZmls
ZToKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5fdmFs
dWVzW3NlbGYuX2luZGV4XQogICAgICAgICAgICAgc2VsZi5faW5kZXggKz0gMQogICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKQEAgLTExMSw4ICsxMjEsOSBAQCBjbGFzcyBU
ZXN0UGFnZUxvYWRpbmdQZXJmVGVzdCh1bml0dGVzdC5UCiAgICAgICAgICAgICAgICAgcmV0dXJu
IERyaXZlck91dHB1dCgnc29tZSBvdXRwdXQnLCBpbWFnZT1Ob25lLCBpbWFnZV9oYXNoPU5vbmUs
IGF1ZGlvPU5vbmUsIHRlc3RfdGltZT1zZWxmLl92YWx1ZXNbc2VsZi5faW5kZXggLSAxXSkKIAog
ICAgIGRlZiB0ZXN0X3J1bihzZWxmKToKLSAgICAgICAgdGVzdCA9IFBhZ2VMb2FkaW5nUGVyZlRl
c3QoTm9uZSwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQotICAgICAg
ICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKHJhbmdlKDEsIDIx
KSkKKyAgICAgICAgcG9ydCA9IE1vY2tQb3J0KCkKKyAgICAgICAgdGVzdCA9IFBhZ2VMb2FkaW5n
UGVyZlRlc3QocG9ydCwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQor
ICAgICAgICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKHJhbmdl
KDEsIDIxKSwgdGVzdCkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkK
ICAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICB0cnk6CkBA
IC0xMjksOCArMTQwLDkgQEAgY2xhc3MgVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QodW5pdHRlc3Qu
VAogICAgICAgICBvdXRwdXRfY2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQogICAgICAgICBvdXRw
dXRfY2FwdHVyZS5jYXB0dXJlX291dHB1dCgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRl
c3QgPSBQYWdlTG9hZGluZ1BlcmZUZXN0KE5vbmUsICdzb21lLXRlc3QnLCAnL3BhdGgvc29tZS1k
aXIvc29tZS10ZXN0JykKLSAgICAgICAgICAgIGRyaXZlciA9IFRlc3RQYWdlTG9hZGluZ1BlcmZU
ZXN0Lk1vY2tEcml2ZXIoWzEsIDIsIDMsIDQsIDUsIDYsIDcsICdzb21lIGVycm9yJywgOSwgMTAs
IDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSkKKyAgICAgICAgICAgIHBv
cnQgPSBNb2NrUG9ydCgpCisgICAgICAgICAgICB0ZXN0ID0gUGFnZUxvYWRpbmdQZXJmVGVzdChw
b3J0LCAnc29tZS10ZXN0JywgJy9wYXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCisgICAgICAgICAg
ICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKFsxLCAyLCAzLCA0
LCA1LCA2LCA3LCAnc29tZSBlcnJvcicsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAx
NywgMTgsIDE5LCAyMF0sIHRlc3QpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3Qu
cnVuKGRyaXZlciwgTm9uZSksIE5vbmUpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBh
Y3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9ncyA9IG91dHB1dF9jYXB0dXJl
LnJlc3RvcmVfb3V0cHV0KCkKQEAgLTE0MSw3ICsxNTMsNyBAQCBjbGFzcyBUZXN0UGFnZUxvYWRp
bmdQZXJmVGVzdCh1bml0dGVzdC5UCiAKIGNsYXNzIFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKLSAgICBjbGFzcyBSZXBsYXlUZXN0UG9ydChUZXN0UG9ydCk6CisgICAg
Y2xhc3MgUmVwbGF5VGVzdFBvcnQoTW9ja1BvcnQpOgogICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgY3VzdG9tX3J1bl90ZXN0PU5vbmUpOgogCiAgICAgICAgICAgICBjbGFzcyBSZXBsYXlUZXN0
RHJpdmVyKFRlc3REcml2ZXIpOgpAQCAtMTQ5LDcgKzE2MSw3IEBAIGNsYXNzIFRlc3RSZXBsYXlQ
ZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1c3Rv
bV9ydW5fdGVzdCh0ZXh0X2lucHV0LCBzdG9wX3doZW5fZG9uZSkgaWYgY3VzdG9tX3J1bl90ZXN0
IGVsc2UgTm9uZQogCiAgICAgICAgICAgICBzZWxmLl9jdXN0b21fZHJpdmVyX2NsYXNzID0gUmVw
bGF5VGVzdERyaXZlcgotICAgICAgICAgICAgc3VwZXIoc2VsZi5fX2NsYXNzX18sIHNlbGYpLl9f
aW5pdF9fKGhvc3Q9TW9ja0hvc3QoKSkKKyAgICAgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19f
LCBzZWxmKS5fX2luaXRfXygpCiAKICAgICAgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CiAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fY3VzdG9tX2RyaXZlcl9jbGFzcwpAQCAtMTc5LDYgKzE5
MSw5IEBAIGNsYXNzIFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAg
bG9hZGVkX3BhZ2VzID0gW10KIAogICAgICAgICBkZWYgcnVuX3Rlc3QodGVzdF9pbnB1dCwgc3Rv
cF93aGVuX2RvbmUpOgorICAgICAgICAgICAgaWYgdGVzdF9pbnB1dC50ZXN0X25hbWUgPT0gdGVz
dC5mb3JjZV9nY19maWxlOgorICAgICAgICAgICAgICAgIGxvYWRlZF9wYWdlcy5hcHBlbmQodGVz
dF9pbnB1dCkKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIGlmIHRlc3RfaW5w
dXQudGVzdF9uYW1lICE9ICJhYm91dDpibGFuayI6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0ZXN0X2lucHV0LnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRlc3QvJykKICAgICAg
ICAgICAgIGxvYWRlZF9wYWdlcy5hcHBlbmQodGVzdF9pbnB1dCkKQEAgLTE5Niw4ICsyMTEsOSBA
QCBjbGFzcyBUZXN0UmVwbGF5UGVyZlRlc3QodW5pdHRlc3QuVGVzdENhCiAgICAgICAgIGZpbmFs
bHk6CiAgICAgICAgICAgICBhY3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9n
cyA9IG91dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihsb2FkZWRfcGFnZXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxv
YWRlZF9wYWdlc1swXS50ZXN0X25hbWUsICdodHRwOi8vc29tZS10ZXN0LycpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKGxvYWRlZF9wYWdlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobG9hZGVkX3BhZ2VzWzBdLnRlc3RfbmFtZSwgdGVzdC5mb3JjZV9nY19maWxlKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlZF9wYWdlc1sxXS50ZXN0X25hbWUsICdodHRwOi8v
c29tZS10ZXN0LycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZG91dCwgJycp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZGVyciwgJycpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2xvZ3MsICcnKQpAQCAtMjYyLDggKzI3OCw5IEBAIGNsYXNz
IFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAgZmluYWxseToKICAg
ICAgICAgICAgIGFjdHVhbF9zdGRvdXQsIGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0
cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGxvYWRlZF9wYWdlcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9hZGVkX3Bh
Z2VzWzBdLnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRlc3QvJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4obG9hZGVkX3BhZ2VzKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
b2FkZWRfcGFnZXNbMF0udGVzdF9uYW1lLCB0ZXN0LmZvcmNlX2djX2ZpbGUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobG9hZGVkX3BhZ2VzWzFdLnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRl
c3QvJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfc3Rkb3V0LCAnJykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfc3RkZXJyLCAnJykKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChhY3R1YWxfbG9ncywgJ2Vycm9yOiBzb21lLXRlc3QucmVwbGF5XG5zb21lIGVycm9y
XG4nKQpAQCAtMzE2LDE1ICszMzMsMTUgQEAgY2xhc3MgVGVzdFJlcGxheVBlcmZUZXN0KHVuaXR0
ZXN0LlRlc3RDYQogCiBjbGFzcyBUZXN0UGVyZlRlc3RGYWN0b3J5KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgdGVzdF9yZWd1bGFyX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHRlc3QgPSBQZXJm
VGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChOb25lLCAnc29tZS1kaXIvc29tZS10ZXN0Jywg
Jy9wYXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCisgICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3Rv
cnkuY3JlYXRlX3BlcmZfdGVzdChNb2NrUG9ydCgpLCAnc29tZS1kaXIvc29tZS10ZXN0JywgJy9w
YXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5f
X2NsYXNzX18sIFBlcmZUZXN0KQogCiAgICAgZGVmIHRlc3RfaW5zcGVjdG9yX3Rlc3Qoc2VsZik6
Ci0gICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChOb25lLCAn
aW5zcGVjdG9yL3NvbWUtdGVzdCcsICcvcGF0aC9pbnNwZWN0b3Ivc29tZS10ZXN0JykKKyAgICAg
ICAgdGVzdCA9IFBlcmZUZXN0RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE1vY2tQb3J0KCksICdp
bnNwZWN0b3Ivc29tZS10ZXN0JywgJy9wYXRoL2luc3BlY3Rvci9zb21lLXRlc3QnKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRlc3QuX19jbGFzc19fLCBDaHJvbWl1bVN0eWxlUGVyZlRlc3Qp
CiAKICAgICBkZWYgdGVzdF9wYWdlX2xvYWRpbmdfdGVzdChzZWxmKToKLSAgICAgICAgdGVzdCA9
IFBlcmZUZXN0RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE5vbmUsICdQYWdlTG9hZC9zb21lLXRl
c3QnLCAnL3BhdGgvUGFnZUxvYWQvc29tZS10ZXN0JykKKyAgICAgICAgdGVzdCA9IFBlcmZUZXN0
RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE1vY2tQb3J0KCksICdQYWdlTG9hZC9zb21lLXRlc3Qn
LCAnL3BhdGgvUGFnZUxvYWQvc29tZS10ZXN0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
ZXN0Ll9fY2xhc3NfXywgUGFnZUxvYWRpbmdQZXJmVGVzdCkKIAogCg==
</data>
<flag name="review"
          id="179580"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167034</attachid>
            <date>2012-10-03 22:48:13 -0700</date>
            <delta_ts>2012-10-03 23:05:34 -0700</delta_ts>
            <desc>Updated to use filesystem.join for joining paths</desc>
            <filename>98203.4.patch</filename>
            <type>text/plain</type>
            <size>10946</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzAzNjIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTAzICBQ
aGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRm9yY2UgR0MgYmV0d2Vl
biBQYWdlTG9hZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisg
ICAgICAgIFByZXZpb3VzbHksIG91ciBQYWdlTG9hZCBQZXJmVGVzdHMgaGFkIG11bHRpLW1vZGFs
IGRpc3RyaWJ1dGlvbnMsCisgICAgICAgIHR5cGljYWxseSB3aXRoIGEgc21hbGwgY2x1c3RlciBh
dCAxLTJ4IHRoZSBtZWRpYW4uIFRoaXMgdHVybmVkIG91dAorICAgICAgICB0byBiZSBjYXVzZWQg
Ynkgbm90IGdhcmJhZ2UgY29sbGVjdGluZyBiZXR3ZWVuIHRlc3RzIQorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBhIG5ldyBmaWxlLCBmb3JjZS1nYy5odG1sLCBhbmQgbG9hZHMgdGhpcyBmaWxl
IGJldHdlZW4KKyAgICAgICAgUGFnZUxvYWQgdGVzdHMgdG8gZm9yY2UgYSBHQy4gSSBtYW51YWxs
eSB2ZXJpZmllZCB0aGF0IHRoaXMgY2xlYW5zIHVwCisgICAgICAgIG91ciBwZXJmIHRlc3Qgb3V0
bGllcnMuCisKKyAgICAgICAgKiByZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbDogQWRkZWQuCisKIDIw
MTItMTAtMDMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIGEgcGVyZm9ybWFuY2UgdGVzdCBmb3Igc3VidHJlZSBkZXRhY2hpbmcKSW5kZXg6
IFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2ZvcmNlLWdjLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
UGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbAkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2ZvcmNlLWdjLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8IS0tIFRoaXMgcGFnZSBmb3JjZXMgYSBH
QyBpbiBEUlQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODIw
My4gLS0+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0id2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0
KCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDM2MikKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTEwLTAzICBQaGlsaXAgUm9n
ZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRm9yY2UgR0MgYmV0d2VlbiBQYWdlTG9h
ZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFBy
ZXZpb3VzbHksIG91ciBQYWdlTG9hZCBQZXJmVGVzdHMgaGFkIG11bHRpLW1vZGFsIGRpc3RyaWJ1
dGlvbnMsCisgICAgICAgIHR5cGljYWxseSB3aXRoIGEgc21hbGwgY2x1c3RlciBhdCAxLTJ4IHRo
ZSBtZWRpYW4uIFRoaXMgdHVybmVkIG91dAorICAgICAgICB0byBiZSBjYXVzZWQgYnkgbm90IGdh
cmJhZ2UgY29sbGVjdGluZyBiZXR3ZWVuIHRlc3RzIQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhIG5ldyBmaWxlLCBmb3JjZS1nYy5odG1sLCBhbmQgbG9hZHMgdGhpcyBmaWxlIGJldHdlZW4K
KyAgICAgICAgUGFnZUxvYWQgdGVzdHMgdG8gZm9yY2UgYSBHQy4gSSBtYW51YWxseSB2ZXJpZmll
ZCB0aGF0IHRoaXMgY2xlYW5zIHVwCisgICAgICAgIG91ciBwZXJmIHRlc3Qgb3V0bGllcnMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5
OgorICAgICAgICAoUGFnZUxvYWRpbmdQZXJmVGVzdC5fX2luaXRfXyk6CisgICAgICAgIChQYWdl
TG9hZGluZ1BlcmZUZXN0KToKKyAgICAgICAgKFBhZ2VMb2FkaW5nUGVyZlRlc3QucnVuX3Npbmds
ZSk6CisKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gbm93IGxvYWRzIHR3byBwYWdlczogb25l
IHRvIGZvcmNlIGEgZ2MgYW5kCisgICAgICAgICAgICB0aGVuIHRoZSB0ZXN0IHRvIHJ1bi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5p
dHRlc3QucHk6CisKKyAgICAgICAgICAgIE1vZGlmaWVkIHNldmVyYWwgZXhpc3RpbmcgdGVzdHMg
dG8gc2hvdyB0aGF0IHRoZSBmb3JjZS1nYyBmaWxlCisgICAgICAgICAgICBpcyBsb2FkZWQuCisK
KyAgICAgICAgKE1vY2tQb3J0KToKKyAgICAgICAgKE1vY2tQb3J0Ll9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tQb3J0LnBlcmZfdGVzdHNfZGlyKToKKyAgICAgICAgKFRlc3RQYWdlTG9hZGluZ1Bl
cmZUZXN0Lk1vY2tEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoVGVzdFBhZ2VMb2FkaW5nUGVy
ZlRlc3QuTW9ja0RyaXZlci5ydW5fdGVzdCk6CisgICAgICAgIChUZXN0UGFnZUxvYWRpbmdQZXJm
VGVzdC50ZXN0X3J1bik6CisgICAgICAgIChUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC50ZXN0X3J1
bl93aXRoX2JhZF9vdXRwdXQpOgorICAgICAgICAoVGVzdFJlcGxheVBlcmZUZXN0LlJlcGxheVRl
c3RQb3J0KToKKyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC5SZXBsYXlUZXN0UG9ydC5fX2lu
aXRfXyk6CisgICAgICAgIChUZXN0UmVwbGF5UGVyZlRlc3QudGVzdF9ydW5fc2luZ2xlLnJ1bl90
ZXN0KToKKyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC50ZXN0X3J1bl9zaW5nbGUpOgorICAg
ICAgICAoVGVzdFJlcGxheVBlcmZUZXN0LnRlc3RfcnVuX3NpbmdsZV9mYWlsc193aGVuX291dHB1
dF9oYXNfZXJyb3IpOgorICAgICAgICAoVGVzdFBlcmZUZXN0RmFjdG9yeS50ZXN0X3JlZ3VsYXJf
dGVzdCk6CisgICAgICAgIChUZXN0UGVyZlRlc3RGYWN0b3J5LnRlc3RfaW5zcGVjdG9yX3Rlc3Qp
OgorICAgICAgICAoVGVzdFBlcmZUZXN0RmFjdG9yeS50ZXN0X3BhZ2VfbG9hZGluZ190ZXN0KToK
KwogMjAxMi0xMC0wMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBydW4td2Via2l0LXRlc3RzIHRlc3RzIG9uIHdpbjMyIGFmdGVyIHIxMjczMDIKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJm
dGVzdC5weQkocmV2aXNpb24gMTMwMzU3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJm
b3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjAyLDggKzIwMiwx
NiBAQCBjbGFzcyBDaHJvbWl1bVN0eWxlUGVyZlRlc3QoUGVyZlRlc3QpOgogCiAKIGNsYXNzIFBh
Z2VMb2FkaW5nUGVyZlRlc3QoUGVyZlRlc3QpOgorICAgIF9GT1JDRV9HQ19GSUxFID0gJ3Jlc291
cmNlcy9mb3JjZS1nYy5odG1sJworCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHRlc3Rf
bmFtZSwgcGF0aF9vcl91cmwpOgogICAgICAgICBzdXBlcihQYWdlTG9hZGluZ1BlcmZUZXN0LCBz
ZWxmKS5fX2luaXRfXyhwb3J0LCB0ZXN0X25hbWUsIHBhdGhfb3JfdXJsKQorICAgICAgICBzZWxm
LmZvcmNlX2djX3Rlc3QgPSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuX3Bv
cnQucGVyZl90ZXN0c19kaXIoKSwgc2VsZi5fRk9SQ0VfR0NfRklMRSkKKworICAgIGRlZiBydW5f
c2luZ2xlKHNlbGYsIGRyaXZlciwgcGF0aF9vcl91cmwsIHRpbWVfb3V0X21zLCBzaG91bGRfcnVu
X3BpeGVsX3Rlc3Q9RmFsc2UpOgorICAgICAgICAjIEZvcmNlIEdDIHRvIHByZXZlbnQgcGFnZWxv
YWQgbm9pc2UuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgy
MDMKKyAgICAgICAgc3VwZXIoUGFnZUxvYWRpbmdQZXJmVGVzdCwgc2VsZikucnVuX3NpbmdsZShk
cml2ZXIsIHNlbGYuZm9yY2VfZ2NfdGVzdCwgdGltZV9vdXRfbXMsIEZhbHNlKQorICAgICAgICBy
ZXR1cm4gc3VwZXIoUGFnZUxvYWRpbmdQZXJmVGVzdCwgc2VsZikucnVuX3NpbmdsZShkcml2ZXIs
IHBhdGhfb3JfdXJsLCB0aW1lX291dF9tcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0KQogCiAgICAg
ZGVmIHJ1bihzZWxmLCBkcml2ZXIsIHRpbWVfb3V0X21zKToKICAgICAgICAgdGVzdF90aW1lcyA9
IFtdCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0
ZXN0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVy
Zm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkJKHJldmlzaW9uIDEzMDM1NykKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRl
c3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDEzIEBAIGZyb20gd2Via2l0cHkucGVy
Zm9ybWFuY2VfdGVzdHMucGVyZnRlc3QKIGZyb20gd2Via2l0cHkucGVyZm9ybWFuY2VfdGVzdHMu
cGVyZnRlc3QgaW1wb3J0IFJlcGxheVBlcmZUZXN0CiAKIAorY2xhc3MgTW9ja1BvcnQoVGVzdFBv
cnQpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjdXN0b21fcnVuX3Rlc3Q9Tm9uZSk6CisgICAg
ICAgIHN1cGVyKE1vY2tQb3J0LCBzZWxmKS5fX2luaXRfXyhob3N0PU1vY2tIb3N0KCksIGN1c3Rv
bV9ydW5fdGVzdD1jdXN0b21fcnVuX3Rlc3QpCisKKyAgICBkZWYgcGVyZl90ZXN0c19kaXIoc2Vs
Zik6CisgICAgICAgIHJldHVybiAnL3BhdGgvc29tZS1wZXJmLXRlc3QtZGlyJworCiBjbGFzcyBN
YWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcGFyc2Vfb3V0cHV0KHNl
bGYpOgogICAgICAgICBvdXRwdXQgPSBEcml2ZXJPdXRwdXQoJ1xuJy5qb2luKFsKQEAgLTk4LDEx
ICsxMDUsMTQgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiBjbGFzcyBU
ZXN0UGFnZUxvYWRpbmdQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgY2xhc3MgTW9j
a0RyaXZlcihvYmplY3QpOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWVzKToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlcywgdGVzdCk6CiAgICAgICAgICAgICBzZWxm
Ll92YWx1ZXMgPSB2YWx1ZXMKICAgICAgICAgICAgIHNlbGYuX2luZGV4ID0gMAorICAgICAgICAg
ICAgc2VsZi5fdGVzdCA9IHRlc3QKIAogICAgICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgaW5wdXQs
IHN0b3Bfd2hlbl9kb25lKToKKyAgICAgICAgICAgIGlmIGlucHV0LnRlc3RfbmFtZSA9PSBzZWxm
Ll90ZXN0LmZvcmNlX2djX3Rlc3Q6CisgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAg
ICB2YWx1ZSA9IHNlbGYuX3ZhbHVlc1tzZWxmLl9pbmRleF0KICAgICAgICAgICAgIHNlbGYuX2lu
ZGV4ICs9IDEKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CkBAIC0xMTEs
OCArMTIxLDkgQEAgY2xhc3MgVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QodW5pdHRlc3QuVAogICAg
ICAgICAgICAgICAgIHJldHVybiBEcml2ZXJPdXRwdXQoJ3NvbWUgb3V0cHV0JywgaW1hZ2U9Tm9u
ZSwgaW1hZ2VfaGFzaD1Ob25lLCBhdWRpbz1Ob25lLCB0ZXN0X3RpbWU9c2VsZi5fdmFsdWVzW3Nl
bGYuX2luZGV4IC0gMV0pCiAKICAgICBkZWYgdGVzdF9ydW4oc2VsZik6Ci0gICAgICAgIHRlc3Qg
PSBQYWdlTG9hZGluZ1BlcmZUZXN0KE5vbmUsICdzb21lLXRlc3QnLCAnL3BhdGgvc29tZS1kaXIv
c29tZS10ZXN0JykKLSAgICAgICAgZHJpdmVyID0gVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QuTW9j
a0RyaXZlcihyYW5nZSgxLCAyMSkpCisgICAgICAgIHBvcnQgPSBNb2NrUG9ydCgpCisgICAgICAg
IHRlc3QgPSBQYWdlTG9hZGluZ1BlcmZUZXN0KHBvcnQsICdzb21lLXRlc3QnLCAnL3BhdGgvc29t
ZS1kaXIvc29tZS10ZXN0JykKKyAgICAgICAgZHJpdmVyID0gVGVzdFBhZ2VMb2FkaW5nUGVyZlRl
c3QuTW9ja0RyaXZlcihyYW5nZSgxLCAyMSksIHRlc3QpCiAgICAgICAgIG91dHB1dF9jYXB0dXJl
ID0gT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIG91dHB1dF9jYXB0dXJlLmNhcHR1cmVfb3V0cHV0
KCkKICAgICAgICAgdHJ5OgpAQCAtMTI5LDggKzE0MCw5IEBAIGNsYXNzIFRlc3RQYWdlTG9hZGlu
Z1BlcmZUZXN0KHVuaXR0ZXN0LlQKICAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRDYXB0
dXJlKCkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0ZXN0ID0gUGFnZUxvYWRpbmdQZXJmVGVzdChOb25lLCAnc29tZS10
ZXN0JywgJy9wYXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCi0gICAgICAgICAgICBkcml2ZXIgPSBU
ZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKFsxLCAyLCAzLCA0LCA1LCA2LCA3LCAn
c29tZSBlcnJvcicsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAy
MF0pCisgICAgICAgICAgICBwb3J0ID0gTW9ja1BvcnQoKQorICAgICAgICAgICAgdGVzdCA9IFBh
Z2VMb2FkaW5nUGVyZlRlc3QocG9ydCwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21l
LXRlc3QnKQorICAgICAgICAgICAgZHJpdmVyID0gVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QuTW9j
a0RyaXZlcihbMSwgMiwgMywgNCwgNSwgNiwgNywgJ3NvbWUgZXJyb3InLCA5LCAxMCwgMTEsIDEy
LCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjBdLCB0ZXN0KQogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0ZXN0LnJ1bihkcml2ZXIsIE5vbmUpLCBOb25lKQogICAgICAgICBmaW5h
bGx5OgogICAgICAgICAgICAgYWN0dWFsX3N0ZG91dCwgYWN0dWFsX3N0ZGVyciwgYWN0dWFsX2xv
Z3MgPSBvdXRwdXRfY2FwdHVyZS5yZXN0b3JlX291dHB1dCgpCkBAIC0xNDEsNyArMTUzLDcgQEAg
Y2xhc3MgVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QodW5pdHRlc3QuVAogCiBjbGFzcyBUZXN0UmVw
bGF5UGVyZlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCi0gICAgY2xhc3MgUmVwbGF5VGVzdFBv
cnQoVGVzdFBvcnQpOgorICAgIGNsYXNzIFJlcGxheVRlc3RQb3J0KE1vY2tQb3J0KToKICAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGN1c3RvbV9ydW5fdGVzdD1Ob25lKToKIAogICAgICAgICAg
ICAgY2xhc3MgUmVwbGF5VGVzdERyaXZlcihUZXN0RHJpdmVyKToKQEAgLTE0OSw3ICsxNjEsNyBA
QCBjbGFzcyBUZXN0UmVwbGF5UGVyZlRlc3QodW5pdHRlc3QuVGVzdENhCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjdXN0b21fcnVuX3Rlc3QodGV4dF9pbnB1dCwgc3RvcF93aGVuX2RvbmUp
IGlmIGN1c3RvbV9ydW5fdGVzdCBlbHNlIE5vbmUKIAogICAgICAgICAgICAgc2VsZi5fY3VzdG9t
X2RyaXZlcl9jbGFzcyA9IFJlcGxheVRlc3REcml2ZXIKLSAgICAgICAgICAgIHN1cGVyKHNlbGYu
X19jbGFzc19fLCBzZWxmKS5fX2luaXRfXyhob3N0PU1vY2tIb3N0KCkpCisgICAgICAgICAgICBz
dXBlcihzZWxmLl9fY2xhc3NfXywgc2VsZikuX19pbml0X18oKQogCiAgICAgICAgIGRlZiBfZHJp
dmVyX2NsYXNzKHNlbGYpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2N1c3RvbV9kcml2ZXJf
Y2xhc3MKQEAgLTE3OSw2ICsxOTEsOSBAQCBjbGFzcyBUZXN0UmVwbGF5UGVyZlRlc3QodW5pdHRl
c3QuVGVzdENhCiAgICAgICAgIGxvYWRlZF9wYWdlcyA9IFtdCiAKICAgICAgICAgZGVmIHJ1bl90
ZXN0KHRlc3RfaW5wdXQsIHN0b3Bfd2hlbl9kb25lKToKKyAgICAgICAgICAgIGlmIHRlc3RfaW5w
dXQudGVzdF9uYW1lID09IHRlc3QuZm9yY2VfZ2NfdGVzdDoKKyAgICAgICAgICAgICAgICBsb2Fk
ZWRfcGFnZXMuYXBwZW5kKHRlc3RfaW5wdXQpCisgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAg
ICAgICAgICBpZiB0ZXN0X2lucHV0LnRlc3RfbmFtZSAhPSAiYWJvdXQ6YmxhbmsiOgogICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdF9pbnB1dC50ZXN0X25hbWUsICdodHRwOi8v
c29tZS10ZXN0LycpCiAgICAgICAgICAgICBsb2FkZWRfcGFnZXMuYXBwZW5kKHRlc3RfaW5wdXQp
CkBAIC0xOTYsOCArMjExLDkgQEAgY2xhc3MgVGVzdFJlcGxheVBlcmZUZXN0KHVuaXR0ZXN0LlRl
c3RDYQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgYWN0dWFsX3N0ZG91dCwgYWN0dWFs
X3N0ZGVyciwgYWN0dWFsX2xvZ3MgPSBvdXRwdXRfY2FwdHVyZS5yZXN0b3JlX291dHB1dCgpCiAK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obG9hZGVkX3BhZ2VzKSwgMSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsb2FkZWRfcGFnZXNbMF0udGVzdF9uYW1lLCAnaHR0cDovL3NvbWUt
dGVzdC8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2FkZWRfcGFnZXMpLCAyKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlZF9wYWdlc1swXS50ZXN0X25hbWUsIHRlc3Qu
Zm9yY2VfZ2NfdGVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2FkZWRfcGFnZXNbMV0u
dGVzdF9uYW1lLCAnaHR0cDovL3NvbWUtdGVzdC8nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGFjdHVhbF9zdGRvdXQsICcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9zdGRl
cnIsICcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9sb2dzLCAnJykKQEAgLTI2
Miw4ICsyNzgsOSBAQCBjbGFzcyBUZXN0UmVwbGF5UGVyZlRlc3QodW5pdHRlc3QuVGVzdENhCiAg
ICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBhY3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJy
LCBhY3R1YWxfbG9ncyA9IG91dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKIAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2FkZWRfcGFnZXMpLCAxKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxvYWRlZF9wYWdlc1swXS50ZXN0X25hbWUsICdodHRwOi8vc29tZS10ZXN0Lycp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGxvYWRlZF9wYWdlcyksIDIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobG9hZGVkX3BhZ2VzWzBdLnRlc3RfbmFtZSwgdGVzdC5mb3JjZV9n
Y190ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlZF9wYWdlc1sxXS50ZXN0X25h
bWUsICdodHRwOi8vc29tZS10ZXN0LycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFs
X3N0ZG91dCwgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZGVyciwgJycp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2xvZ3MsICdlcnJvcjogc29tZS10ZXN0
LnJlcGxheVxuc29tZSBlcnJvclxuJykKQEAgLTMxNiwxNSArMzMzLDE1IEBAIGNsYXNzIFRlc3RS
ZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKIAogY2xhc3MgVGVzdFBlcmZUZXN0RmFjdG9y
eSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcmVndWxhcl90ZXN0KHNlbGYpOgot
ICAgICAgICB0ZXN0ID0gUGVyZlRlc3RGYWN0b3J5LmNyZWF0ZV9wZXJmX3Rlc3QoTm9uZSwgJ3Nv
bWUtZGlyL3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQorICAgICAgICB0
ZXN0ID0gUGVyZlRlc3RGYWN0b3J5LmNyZWF0ZV9wZXJmX3Rlc3QoTW9ja1BvcnQoKSwgJ3NvbWUt
ZGlyL3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRlc3QuX19jbGFzc19fLCBQZXJmVGVzdCkKIAogICAgIGRlZiB0ZXN0X2lu
c3BlY3Rvcl90ZXN0KHNlbGYpOgotICAgICAgICB0ZXN0ID0gUGVyZlRlc3RGYWN0b3J5LmNyZWF0
ZV9wZXJmX3Rlc3QoTm9uZSwgJ2luc3BlY3Rvci9zb21lLXRlc3QnLCAnL3BhdGgvaW5zcGVjdG9y
L3NvbWUtdGVzdCcpCisgICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZf
dGVzdChNb2NrUG9ydCgpLCAnaW5zcGVjdG9yL3NvbWUtdGVzdCcsICcvcGF0aC9pbnNwZWN0b3Iv
c29tZS10ZXN0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0Ll9fY2xhc3NfXywgQ2hy
b21pdW1TdHlsZVBlcmZUZXN0KQogCiAgICAgZGVmIHRlc3RfcGFnZV9sb2FkaW5nX3Rlc3Qoc2Vs
Zik6Ci0gICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChOb25l
LCAnUGFnZUxvYWQvc29tZS10ZXN0JywgJy9wYXRoL1BhZ2VMb2FkL3NvbWUtdGVzdCcpCisgICAg
ICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChNb2NrUG9ydCgpLCAn
UGFnZUxvYWQvc29tZS10ZXN0JywgJy9wYXRoL1BhZ2VMb2FkL3NvbWUtdGVzdCcpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5fX2NsYXNzX18sIFBhZ2VMb2FkaW5nUGVyZlRlc3QpCiAK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167037</attachid>
            <date>2012-10-03 23:05:34 -0700</date>
            <delta_ts>2012-10-03 23:29:34 -0700</delta_ts>
            <desc>Remove unnecessary perf_tests_dir definition.</desc>
            <filename>98203.5.patch</filename>
            <type>text/plain</type>
            <size>10870</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzAzNjIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTAzICBQ
aGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRm9yY2UgR0MgYmV0d2Vl
biBQYWdlTG9hZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisg
ICAgICAgIFByZXZpb3VzbHksIG91ciBQYWdlTG9hZCBQZXJmVGVzdHMgaGFkIG11bHRpLW1vZGFs
IGRpc3RyaWJ1dGlvbnMsCisgICAgICAgIHR5cGljYWxseSB3aXRoIGEgc21hbGwgY2x1c3RlciBh
dCAxLTJ4IHRoZSBtZWRpYW4uIFRoaXMgdHVybmVkIG91dAorICAgICAgICB0byBiZSBjYXVzZWQg
Ynkgbm90IGdhcmJhZ2UgY29sbGVjdGluZyBiZXR3ZWVuIHRlc3RzIQorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBhIG5ldyBmaWxlLCBmb3JjZS1nYy5odG1sLCBhbmQgbG9hZHMgdGhpcyBmaWxl
IGJldHdlZW4KKyAgICAgICAgUGFnZUxvYWQgdGVzdHMgdG8gZm9yY2UgYSBHQy4gSSBtYW51YWxs
eSB2ZXJpZmllZCB0aGF0IHRoaXMgY2xlYW5zIHVwCisgICAgICAgIG91ciBwZXJmIHRlc3Qgb3V0
bGllcnMuCisKKyAgICAgICAgKiByZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbDogQWRkZWQuCisKIDIw
MTItMTAtMDMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIGEgcGVyZm9ybWFuY2UgdGVzdCBmb3Igc3VidHJlZSBkZXRhY2hpbmcKSW5kZXg6
IFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2ZvcmNlLWdjLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
UGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvZm9yY2UtZ2MuaHRtbAkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2ZvcmNlLWdjLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8IS0tIFRoaXMgcGFnZSBmb3JjZXMgYSBH
QyBpbiBEUlQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODIw
My4gLS0+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0id2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0
KCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDM2MikKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTEwLTAzICBQaGlsaXAgUm9n
ZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRm9yY2UgR0MgYmV0d2VlbiBQYWdlTG9h
ZCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFBy
ZXZpb3VzbHksIG91ciBQYWdlTG9hZCBQZXJmVGVzdHMgaGFkIG11bHRpLW1vZGFsIGRpc3RyaWJ1
dGlvbnMsCisgICAgICAgIHR5cGljYWxseSB3aXRoIGEgc21hbGwgY2x1c3RlciBhdCAxLTJ4IHRo
ZSBtZWRpYW4uIFRoaXMgdHVybmVkIG91dAorICAgICAgICB0byBiZSBjYXVzZWQgYnkgbm90IGdh
cmJhZ2UgY29sbGVjdGluZyBiZXR3ZWVuIHRlc3RzIQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhIG5ldyBmaWxlLCBmb3JjZS1nYy5odG1sLCBhbmQgbG9hZHMgdGhpcyBmaWxlIGJldHdlZW4K
KyAgICAgICAgUGFnZUxvYWQgdGVzdHMgdG8gZm9yY2UgYSBHQy4gSSBtYW51YWxseSB2ZXJpZmll
ZCB0aGF0IHRoaXMgY2xlYW5zIHVwCisgICAgICAgIG91ciBwZXJmIHRlc3Qgb3V0bGllcnMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5
OgorICAgICAgICAoUGFnZUxvYWRpbmdQZXJmVGVzdC5fX2luaXRfXyk6CisgICAgICAgIChQYWdl
TG9hZGluZ1BlcmZUZXN0KToKKyAgICAgICAgKFBhZ2VMb2FkaW5nUGVyZlRlc3QucnVuX3Npbmds
ZSk6CisKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gbm93IGxvYWRzIHR3byBwYWdlczogb25l
IHRvIGZvcmNlIGEgZ2MgYW5kCisgICAgICAgICAgICB0aGVuIHRoZSB0ZXN0IHRvIHJ1bi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5p
dHRlc3QucHk6CisKKyAgICAgICAgICAgIE1vZGlmaWVkIHNldmVyYWwgZXhpc3RpbmcgdGVzdHMg
dG8gc2hvdyB0aGF0IHRoZSBmb3JjZS1nYyBmaWxlCisgICAgICAgICAgICBpcyBsb2FkZWQuCisK
KyAgICAgICAgKE1vY2tQb3J0KToKKyAgICAgICAgKE1vY2tQb3J0Ll9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tQb3J0LnBlcmZfdGVzdHNfZGlyKToKKyAgICAgICAgKFRlc3RQYWdlTG9hZGluZ1Bl
cmZUZXN0Lk1vY2tEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoVGVzdFBhZ2VMb2FkaW5nUGVy
ZlRlc3QuTW9ja0RyaXZlci5ydW5fdGVzdCk6CisgICAgICAgIChUZXN0UGFnZUxvYWRpbmdQZXJm
VGVzdC50ZXN0X3J1bik6CisgICAgICAgIChUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC50ZXN0X3J1
bl93aXRoX2JhZF9vdXRwdXQpOgorICAgICAgICAoVGVzdFJlcGxheVBlcmZUZXN0LlJlcGxheVRl
c3RQb3J0KToKKyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC5SZXBsYXlUZXN0UG9ydC5fX2lu
aXRfXyk6CisgICAgICAgIChUZXN0UmVwbGF5UGVyZlRlc3QudGVzdF9ydW5fc2luZ2xlLnJ1bl90
ZXN0KToKKyAgICAgICAgKFRlc3RSZXBsYXlQZXJmVGVzdC50ZXN0X3J1bl9zaW5nbGUpOgorICAg
ICAgICAoVGVzdFJlcGxheVBlcmZUZXN0LnRlc3RfcnVuX3NpbmdsZV9mYWlsc193aGVuX291dHB1
dF9oYXNfZXJyb3IpOgorICAgICAgICAoVGVzdFBlcmZUZXN0RmFjdG9yeS50ZXN0X3JlZ3VsYXJf
dGVzdCk6CisgICAgICAgIChUZXN0UGVyZlRlc3RGYWN0b3J5LnRlc3RfaW5zcGVjdG9yX3Rlc3Qp
OgorICAgICAgICAoVGVzdFBlcmZUZXN0RmFjdG9yeS50ZXN0X3BhZ2VfbG9hZGluZ190ZXN0KToK
KwogMjAxMi0xMC0wMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBydW4td2Via2l0LXRlc3RzIHRlc3RzIG9uIHdpbjMyIGFmdGVyIHIxMjczMDIKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJm
dGVzdC5weQkocmV2aXNpb24gMTMwMzU3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJm
b3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjAyLDggKzIwMiwx
NiBAQCBjbGFzcyBDaHJvbWl1bVN0eWxlUGVyZlRlc3QoUGVyZlRlc3QpOgogCiAKIGNsYXNzIFBh
Z2VMb2FkaW5nUGVyZlRlc3QoUGVyZlRlc3QpOgorICAgIF9GT1JDRV9HQ19GSUxFID0gJ3Jlc291
cmNlcy9mb3JjZS1nYy5odG1sJworCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHRlc3Rf
bmFtZSwgcGF0aF9vcl91cmwpOgogICAgICAgICBzdXBlcihQYWdlTG9hZGluZ1BlcmZUZXN0LCBz
ZWxmKS5fX2luaXRfXyhwb3J0LCB0ZXN0X25hbWUsIHBhdGhfb3JfdXJsKQorICAgICAgICBzZWxm
LmZvcmNlX2djX3Rlc3QgPSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuX3Bv
cnQucGVyZl90ZXN0c19kaXIoKSwgc2VsZi5fRk9SQ0VfR0NfRklMRSkKKworICAgIGRlZiBydW5f
c2luZ2xlKHNlbGYsIGRyaXZlciwgcGF0aF9vcl91cmwsIHRpbWVfb3V0X21zLCBzaG91bGRfcnVu
X3BpeGVsX3Rlc3Q9RmFsc2UpOgorICAgICAgICAjIEZvcmNlIEdDIHRvIHByZXZlbnQgcGFnZWxv
YWQgbm9pc2UuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgy
MDMKKyAgICAgICAgc3VwZXIoUGFnZUxvYWRpbmdQZXJmVGVzdCwgc2VsZikucnVuX3NpbmdsZShk
cml2ZXIsIHNlbGYuZm9yY2VfZ2NfdGVzdCwgdGltZV9vdXRfbXMsIEZhbHNlKQorICAgICAgICBy
ZXR1cm4gc3VwZXIoUGFnZUxvYWRpbmdQZXJmVGVzdCwgc2VsZikucnVuX3NpbmdsZShkcml2ZXIs
IHBhdGhfb3JfdXJsLCB0aW1lX291dF9tcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0KQogCiAgICAg
ZGVmIHJ1bihzZWxmLCBkcml2ZXIsIHRpbWVfb3V0X21zKToKICAgICAgICAgdGVzdF90aW1lcyA9
IFtdCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0
ZXN0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVy
Zm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkJKHJldmlzaW9uIDEzMDM1NykKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRl
c3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDEwIEBAIGZyb20gd2Via2l0cHkucGVy
Zm9ybWFuY2VfdGVzdHMucGVyZnRlc3QKIGZyb20gd2Via2l0cHkucGVyZm9ybWFuY2VfdGVzdHMu
cGVyZnRlc3QgaW1wb3J0IFJlcGxheVBlcmZUZXN0CiAKIAorY2xhc3MgTW9ja1BvcnQoVGVzdFBv
cnQpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjdXN0b21fcnVuX3Rlc3Q9Tm9uZSk6CisgICAg
ICAgIHN1cGVyKE1vY2tQb3J0LCBzZWxmKS5fX2luaXRfXyhob3N0PU1vY2tIb3N0KCksIGN1c3Rv
bV9ydW5fdGVzdD1jdXN0b21fcnVuX3Rlc3QpCisKIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICBkZWYgdGVzdF9wYXJzZV9vdXRwdXQoc2VsZik6CiAgICAgICAgIG91dHB1
dCA9IERyaXZlck91dHB1dCgnXG4nLmpvaW4oWwpAQCAtOTgsMTEgKzEwMiwxNCBAQCBjbGFzcyBN
YWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIGNsYXNzIFRlc3RQYWdlTG9hZGluZ1BlcmZU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBjbGFzcyBNb2NrRHJpdmVyKG9iamVjdCk6Ci0g
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZXMpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgdmFsdWVzLCB0ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3ZhbHVlcyA9IHZhbHVlcwog
ICAgICAgICAgICAgc2VsZi5faW5kZXggPSAwCisgICAgICAgICAgICBzZWxmLl90ZXN0ID0gdGVz
dAogCiAgICAgICAgIGRlZiBydW5fdGVzdChzZWxmLCBpbnB1dCwgc3RvcF93aGVuX2RvbmUpOgor
ICAgICAgICAgICAgaWYgaW5wdXQudGVzdF9uYW1lID09IHNlbGYuX3Rlc3QuZm9yY2VfZ2NfdGVz
dDoKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5fdmFs
dWVzW3NlbGYuX2luZGV4XQogICAgICAgICAgICAgc2VsZi5faW5kZXggKz0gMQogICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKQEAgLTExMSw4ICsxMTgsOSBAQCBjbGFzcyBU
ZXN0UGFnZUxvYWRpbmdQZXJmVGVzdCh1bml0dGVzdC5UCiAgICAgICAgICAgICAgICAgcmV0dXJu
IERyaXZlck91dHB1dCgnc29tZSBvdXRwdXQnLCBpbWFnZT1Ob25lLCBpbWFnZV9oYXNoPU5vbmUs
IGF1ZGlvPU5vbmUsIHRlc3RfdGltZT1zZWxmLl92YWx1ZXNbc2VsZi5faW5kZXggLSAxXSkKIAog
ICAgIGRlZiB0ZXN0X3J1bihzZWxmKToKLSAgICAgICAgdGVzdCA9IFBhZ2VMb2FkaW5nUGVyZlRl
c3QoTm9uZSwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQotICAgICAg
ICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKHJhbmdlKDEsIDIx
KSkKKyAgICAgICAgcG9ydCA9IE1vY2tQb3J0KCkKKyAgICAgICAgdGVzdCA9IFBhZ2VMb2FkaW5n
UGVyZlRlc3QocG9ydCwgJ3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQor
ICAgICAgICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKHJhbmdl
KDEsIDIxKSwgdGVzdCkKICAgICAgICAgb3V0cHV0X2NhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkK
ICAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICB0cnk6CkBA
IC0xMjksOCArMTM3LDkgQEAgY2xhc3MgVGVzdFBhZ2VMb2FkaW5nUGVyZlRlc3QodW5pdHRlc3Qu
VAogICAgICAgICBvdXRwdXRfY2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQogICAgICAgICBvdXRw
dXRfY2FwdHVyZS5jYXB0dXJlX291dHB1dCgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRl
c3QgPSBQYWdlTG9hZGluZ1BlcmZUZXN0KE5vbmUsICdzb21lLXRlc3QnLCAnL3BhdGgvc29tZS1k
aXIvc29tZS10ZXN0JykKLSAgICAgICAgICAgIGRyaXZlciA9IFRlc3RQYWdlTG9hZGluZ1BlcmZU
ZXN0Lk1vY2tEcml2ZXIoWzEsIDIsIDMsIDQsIDUsIDYsIDcsICdzb21lIGVycm9yJywgOSwgMTAs
IDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSkKKyAgICAgICAgICAgIHBv
cnQgPSBNb2NrUG9ydCgpCisgICAgICAgICAgICB0ZXN0ID0gUGFnZUxvYWRpbmdQZXJmVGVzdChw
b3J0LCAnc29tZS10ZXN0JywgJy9wYXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCisgICAgICAgICAg
ICBkcml2ZXIgPSBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdC5Nb2NrRHJpdmVyKFsxLCAyLCAzLCA0
LCA1LCA2LCA3LCAnc29tZSBlcnJvcicsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAx
NywgMTgsIDE5LCAyMF0sIHRlc3QpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3Qu
cnVuKGRyaXZlciwgTm9uZSksIE5vbmUpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBh
Y3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9ncyA9IG91dHB1dF9jYXB0dXJl
LnJlc3RvcmVfb3V0cHV0KCkKQEAgLTE0MSw3ICsxNTAsNyBAQCBjbGFzcyBUZXN0UGFnZUxvYWRp
bmdQZXJmVGVzdCh1bml0dGVzdC5UCiAKIGNsYXNzIFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKLSAgICBjbGFzcyBSZXBsYXlUZXN0UG9ydChUZXN0UG9ydCk6CisgICAg
Y2xhc3MgUmVwbGF5VGVzdFBvcnQoTW9ja1BvcnQpOgogICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgY3VzdG9tX3J1bl90ZXN0PU5vbmUpOgogCiAgICAgICAgICAgICBjbGFzcyBSZXBsYXlUZXN0
RHJpdmVyKFRlc3REcml2ZXIpOgpAQCAtMTQ5LDcgKzE1OCw3IEBAIGNsYXNzIFRlc3RSZXBsYXlQ
ZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1c3Rv
bV9ydW5fdGVzdCh0ZXh0X2lucHV0LCBzdG9wX3doZW5fZG9uZSkgaWYgY3VzdG9tX3J1bl90ZXN0
IGVsc2UgTm9uZQogCiAgICAgICAgICAgICBzZWxmLl9jdXN0b21fZHJpdmVyX2NsYXNzID0gUmVw
bGF5VGVzdERyaXZlcgotICAgICAgICAgICAgc3VwZXIoc2VsZi5fX2NsYXNzX18sIHNlbGYpLl9f
aW5pdF9fKGhvc3Q9TW9ja0hvc3QoKSkKKyAgICAgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19f
LCBzZWxmKS5fX2luaXRfXygpCiAKICAgICAgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CiAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fY3VzdG9tX2RyaXZlcl9jbGFzcwpAQCAtMTc5LDYgKzE4
OCw5IEBAIGNsYXNzIFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAg
bG9hZGVkX3BhZ2VzID0gW10KIAogICAgICAgICBkZWYgcnVuX3Rlc3QodGVzdF9pbnB1dCwgc3Rv
cF93aGVuX2RvbmUpOgorICAgICAgICAgICAgaWYgdGVzdF9pbnB1dC50ZXN0X25hbWUgPT0gdGVz
dC5mb3JjZV9nY190ZXN0OgorICAgICAgICAgICAgICAgIGxvYWRlZF9wYWdlcy5hcHBlbmQodGVz
dF9pbnB1dCkKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIGlmIHRlc3RfaW5w
dXQudGVzdF9uYW1lICE9ICJhYm91dDpibGFuayI6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0ZXN0X2lucHV0LnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRlc3QvJykKICAgICAg
ICAgICAgIGxvYWRlZF9wYWdlcy5hcHBlbmQodGVzdF9pbnB1dCkKQEAgLTE5Niw4ICsyMDgsOSBA
QCBjbGFzcyBUZXN0UmVwbGF5UGVyZlRlc3QodW5pdHRlc3QuVGVzdENhCiAgICAgICAgIGZpbmFs
bHk6CiAgICAgICAgICAgICBhY3R1YWxfc3Rkb3V0LCBhY3R1YWxfc3RkZXJyLCBhY3R1YWxfbG9n
cyA9IG91dHB1dF9jYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihsb2FkZWRfcGFnZXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxv
YWRlZF9wYWdlc1swXS50ZXN0X25hbWUsICdodHRwOi8vc29tZS10ZXN0LycpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKGxvYWRlZF9wYWdlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobG9hZGVkX3BhZ2VzWzBdLnRlc3RfbmFtZSwgdGVzdC5mb3JjZV9nY190ZXN0KQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlZF9wYWdlc1sxXS50ZXN0X25hbWUsICdodHRwOi8v
c29tZS10ZXN0LycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZG91dCwgJycp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3N0ZGVyciwgJycpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2xvZ3MsICcnKQpAQCAtMjYyLDggKzI3NSw5IEBAIGNsYXNz
IFRlc3RSZXBsYXlQZXJmVGVzdCh1bml0dGVzdC5UZXN0Q2EKICAgICAgICAgZmluYWxseToKICAg
ICAgICAgICAgIGFjdHVhbF9zdGRvdXQsIGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0
cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGxvYWRlZF9wYWdlcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9hZGVkX3Bh
Z2VzWzBdLnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRlc3QvJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4obG9hZGVkX3BhZ2VzKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
b2FkZWRfcGFnZXNbMF0udGVzdF9uYW1lLCB0ZXN0LmZvcmNlX2djX3Rlc3QpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobG9hZGVkX3BhZ2VzWzFdLnRlc3RfbmFtZSwgJ2h0dHA6Ly9zb21lLXRl
c3QvJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfc3Rkb3V0LCAnJykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfc3RkZXJyLCAnJykKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChhY3R1YWxfbG9ncywgJ2Vycm9yOiBzb21lLXRlc3QucmVwbGF5XG5zb21lIGVycm9y
XG4nKQpAQCAtMzE2LDE1ICszMzAsMTUgQEAgY2xhc3MgVGVzdFJlcGxheVBlcmZUZXN0KHVuaXR0
ZXN0LlRlc3RDYQogCiBjbGFzcyBUZXN0UGVyZlRlc3RGYWN0b3J5KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgdGVzdF9yZWd1bGFyX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHRlc3QgPSBQZXJm
VGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChOb25lLCAnc29tZS1kaXIvc29tZS10ZXN0Jywg
Jy9wYXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCisgICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3Rv
cnkuY3JlYXRlX3BlcmZfdGVzdChNb2NrUG9ydCgpLCAnc29tZS1kaXIvc29tZS10ZXN0JywgJy9w
YXRoL3NvbWUtZGlyL3NvbWUtdGVzdCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5f
X2NsYXNzX18sIFBlcmZUZXN0KQogCiAgICAgZGVmIHRlc3RfaW5zcGVjdG9yX3Rlc3Qoc2VsZik6
Ci0gICAgICAgIHRlc3QgPSBQZXJmVGVzdEZhY3RvcnkuY3JlYXRlX3BlcmZfdGVzdChOb25lLCAn
aW5zcGVjdG9yL3NvbWUtdGVzdCcsICcvcGF0aC9pbnNwZWN0b3Ivc29tZS10ZXN0JykKKyAgICAg
ICAgdGVzdCA9IFBlcmZUZXN0RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE1vY2tQb3J0KCksICdp
bnNwZWN0b3Ivc29tZS10ZXN0JywgJy9wYXRoL2luc3BlY3Rvci9zb21lLXRlc3QnKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRlc3QuX19jbGFzc19fLCBDaHJvbWl1bVN0eWxlUGVyZlRlc3Qp
CiAKICAgICBkZWYgdGVzdF9wYWdlX2xvYWRpbmdfdGVzdChzZWxmKToKLSAgICAgICAgdGVzdCA9
IFBlcmZUZXN0RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE5vbmUsICdQYWdlTG9hZC9zb21lLXRl
c3QnLCAnL3BhdGgvUGFnZUxvYWQvc29tZS10ZXN0JykKKyAgICAgICAgdGVzdCA9IFBlcmZUZXN0
RmFjdG9yeS5jcmVhdGVfcGVyZl90ZXN0KE1vY2tQb3J0KCksICdQYWdlTG9hZC9zb21lLXRlc3Qn
LCAnL3BhdGgvUGFnZUxvYWQvc29tZS10ZXN0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
ZXN0Ll9fY2xhc3NfXywgUGFnZUxvYWRpbmdQZXJmVGVzdCkKIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>