<?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>143093</bug_id>
          
          <creation_ts>2015-03-26 04:35:15 -0700</creation_ts>
          <short_desc>webkit-patch build-and-test should have an option to iterate over new tests</short_desc>
          <delta_ts>2016-01-08 00:37:11 -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>
          <dependson>143135</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080259</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-26 04:35:15 -0700</bug_when>
    <thetext>As part of enabling limited EWS bots to check new tests, webkit-patch should have the ability to run new tests and report results.
This could be done by adding an option to webkit-patch build-and-test to iterate a number of times on new tests and make a report in case of failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080262</commentid>
    <comment_count>1</comment_count>
      <attachid>249485</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-26 04:40:34 -0700</bug_when>
    <thetext>Created attachment 249485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080660</commentid>
    <comment_count>2</comment_count>
      <attachid>249585</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-27 11:00:29 -0700</bug_when>
    <thetext>Created attachment 249585
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080662</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-27 11:02:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created attachment 249585 [details]
&gt; WIP

Another try after 143090.
Plan is to add a unit test for the new_or_modified_potential_tests function.
Any feedback appreciated before doing that extra step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081240</commentid>
    <comment_count>4</comment_count>
      <attachid>249749</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-30 11:12:51 -0700</bug_when>
    <thetext>Created attachment 249749
WIP2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081591</commentid>
    <comment_count>5</comment_count>
      <attachid>249811</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-31 02:41:47 -0700</bug_when>
    <thetext>Created attachment 249811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153403</commentid>
    <comment_count>6</comment_count>
      <attachid>268450</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-07 06:57:43 -0800</bug_when>
    <thetext>Created attachment 268450
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153406</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-07 07:02:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created attachment 268450 [details]
&gt; Rebasing

Introduced option (iterate_on_new_tests) may allow gtk/efl/win EWS bots to check new/modified tests at a hopefully small cost.
This option may also be useful in general to check for test flakiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153412</commentid>
    <comment_count>8</comment_count>
      <attachid>268450</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-07 07:56:09 -0800</bug_when>
    <thetext>Comment on attachment 268450
Rebasing

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

&gt; Tools/ChangeLog:10
&gt; +        Computationf of new or modified tests is doen by LayoutTestFinder.find_touched_tests

Computationf -&gt; Computation

doen -&gt; done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153772</commentid>
    <comment_count>9</comment_count>
      <attachid>268531</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-07 23:35:06 -0800</bug_when>
    <thetext>Created attachment 268531
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153773</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-07 23:39:23 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        Computationf of new or modified tests is doen by LayoutTestFinder.find_touched_tests
&gt; 
&gt; Computationf -&gt; Computation
&gt; 
&gt; doen -&gt; done


Doen... hum done ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153776</commentid>
    <comment_count>11</comment_count>
      <attachid>268531</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-08 00:37:05 -0800</bug_when>
    <thetext>Comment on attachment 268531
Patch for landing

Clearing flags on attachment: 268531

Committed r194761: &lt;http://trac.webkit.org/changeset/194761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153777</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-08 00:37:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249485</attachid>
            <date>2015-03-26 04:40:34 -0700</date>
            <delta_ts>2015-03-27 11:00:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143093-20150326123955.patch</filename>
            <type>text/plain</type>
            <size>4342</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWIyODRlYjFmOGY4M2FkMzI0MTllMjIwNTJhMjZlMzMw
OTU2M2IxMS4uOTVjMmY3NTQ1ODY1NDNmYTJiM2ZmZmE3MzVkZDZkNTdjNWYxMWY4OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE1LTAzLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZCBhIG5ldyBvcHRpb24gJy0t
aXRlcmF0ZS1vbi1uZXctdGVzdHMiIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVzdCBzbyB0
aGF0IAorICAgICAgICBuZXcgdGVzdHMgYXJlIHJ1biBhIG51bWJlciBvZiB0aW1lIHNwZWNpZmll
ZCBieSB0aGUgb3B0aW9uLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB6ZXJvLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25z
KTogQWRkaW5nIGFuIG9wdGlvbiB0byBpdGVyYXRlIG9uIG5ldyB0ZXN0cy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChSdW5UZXN0
cy5vcHRpb25zKTogQWRkaW5nIHRoaXMgbmV3IG9wdGlvbiB0byBSdW5UZXN0cy4KKyAgICAgICAg
KFJ1blRlc3RzLnJ1bik6IHJ1biB3ZWJraXQgdGVzdHMgb24gbmV3IHRlc3QgaWYgbmV3IG9wdGlv
biBpcyBzZXQuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IEFkZGVkIHRv
IHJ1biB3ZWJraXQgdGVzdHMgYXMgdXN1YWwgb3Igb25seSBmb3IgbmV3IHRlc3RzLgorCiAyMDE1
LTAzLTI1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIHByZXBhcmUtQ2hhbmdlTG9nIHRvIHdvcmsgd2l0aCBFUzYgQ2xhc3Mgc3ludGF4CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IGRjNWZl
MmM4YjRmYjE3NzNhMjFhNDhlNzAwODk0MTBmY2VhOThmZTcuLjFjNjY2OTFmMGNjYmM4MjliMDdh
ZmY0MTNkNmNmNDQ0MDUzYWE2MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToK
ICAgICByZXZpZXdlciA9IG1ha2Vfb3B0aW9uKCItciIsICItLXJldmlld2VyIiwgYWN0aW9uPSJz
dG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9InJldmlld2VyIiwgaGVscD0iVXBkYXRlIENoYW5n
ZUxvZ3MgdG8gc2F5IFJldmlld2VkIGJ5IFJFVklFV0VSLiIpCiAgICAgc3VnZ2VzdF9yZXZpZXdl
cnMgPSBtYWtlX29wdGlvbigiLS1zdWdnZXN0LXJldmlld2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik9mZmVyIHRvIENDIGFwcHJvcHJpYXRlIHJldmlld2Vy
cy4iKQogICAgIHRlc3QgPSBtYWtlX29wdGlvbigiLS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVzdD0idGVzdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlJ1biBydW4td2Via2l0LXRlc3Rz
IGJlZm9yZSBjb21taXR0aW5nLiIpCisgICAgaXRlcmF0ZV9vbl9uZXdfdGVzdHMgPSBtYWtlX29w
dGlvbigiLS1pdGVyYXRlLW9uLW5ldy10ZXN0cyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQi
LCBkZXN0PSJpdGVyYXRlX29uX25ld190ZXN0cyIsIGRlZmF1bHQ9MCwgaGVscD0iUnVuIHJ1bi13
ZWJraXQtdGVzdHMgb24gbmV3IHRlc3RzIG9ubHkgYmVmb3JlIGNvbW1pdHRpbmcsIGl0ZXJhdGlu
ZyBhIGdpdmVuIG51bWJlciBvZiB0aW1lLiIpCiAgICAgdXBkYXRlID0gbWFrZV9vcHRpb24oIi0t
bm8tdXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InVwZGF0ZSIsIGRlZmF1bHQ9
VHJ1ZSwgaGVscD0iRG9uJ3QgdXBkYXRlIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4iKQogICAgIHVw
ZGF0ZV9jaGFuZ2Vsb2dzID0gbWFrZV9vcHRpb24oIi0tdXBkYXRlLWNoYW5nZWxvZ3MiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBkZXN0PSJ1cGRhdGVfY2hhbmdlbG9ncyIsIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9IlVwZGF0ZSBleGlzdGluZyBDaGFuZ2VMb2cgZW50cmllcyB3aXRoIG5ldyBkYXRlLCBi
dWcgZGVzY3JpcHRpb24sIGFuZCB0b3VjaGVkIGZpbGVzL2Z1bmN0aW9ucy4iKQogICAgIGNoYW5n
ZWxvZ19jb3VudCA9IG1ha2Vfb3B0aW9uKCItLWNoYW5nZWxvZy1jb3VudCIsIGFjdGlvbj0ic3Rv
cmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJjaGFuZ2Vsb2dfY291bnQiLCBoZWxwPSJOdW1iZXIgb2Yg
Y2hhbmdlbG9ncyB0byBwYXJzZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3J1bnRlc3RzLnB5CmluZGV4IGVjZDYzNTE3NzMxYzAwMjk5YWNjNWUxOTk4NjkwOGU3MzVm
NjQ0ODMuLjNiMzBlODAzZmEyMzRmM2IwNzBkZTM5NTIzOWY3Yjc2YzM4MTExN2MgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTQ1LDExICs0
NSwxNSBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICByZXR1cm4gQWJz
dHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUs
CiAgICAgICAgICAgICBPcHRpb25zLnRlc3QsCisgICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVf
b25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAg
ICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICBdCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0
YXRlKToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0czoKKyAg
ICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29u
X25ld190ZXN0cykKKwogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy50ZXN0OgogICAgICAg
ICAgICAgcmV0dXJuCiAKQEAgLTk4LDcgKzEwMiw5IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0
U3RlcCk6CiAgICAgICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAgICAg
ICAgX2xvZy5pbmZvKCJFcnJvciBydW5uaW5nIHdlYmtpdF91bml0X3Rlc3RzOiAlcyIgJSBlLm1l
c3NhZ2Vfd2l0aF9vdXRwdXQoKSkKIAorICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3Rlc3RzKCkK
IAorICAgIGRlZiBfcnVuX3dlYmtpdF90ZXN0cyhzZWxmLCBpdGVyYXRlX29uX25ld190ZXN0cz0w
KToKICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMiKQogICAgICAg
ICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZToKQEAgLTEx
OSw1ICsxMjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5xdWlldDoKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLXF1aWV0IikK
IAorICAgICAgICBpZiBpdGVyYXRlX29uX25ld190ZXN0czoKKyAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLW5ldy10ZXN0cyIpCisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRpb25z
PSVkIiAlIGl0ZXJhdGVfb25fbmV3X3Rlc3RzKQorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0t
cGFzcy1pZi1uby10ZXN0IikKKwogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5k
X3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkK
ICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249585</attachid>
            <date>2015-03-27 11:00:29 -0700</date>
            <delta_ts>2015-03-30 11:12:45 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-143093-20150327185949.patch</filename>
            <type>text/plain</type>
            <size>6239</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWIyODRlYjFmOGY4M2FkMzI0MTllMjIwNTJhMjZlMzMw
OTU2M2IxMS4uYWZhYWIwN2UwYTE3NzZiOGU5YTE4ZjgwZTJhYTU1MTAxM2Y4ZWI5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE1LTAzLTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIC0taXRl
cmF0ZS1vbi1uZXctdGVzdHMgb3B0aW9uIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVzdC4K
KyAgICAgICAgSXQgYWxsb3dzIHJ1bm5pbmcgcnd0IG9uIG1vZGlmaWVkIG9yIG5ldyBwYXRocyBp
biBMYXlvdXRUZXN0cy4KKyAgICAgICAgSXQgaW1wbGVtZW50cyB0aGUgdHJhbnNsYXRpb24gb2Yg
LWV4cGVjdGVkLiogcGF0aHMgdG8gdGhlaXIgcmVsYXRlZCB0ZXN0cy4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAg
ICAgICAoUnVuVGVzdHMub3B0aW9ucyk6CisgICAgICAgIChSdW5UZXN0cy5ydW4pOgorICAgICAg
ICAoUnVuVGVzdHMpOgorICAgICAgICAoUnVuVGVzdHMubmV3X29yX21vZGlmaWVkX3BvdGVudGlh
bF90ZXN0cyk6IElkZW50aWZ5IHBvdGVudGlhbCB0ZXN0IHBhdGhzLgorICAgICAgICAoUnVuVGVz
dHMuX3J1bl93ZWJraXRfdGVzdHMpOgorCiAyMDE1LTAzLTI1ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHByZXBhcmUtQ2hhbmdlTG9nIHRv
IHdvcmsgd2l0aCBFUzYgQ2xhc3Mgc3ludGF4CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IGRjNWZlMmM4YjRmYjE3NzNhMjFhNDhlNzAwODk0MTBm
Y2VhOThmZTcuLjFjNjY2OTFmMGNjYmM4MjliMDdhZmY0MTNkNmNmNDQ0MDUzYWE2MTIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC01Niw2ICs1
Niw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICByZXZpZXdlciA9IG1ha2Vfb3B0aW9u
KCItciIsICItLXJldmlld2VyIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9
InJldmlld2VyIiwgaGVscD0iVXBkYXRlIENoYW5nZUxvZ3MgdG8gc2F5IFJldmlld2VkIGJ5IFJF
VklFV0VSLiIpCiAgICAgc3VnZ2VzdF9yZXZpZXdlcnMgPSBtYWtlX29wdGlvbigiLS1zdWdnZXN0
LXJldmlld2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik9m
ZmVyIHRvIENDIGFwcHJvcHJpYXRlIHJldmlld2Vycy4iKQogICAgIHRlc3QgPSBtYWtlX29wdGlv
bigiLS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idGVzdCIsIGRlZmF1bHQ9RmFs
c2UsIGhlbHA9IlJ1biBydW4td2Via2l0LXRlc3RzIGJlZm9yZSBjb21taXR0aW5nLiIpCisgICAg
aXRlcmF0ZV9vbl9uZXdfdGVzdHMgPSBtYWtlX29wdGlvbigiLS1pdGVyYXRlLW9uLW5ldy10ZXN0
cyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJpdGVyYXRlX29uX25ld190ZXN0
cyIsIGRlZmF1bHQ9MCwgaGVscD0iUnVuIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRlc3RzIG9u
bHkgYmVmb3JlIGNvbW1pdHRpbmcsIGl0ZXJhdGluZyBhIGdpdmVuIG51bWJlciBvZiB0aW1lLiIp
CiAgICAgdXBkYXRlID0gbWFrZV9vcHRpb24oIi0tbm8tdXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9m
YWxzZSIsIGRlc3Q9InVwZGF0ZSIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG9uJ3QgdXBkYXRlIHRo
ZSB3b3JraW5nIGRpcmVjdG9yeS4iKQogICAgIHVwZGF0ZV9jaGFuZ2Vsb2dzID0gbWFrZV9vcHRp
b24oIi0tdXBkYXRlLWNoYW5nZWxvZ3MiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ1cGRh
dGVfY2hhbmdlbG9ncyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlVwZGF0ZSBleGlzdGluZyBDaGFu
Z2VMb2cgZW50cmllcyB3aXRoIG5ldyBkYXRlLCBidWcgZGVzY3JpcHRpb24sIGFuZCB0b3VjaGVk
IGZpbGVzL2Z1bmN0aW9ucy4iKQogICAgIGNoYW5nZWxvZ19jb3VudCA9IG1ha2Vfb3B0aW9uKCIt
LWNoYW5nZWxvZy1jb3VudCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJjaGFu
Z2Vsb2dfY291bnQiLCBoZWxwPSJOdW1iZXIgb2YgY2hhbmdlbG9ncyB0byBwYXJzZS4iKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDcyZjdj
MmU3MTlkY2M4Y2I4ODBjZGFjNzUxYTQwMzU2Y2JmZDZlNGYuLjNkYjljOTk4OWQ1OWFiYmNlYTUw
NjFhODMzNzQ1ODMxYzdiMWQxNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkKQEAgLTI5LDEwICsyOSwxMiBAQAogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGZyb20gd2Vi
a2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAogZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKIGZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yLCBFeGVjdXRpdmUKK2Zy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiAK
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIApAQCAtNDUsMTEgKzQ3LDE2IEBA
IGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIHJldHVybiBBYnN0cmFjdFN0
ZXAub3B0aW9ucygpICsgWwogICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9zdHlsZSwKICAgICAg
ICAgICAgIE9wdGlvbnMudGVzdCwKKyAgICAgICAgICAgIE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdf
dGVzdHMsCiAgICAgICAgICAgICBPcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSwKICAgICAgICAgICAg
IE9wdGlvbnMucXVpZXQsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgor
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzOgorICAgICAgICAg
ICAgX2xvZy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRlc3RzIikKKyAg
ICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29u
X25ld190ZXN0cykKKwogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy50ZXN0OgogICAgICAg
ICAgICAgcmV0dXJuCiAKQEAgLTk4LDggKzEwNSwzNCBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFj
dFN0ZXApOgogICAgICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygiRXJyb3IgcnVubmluZyB3ZWJraXRfdW5pdF90ZXN0czogJXMiICUgZS5t
ZXNzYWdlX3dpdGhfb3V0cHV0KCkpCiAKLQogICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVu
LXdlYmtpdC10ZXN0cyIpCisgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoKQorCisgICAg
ZGVmIG5ld19vcl9tb2RpZmllZF9wb3RlbnRpYWxfdGVzdHMoc2VsZiwgc2NtPU5vbmUsIGZzPUZp
bGVTeXN0ZW0oKSk6CisgICAgICAgIGlmIG5vdCBzY206CisgICAgICAgICAgICBzY20gPSBzZWxm
Ll90b29sLnNjbSgpCisgICAgICAgIG5ld19vcl9tb2RpZmllZF9maWxlcyA9IHNlbGYuX3Rvb2wu
c2NtKCkuY2hhbmdlZF9maWxlcygpCisgICAgICAgIG5ld19vcl9tb2RpZmllZF9maWxlcy5leHRl
bmQoc2VsZi5fdG9vbC5zY20oKS51bnRyYWNrZWRfZmlsZXMoKSkKKyAgICAgICAgcG90ZW50aWFs
X3Rlc3RfZmlsZXMgPSBbXQorICAgICAgICBmb3IgdGVzdF9maWxlIGluIG5ld19vcl9tb2RpZmll
ZF9maWxlczoKKyAgICAgICAgICAgIGlmIHRlc3RfZmlsZSBpbiBwb3RlbnRpYWxfdGVzdF9maWxl
czoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbm90IHRlc3RfZmls
ZS5zdGFydHN3aXRoKCdMYXlvdXRUZXN0cycpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgdHJ5IHRvIGRldGVjdCAncmVzb3VyY2VzJyBm
aWxlcyBhbmQgYXBwZW5kIHJlbGF0ZWQgdGVzdCBmaWxlcy4KKyAgICAgICAgICAgIGlmICctZXhw
ZWN0ZWQuJyBpbiB0ZXN0X2ZpbGU6CisgICAgICAgICAgICAgICAgaWYgJ3BsYXRmb3JtJyBpbiB0
ZXN0X2ZpbGU6CisgICAgICAgICAgICAgICAgICAgIHN0ZXBzID0gdGVzdF9maWxlLnNwbGl0KGZz
LnNlcCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9maWxlID0gZnMuam9pbignTGF5b3V0VGVz
dHMnLCBmcy5zZXAuam9pbihzdGVwc1szOl0pKQorCisgICAgICAgICAgICAgICAgZm9yIHBvdGVu
dGlhbF90ZXN0IGluIGZzLmdsb2IocmUuc3ViKCctZXhwZWN0ZWQuKicsICcuKicsIHRlc3RfZmls
ZSkpOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgcG90ZW50aWFsX3Rlc3QgaW4gcG90ZW50
aWFsX3Rlc3RfZmlsZXMgYW5kIGZzLmlzZmlsZShwb3RlbnRpYWxfdGVzdCk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBwb3RlbnRpYWxfdGVzdF9maWxlcy5hcHBlbmQocG90ZW50aWFsX3Rlc3Qp
CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHBvdGVudGlhbF90ZXN0X2Zp
bGVzLmFwcGVuZCh0ZXN0X2ZpbGUpCisgICAgICAgIHJldHVybiBwb3RlbnRpYWxfdGVzdF9maWxl
cworCisgICAgZGVmIF9ydW5fd2Via2l0X3Rlc3RzKHNlbGYsIGl0ZXJhdGVfb25fbmV3X3Rlc3Rz
PTApOgogICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fd2Vi
a2l0X3Rlc3RzX2NvbW1hbmQoKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZToKICAgICAgICAgICAgIGFyZ3MuZXh0ZW5kKFsKQEAgLTEyNSw1ICsxNTgsMTQgQEAgY2xh
c3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5xdWll
dDoKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLXF1aWV0IikKIAorICAgICAgICBpZiBpdGVy
YXRlX29uX25ld190ZXN0czoKKyAgICAgICAgICAgIHBvdGVudGlhbF90ZXN0cyA9IHNlbGYubmV3
X29yX21vZGlmaWVkX3BvdGVudGlhbF90ZXN0cygpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCJO
ZXcgb3IgbW9kaWZpZWQgdGVzdHMgYXJlOiAiICsgc3RyKHBvdGVudGlhbF90ZXN0cykpCisgICAg
ICAgICAgICBpZiBub3QgcG90ZW50aWFsX3Rlc3RzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5m
bygiTm8gbmV3IG9yIG1vZGlmaWVkIHRlc3RzIikKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgICAgIGZvciB0ZXN0IGluIHBvdGVudGlhbF90ZXN0czoKKyAgICAgICAgICAgICAgICBh
cmdzLmFwcGVuZCgiJXMiICUgdGVzdCkKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0ZXJh
dGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCisKICAgICAgICAgc2VsZi5fdG9vbC5l
eGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgp
LmNoZWNrb3V0X3Jvb3QpCi0gICAgICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249749</attachid>
            <date>2015-03-30 11:12:51 -0700</date>
            <delta_ts>2015-03-31 02:41:41 -0700</delta_ts>
            <desc>WIP2</desc>
            <filename>bug-143093-20150330201208.patch</filename>
            <type>text/plain</type>
            <size>12683</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTEzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDk0NTdmYTcxOWNiODg1YjY5MGM0NTY2NTNkZDBkNWY2
YTFiYmI0Yi4uM2RiOTQ3MTQ2YWQzN2YxNTg4NmE3MmIyOThmZjkxZGEzZDk0NmNlOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE1LTAzLTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIC0taXRl
cmF0ZS1vbi1uZXctdGVzdHMgb3B0aW9uIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVzdC4K
KyAgICAgICAgSXQgYWxsb3dzIHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBtb2RpZmllZCBv
ciBuZXcgcGF0aHMgaW4gTGF5b3V0VGVzdHMuCisgICAgICAgIENvbXB1dGF0aW9uZiBvZiBuZXcg
b3IgbW9kaWZpZWQgdGVzdHMgaXMgZG9lbiBieSBMYXlvdXRUZXN0RmluZGVyLmZpbmRfdG91Y2hl
ZF90ZXN0cworICAgICAgICBJdCBpbXBsZW1lbnRzIHRoZSB0cmFuc2xhdGlvbiBvZiAtZXhwZWN0
ZWQuKiBwYXRocyB0byB0aGVpciByZWxhdGVkIHRlc3RzLgorICAgICAgICBJdCBhbHNvIGltcGxl
bWVudHMgdGhlIHJlbW92YWwgb2Ygc2tpcHBlZCB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weToK
KyAgICAgICAgKExheW91dFRlc3RGaW5kZXIuZmluZF90b3VjaGVkX3Rlc3RzKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlv
bnMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToK
KyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOgorICAgICAgICAoUnVuVGVzdHMucnVuKToKKyAg
ICAgICAgKFJ1blRlc3RzKToKKyAgICAgICAgKFJ1blRlc3RzLm5ld19vcl9tb2RpZmllZF90ZXN0
cyk6CisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6CisKIDIwMTUtMDMtMjcg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ01h
a2VdIFJlbW92ZSB1bm5lY2Vzc2FyeSBJTkNMVURFX0lGX0VYSVNUUyBtYWNybyAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91
dF90ZXN0X2ZpbmRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weQppbmRleCA3ZmZmZDdlNWIwNjAzY2M5MzU0
NWFjMDNjOWRkM2I0NGMzMDRjY2RkLi42ZDdkNTJlZDk2Mjc3ODRkNDY4ZmIwMjE1MmJkNGU3YzBi
N2ZiYjg0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyLnB5CkBAIC01
MCw2ICs1MCwzNyBAQCBjbGFzcyBMYXlvdXRUZXN0RmluZGVyKG9iamVjdCk6CiAgICAgICAgIHRl
c3RfZmlsZXMgPSBzZWxmLl9wb3J0LnRlc3RzKHBhdGhzKQogICAgICAgICByZXR1cm4gKHBhdGhz
LCB0ZXN0X2ZpbGVzKQogCisgICAgZGVmIGZpbmRfdG91Y2hlZF90ZXN0cyhzZWxmLCBuZXdfb3Jf
bW9kaWZpZWRfcGF0aHMsIGFwcGx5X3NraXBfZXhwZWN0YXRpb25zPVRydWUpOgorICAgICAgICBw
b3RlbnRpYWxfdGVzdF9maWxlcyA9IFtdCisgICAgICAgIGZvciB0ZXN0X2ZpbGUgaW4gbmV3X29y
X21vZGlmaWVkX3BhdGhzOgorICAgICAgICAgICAgaWYgdGVzdF9maWxlIGluIHBvdGVudGlhbF90
ZXN0X2ZpbGVzOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBub3Qg
dGVzdF9maWxlLnN0YXJ0c3dpdGgoJ0xheW91dFRlc3RzJyk6CisgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCB0cnkgdG8gZGV0ZWN0ICdyZXNv
dXJjZXMnIGZpbGVzIGFuZCBhcHBlbmQgcmVsYXRlZCB0ZXN0IGZpbGVzLgorICAgICAgICAgICAg
aWYgJy1leHBlY3RlZC4nIGluIHRlc3RfZmlsZToKKyAgICAgICAgICAgICAgICBpZiAncGxhdGZv
cm0nIGluIHRlc3RfZmlsZToKKyAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSB0ZXN0X2ZpbGUu
c3BsaXQoc2VsZi5fZmlsZXN5c3RlbS5zZXApCisgICAgICAgICAgICAgICAgICAgIHRlc3RfZmls
ZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbignTGF5b3V0VGVzdHMnLCBzZWxmLl9maWxlc3lzdGVt
LnNlcC5qb2luKHN0ZXBzWzM6XSkpCisKKyAgICAgICAgICAgICAgICBmb3IgcG90ZW50aWFsX3Rl
c3QgaW4gc2VsZi5fZmlsZXN5c3RlbS5nbG9iKHJlLnN1YignLWV4cGVjdGVkLionLCAnLionLCB0
ZXN0X2ZpbGUpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHBvdGVudGlhbF90ZXN0IGlu
IHBvdGVudGlhbF90ZXN0X2ZpbGVzIGFuZCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShwb3RlbnRp
YWxfdGVzdCk6CisgICAgICAgICAgICAgICAgICAgICAgICBwb3RlbnRpYWxfdGVzdF9maWxlcy5h
cHBlbmQocG90ZW50aWFsX3Rlc3QpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgIHBvdGVudGlhbF90ZXN0X2ZpbGVzLmFwcGVuZCh0ZXN0X2ZpbGUpCisgICAgICAgIGlmIG5v
dCBwb3RlbnRpYWxfdGVzdF9maWxlczoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAg
ICAgdGVzdF9maWxlcyA9IHNlbGYuX3BvcnQudGVzdHMoc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJl
Zml4ZXMocG90ZW50aWFsX3Rlc3RfZmlsZXMpKQorICAgICAgICBpZiBub3QgYXBwbHlfc2tpcF9l
eHBlY3RhdGlvbnM6CisgICAgICAgICAgICByZXR1cm4gdGVzdF9maWxlcworCisgICAgICAgIGV4
cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMoc2VsZi5fcG9y
dCwgdGVzdF9maWxlcywgZm9yY2VfZXhwZWN0YXRpb25zX3Bhc3M9RmFsc2UpCisgICAgICAgIGV4
cGVjdGF0aW9ucy5wYXJzZV9hbGxfZXhwZWN0YXRpb25zKCkKKyAgICAgICAgdGVzdHNfdG9fc2tp
cCA9IHNlbGYuc2tpcF90ZXN0cyhwb3RlbnRpYWxfdGVzdF9maWxlcywgdGVzdF9maWxlcywgZXhw
ZWN0YXRpb25zLCBOb25lKQorICAgICAgICByZXR1cm4gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9m
aWxlcyBpZiB0ZXN0IG5vdCBpbiB0ZXN0c190b19za2lwXQorCisKICAgICBkZWYgX3N0cmlwX3Rl
c3RfZGlyX3ByZWZpeGVzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0dXJuIFtzZWxmLl9zdHJp
cF90ZXN0X2Rpcl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0aF0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY5ODAxNzE4YjY2NmMwMWRlZmFkODYwNTM0MTExNTZkNjNiN2QwZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9sYXlvdXRfdGVzdF9maW5kZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw3OSBAQAorIyBD
b3B5cmlnaHQgKGMpIDIwMTUsIENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9nY29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgor
IyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubGF5b3V0X3Rlc3RfZmluZGVyIGltcG9ydCBM
YXlvdXRUZXN0RmluZGVyCitmcm9tIHdlYmtpdHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQK
KworCitjbGFzcyBNb2NrUG9ydChUZXN0UG9ydCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
c3QpOgorICAgICAgICBzdXBlcihNb2NrUG9ydCwgc2VsZikuX19pbml0X18oaG9zdCkKKworICAg
IGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CisgICAgICAgIHJldHVybiBbcGF0aCBmb3IgcGF0aCBp
biBwYXRocyBpZiBwYXRoLmVuZHN3aXRoKCcuaHRtbCcpXQorCisKK2NsYXNzIExheW91dFRlc3RG
aW5kZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRvdWNoZWRfZmlsZXMoc2Vs
ZiwgdG91Y2hlZF9maWxlcywgZnM9Tm9uZSk6CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisg
ICAgICAgIGlmIGZzOgorICAgICAgICAgICAgaG9zdC5maWxlc3lzdGVtID0gZnMKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGZzID0gaG9zdC5maWxlc3lzdGVtCisgICAgICAgIHBvcnQgPSBN
b2NrUG9ydChob3N0KQorICAgICAgICByZXR1cm4gKGZzLCBMYXlvdXRUZXN0RmluZGVyKHBvcnQs
IG9wdHBhcnNlLlZhbHVlcyh7J3NraXBwZWQnOiAnYWx3YXlzJywgJ3NraXBfZmFpbGluZ190ZXN0
cyc6IEZhbHNlLCAnaHR0cCc6IFRydWV9KSkuZmluZF90b3VjaGVkX3Rlc3RzKHRvdWNoZWRfZmls
ZXMpKQorCisgICAgZGVmIHRlc3RfdG91Y2hlZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9
IFsnTGF5b3V0VGVzdHMvdGVzdC5odG1sJywgJ0xheW91dFRlc3RzL3Rlc3QnLCAndGVzdDIuaHRt
bCcsICdTb3VyY2UvdGVzdDEuaHRtbCddCisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2Vs
Zi50b3VjaGVkX2ZpbGVzKHBhdGhzKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91
Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3RvdWNo
ZWRfdGVzdChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBbJ0xheW91dFRlc3RzL3Rlc3QtZXhwZWN0
ZWQudHh0JywgJ0xheW91dFRlc3RzL25vLXRlc3QtZXhwZWN0ZWQudHh0J10KKyAgICAgICAgZnMg
PSBNb2NrRmlsZVN5c3RlbSgpCisgICAgICAgIGZzLndyaXRlX3RleHRfZmlsZSgnTGF5b3V0VGVz
dHMvdGVzdC5odG1sJywgJ1RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgZnMsIHRvdWNoZWRfdGVz
dHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMocGF0aHMsIGZzKQorICAgICAgICBzZWxmLmFzc2VydEl0
ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X3Bs
YXRmb3JtX2V4cGVjdGVkX3RvdWNoZWRfdGVzdChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBbJ0xh
eW91dFRlc3RzL3BsYXRmb3JtL21vY2svdGVzdC1leHBlY3RlZC50eHQnLCAnTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbW9jay9uby10ZXN0LWV4cGVjdGVkLnR4dCddCisgICAgICAgIGZzID0gTW9ja0Zp
bGVTeXN0ZW0oKQorICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoJ0xheW91dFRlc3RzL3Rlc3Qu
aHRtbCcsICdUaGlzIGlzIGEgdGVzdCcpCisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2Vs
Zi50b3VjaGVkX2ZpbGVzKHBhdGhzLCBmcykKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFs
KHRvdWNoZWRfdGVzdHMsIFsndGVzdC5odG1sJ10pCisKKyAgICBkZWYgdGVzdF9wbGF0Zm9ybV9k
dXBsaWNhdGVfdG91Y2hlZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9IFsnTGF5b3V0VGVz
dHMvdGVzdDEuaHRtbCcsICdMYXlvdXRUZXN0cy90ZXN0MS5odG1sJywgJ0xheW91dFRlc3RzL3Bs
YXRmb3JtL21vY2sxL3Rlc3QyLWV4cGVjdGVkLnR4dCcsICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
b2NrMi90ZXN0Mi1leHBlY3RlZC50eHQnXQorICAgICAgICBmcyA9IE1vY2tGaWxlU3lzdGVtKCkK
KyAgICAgICAgZnMud3JpdGVfdGV4dF9maWxlKCdMYXlvdXRUZXN0cy90ZXN0Mi5odG1sJywgJ1Ro
aXMgaXMgYSB0ZXN0JykKKyAgICAgICAgZnMsIHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRvdWNoZWRf
ZmlsZXMocGF0aHMsIGZzKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90
ZXN0cywgWyd0ZXN0MS5odG1sJywgJ3Rlc3QyLmh0bWwnXSkKKworICAgICMgRklYTUU6IEFkZCB0
ZXN0IGV4cGVjdGF0aW9uIHRlc3QgdG8gY2hlY2sgdGhhdCBza2lwcGVkIHRlc3RzIGFyZSBhY3R1
YWxseSByZW1vdmVkCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5CmluZGV4IGRjNWZlMmM4YjRmYjE3NzNhMjFhNDhlNzAwODk0MTBmY2VhOThmZTcuLjFjNjY2
OTFmMGNjYmM4MjliMDdhZmY0MTNkNmNmNDQ0MDUzYWE2MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIE9w
dGlvbnMob2JqZWN0KToKICAgICByZXZpZXdlciA9IG1ha2Vfb3B0aW9uKCItciIsICItLXJldmll
d2VyIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9InJldmlld2VyIiwgaGVs
cD0iVXBkYXRlIENoYW5nZUxvZ3MgdG8gc2F5IFJldmlld2VkIGJ5IFJFVklFV0VSLiIpCiAgICAg
c3VnZ2VzdF9yZXZpZXdlcnMgPSBtYWtlX29wdGlvbigiLS1zdWdnZXN0LXJldmlld2VycyIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik9mZmVyIHRvIENDIGFwcHJv
cHJpYXRlIHJldmlld2Vycy4iKQogICAgIHRlc3QgPSBtYWtlX29wdGlvbigiLS10ZXN0IiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idGVzdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlJ1biBy
dW4td2Via2l0LXRlc3RzIGJlZm9yZSBjb21taXR0aW5nLiIpCisgICAgaXRlcmF0ZV9vbl9uZXdf
dGVzdHMgPSBtYWtlX29wdGlvbigiLS1pdGVyYXRlLW9uLW5ldy10ZXN0cyIsIGFjdGlvbj0ic3Rv
cmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJpdGVyYXRlX29uX25ld190ZXN0cyIsIGRlZmF1bHQ9MCwg
aGVscD0iUnVuIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRlc3RzIG9ubHkgYmVmb3JlIGNvbW1p
dHRpbmcsIGl0ZXJhdGluZyBhIGdpdmVuIG51bWJlciBvZiB0aW1lLiIpCiAgICAgdXBkYXRlID0g
bWFrZV9vcHRpb24oIi0tbm8tdXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InVw
ZGF0ZSIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG9uJ3QgdXBkYXRlIHRoZSB3b3JraW5nIGRpcmVj
dG9yeS4iKQogICAgIHVwZGF0ZV9jaGFuZ2Vsb2dzID0gbWFrZV9vcHRpb24oIi0tdXBkYXRlLWNo
YW5nZWxvZ3MiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ1cGRhdGVfY2hhbmdlbG9ncyIs
IGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlVwZGF0ZSBleGlzdGluZyBDaGFuZ2VMb2cgZW50cmllcyB3
aXRoIG5ldyBkYXRlLCBidWcgZGVzY3JpcHRpb24sIGFuZCB0b3VjaGVkIGZpbGVzL2Z1bmN0aW9u
cy4iKQogICAgIGNoYW5nZWxvZ19jb3VudCA9IG1ha2Vfb3B0aW9uKCItLWNoYW5nZWxvZy1jb3Vu
dCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJjaGFuZ2Vsb2dfY291bnQiLCBo
ZWxwPSJOdW1iZXIgb2YgY2hhbmdlbG9ncyB0byBwYXJzZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDcyZjdjMmU3MTlkY2M4Y2I4ODBj
ZGFjNzUxYTQwMzU2Y2JmZDZlNGYuLmExZDAxNDA1OTE4YmMwMWJhNWIyODIzMDRhZjJlYWI5MjI5
ZWNlYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50
ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMu
cHkKQEAgLTI3LDEyICsyNywxNiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgbG9nZ2luZwor
aW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJlCiBp
bXBvcnQgc3lzCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBB
YnN0cmFjdFN0ZXAKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRp
b25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvciwgRXhlY3V0aXZlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0Citm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRfdGVzdF9maW5kZXIg
aW1wb3J0IExheW91dFRlc3RGaW5kZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQogCkBAIC00NSwxMSArNDksMTYgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToK
ICAgICAgICAgcmV0dXJuIEFic3RyYWN0U3RlcC5vcHRpb25zKCkgKyBbCiAgICAgICAgICAgICBP
cHRpb25zLmJ1aWxkX3N0eWxlLAogICAgICAgICAgICAgT3B0aW9ucy50ZXN0LAorICAgICAgICAg
ICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9u
X2ludGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAgXQogCiAg
ICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXRlcmF0
ZV9vbl9uZXdfdGVzdHM6CisgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtp
dC10ZXN0cyBvbiBuZXcgdGVzdHMiKQorICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF90ZXN0
cyhzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzKQorCiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAgICAgICByZXR1cm4KIApAQCAtOTgsOCArMTA3LDIw
IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBleGNlcHQgU2Ny
aXB0RXJyb3IsIGU6CiAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJFcnJvciBydW5uaW5nIHdl
YmtpdF91bml0X3Rlc3RzOiAlcyIgJSBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSkKIAotCiAgICAg
ICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4td2Via2l0LXRlc3RzIikKKyAgICAgICAgc2VsZi5f
cnVuX3dlYmtpdF90ZXN0cygpCisKKyAgICBkZWYgX25ld19vcl9tb2RpZmllZF90ZXN0cyhzZWxm
KToKKyAgICAgICAgdG91Y2hlZF9maWxlcyA9IHNlbGYuX3Rvb2wuc2NtKCkuY2hhbmdlZF9maWxl
cygpCisgICAgICAgIHRvdWNoZWRfZmlsZXMuZXh0ZW5kKHNlbGYuX3Rvb2wuc2NtKCkudW50cmFj
a2VkX2ZpbGVzKCkpCisgICAgICAgIGlmIG5vdCB0b3VjaGVkX2ZpbGVzOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgICAgICBjb25maWd1cmF0aW9uID0gIkRlYnVnIiBpZiAoc2VsZi5f
b3B0aW9ucy5idWlsZF9zdHlsZSA9PSAiZGVidWciKSBlbHNlICJSZWxlYXNlIgorICAgICAgICBw
b3J0ID0gSG9zdCgpLnBvcnRfZmFjdG9yeS5nZXQoc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQo
KS5wb3J0X2ZsYWdfbmFtZSwgb3B0cGFyc2UuVmFsdWVzKHsnY29uZmlndXJhdGlvbic6IGNvbmZp
Z3VyYXRpb259KSkKKyAgICAgICAgcmV0dXJuIExheW91dFRlc3RGaW5kZXIocG9ydCwgb3B0cGFy
c2UuVmFsdWVzKHsnc2tpcHBlZCc6ICdhbHdheXMnLCAnc2tpcF9mYWlsaW5nX3Rlc3RzJzogRmFs
c2UsICdodHRwJzogVHJ1ZX0pKS5maW5kX3RvdWNoZWRfdGVzdHModG91Y2hlZF9maWxlcykKKwor
ICAgIGRlZiBfcnVuX3dlYmtpdF90ZXN0cyhzZWxmLCBpdGVyYXRlX29uX25ld190ZXN0cz0wKToK
ICAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3dlYmtpdF90
ZXN0c19jb21tYW5kKCkKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ub25faW50ZXJhY3RpdmU6
CiAgICAgICAgICAgICBhcmdzLmV4dGVuZChbCkBAIC0xMjUsNSArMTQ2LDE0IEBAIGNsYXNzIFJ1
blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucXVpZXQ6CiAg
ICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1xdWlldCIpCiAKKyAgICAgICAgaWYgaXRlcmF0ZV9v
bl9uZXdfdGVzdHM6CisgICAgICAgICAgICBuZXdfdGVzdHMgPSBzZWxmLl9uZXdfb3JfbW9kaWZp
ZWRfdGVzdHMoKQorICAgICAgICAgICAgaWYgbm90IG5ld190ZXN0czoKKyAgICAgICAgICAgICAg
ICBfbG9nLmluZm8oIk5vIG5ldyBvciBtb2RpZmllZCB0ZXN0cyIpCisgICAgICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICAgICBfbG9nLmluZm8oIlRvdWNoZWQgdGVzdHMgYXJlOiAiICsgc3Ry
KG5ld190ZXN0cykpCisgICAgICAgICAgICBmb3IgdGVzdCBpbiBuZXdfdGVzdHM6CisgICAgICAg
ICAgICAgICAgYXJncy5hcHBlbmQodGVzdCkKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0
ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCisKICAgICAgICAgc2VsZi5fdG9v
bC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QpCi0gICAgICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249811</attachid>
            <date>2015-03-31 02:41:47 -0700</date>
            <delta_ts>2016-01-07 06:57:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143093-20150331114103.patch</filename>
            <type>text/plain</type>
            <size>16590</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTEzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDk0NTdmYTcxOWNiODg1YjY5MGM0NTY2NTNkZDBkNWY2
YTFiYmI0Yi4uMmU0NGUwYzllNzYzZmY2ZTkzMmFiYTZmNGE4NDFmOWFiODRlMzE1MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDE1LTAzLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIC0taXRl
cmF0ZS1vbi1uZXctdGVzdHMgb3B0aW9uIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVzdC4K
KyAgICAgICAgSXQgYWxsb3dzIHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBtb2RpZmllZCBv
ciBuZXcgcGF0aHMgaW4gTGF5b3V0VGVzdHMuCisgICAgICAgIENvbXB1dGF0aW9uZiBvZiBuZXcg
b3IgbW9kaWZpZWQgdGVzdHMgaXMgZG9lbiBieSBMYXlvdXRUZXN0RmluZGVyLmZpbmRfdG91Y2hl
ZF90ZXN0cworICAgICAgICBJdCBpbXBsZW1lbnRzIHRoZSB0cmFuc2xhdGlvbiBvZiAtZXhwZWN0
ZWQuKiBwYXRocyB0byB0aGVpciByZWxhdGVkIHRlc3RzLgorICAgICAgICBJdCBhbHNvIGltcGxl
bWVudHMgdGhlIHJlbW92YWwgb2Ygc2tpcHBlZCB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weToK
KyAgICAgICAgKExheW91dFRlc3RGaW5kZXIuZmluZF90b3VjaGVkX3Rlc3RzKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9m
aW5kZXJfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BvcnQpOgorICAgICAgICAo
TW9ja1BvcnQuX19pbml0X18pOgorICAgICAgICAoTW9ja1BvcnQudGVzdHMpOgorICAgICAgICAo
TGF5b3V0VGVzdEZpbmRlclRlc3RzKToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50
b3VjaGVkX2ZpbGVzKToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50ZXN0X3RvdWNo
ZWRfdGVzdCk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMudGVzdF9leHBlY3RlZF90
b3VjaGVkX3Rlc3QpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3RzLnRlc3RfcGxhdGZv
cm1fZXhwZWN0ZWRfdG91Y2hlZF90ZXN0KToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0
cy50ZXN0X3BsYXRmb3JtX2R1cGxpY2F0ZV90b3VjaGVkX3Rlc3QpOgorICAgICAgICAoTGF5b3V0
VGVzdEZpbmRlclRlc3RzLnRlc3RfdG91Y2hlZF9idXRfc2tpcHBlZF90ZXN0KToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChEb3dubG9hZENvbW1hbmRzVGVzdC5fZGVmYXVsdF9vcHRpb25zKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlv
bnMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToK
KyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOgorICAgICAgICAoUnVuVGVzdHMucnVuKToKKyAg
ICAgICAgKFJ1blRlc3RzKToKKyAgICAgICAgKFJ1blRlc3RzLl9uZXdfb3JfbW9kaWZpZWRfdGVz
dHMpOgorICAgICAgICAoUnVuVGVzdHMuX3J1bl93ZWJraXRfdGVzdHMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKKyAgICAgICAg
KFJ1blRlc3RzVGVzdC50ZXN0X3dlYmtpdF9ydW5fdW5pdF90ZXN0cyk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoU3Rl
cHNUZXN0Ll9zdGVwX29wdGlvbnMpOgorCiAyMDE1LTAzLTI3ICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0NNYWtlXSBSZW1vdmUgdW5uZWNlc3Nh
cnkgSU5DTFVERV9JRl9FWElTVFMgbWFjcm8gCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVz
dF9maW5kZXIucHkKaW5kZXggN2ZmZmQ3ZTViMDYwM2NjOTM1NDVhYzAzYzlkZDNiNDRjMzA0Y2Nk
ZC4uMWIwMjQxMDZjNjI3OWQ1NDdlZjI4MzU2YjJlYWQyZGUzODllNzVhYSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rl
c3RfZmluZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weQpAQCAtNTAsNiArNTAsMzcgQEAgY2xhc3Mg
TGF5b3V0VGVzdEZpbmRlcihvYmplY3QpOgogICAgICAgICB0ZXN0X2ZpbGVzID0gc2VsZi5fcG9y
dC50ZXN0cyhwYXRocykKICAgICAgICAgcmV0dXJuIChwYXRocywgdGVzdF9maWxlcykKIAorICAg
IGRlZiBmaW5kX3RvdWNoZWRfdGVzdHMoc2VsZiwgbmV3X29yX21vZGlmaWVkX3BhdGhzLCBhcHBs
eV9za2lwX2V4cGVjdGF0aW9ucz1UcnVlKToKKyAgICAgICAgcG90ZW50aWFsX3Rlc3RfZmlsZXMg
PSBbXQorICAgICAgICBmb3IgdGVzdF9maWxlIGluIG5ld19vcl9tb2RpZmllZF9wYXRoczoKKyAg
ICAgICAgICAgIGlmIHRlc3RfZmlsZSBpbiBwb3RlbnRpYWxfdGVzdF9maWxlczoKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbm90IHRlc3RfZmlsZS5zdGFydHN3aXRo
KHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSk6CisgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCB0cnkgdG8gZGV0ZWN0ICdyZXNvdXJjZXMn
IGZpbGVzIGFuZCBhcHBlbmQgcmVsYXRlZCB0ZXN0IGZpbGVzLgorICAgICAgICAgICAgaWYgJy1l
eHBlY3RlZC4nIGluIHRlc3RfZmlsZToKKyAgICAgICAgICAgICAgICBpZiAncGxhdGZvcm0nIGlu
IHRlc3RfZmlsZToKKyAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSB0ZXN0X2ZpbGUuc3BsaXQo
c2VsZi5fZmlsZXN5c3RlbS5zZXApCisgICAgICAgICAgICAgICAgICAgIHRlc3RfZmlsZSA9IHNl
bGYuX2ZpbGVzeXN0ZW0uam9pbignTGF5b3V0VGVzdHMnLCBzZWxmLl9maWxlc3lzdGVtLnNlcC5q
b2luKHN0ZXBzWzM6XSkpCisKKyAgICAgICAgICAgICAgICBmb3IgcG90ZW50aWFsX3Rlc3QgaW4g
c2VsZi5fZmlsZXN5c3RlbS5nbG9iKHJlLnN1YignLWV4cGVjdGVkLionLCAnLionLCB0ZXN0X2Zp
bGUpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHBvdGVudGlhbF90ZXN0IGluIHBvdGVu
dGlhbF90ZXN0X2ZpbGVzIGFuZCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShwb3RlbnRpYWxfdGVz
dCk6CisgICAgICAgICAgICAgICAgICAgICAgICBwb3RlbnRpYWxfdGVzdF9maWxlcy5hcHBlbmQo
cG90ZW50aWFsX3Rlc3QpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHBv
dGVudGlhbF90ZXN0X2ZpbGVzLmFwcGVuZCh0ZXN0X2ZpbGUpCisgICAgICAgIGlmIG5vdCBwb3Rl
bnRpYWxfdGVzdF9maWxlczoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdGVz
dF9maWxlcyA9IHNlbGYuX3BvcnQudGVzdHMoc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4ZXMo
cG90ZW50aWFsX3Rlc3RfZmlsZXMpKQorICAgICAgICBpZiBub3QgYXBwbHlfc2tpcF9leHBlY3Rh
dGlvbnM6CisgICAgICAgICAgICByZXR1cm4gdGVzdF9maWxlcworCisgICAgICAgIGV4cGVjdGF0
aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMoc2VsZi5fcG9ydCwgdGVz
dF9maWxlcywgZm9yY2VfZXhwZWN0YXRpb25zX3Bhc3M9RmFsc2UpCisgICAgICAgIGV4cGVjdGF0
aW9ucy5wYXJzZV9hbGxfZXhwZWN0YXRpb25zKCkKKyAgICAgICAgdGVzdHNfdG9fc2tpcCA9IHNl
bGYuc2tpcF90ZXN0cyhwb3RlbnRpYWxfdGVzdF9maWxlcywgdGVzdF9maWxlcywgZXhwZWN0YXRp
b25zLCBOb25lKQorICAgICAgICByZXR1cm4gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9maWxlcyBp
ZiB0ZXN0IG5vdCBpbiB0ZXN0c190b19za2lwXQorCisKICAgICBkZWYgX3N0cmlwX3Rlc3RfZGly
X3ByZWZpeGVzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0dXJuIFtzZWxmLl9zdHJpcF90ZXN0
X2Rpcl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0aF0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0
X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmMGE0MjZlYThhNDZlODFhNmY0NjY5OTU1NDQyNjIyMjU5MGY0MmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9maW5kZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw5NSBAQAorIyBDb3B5cmln
aHQgKGMpIDIwMTUsIENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9n
Y29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorIyAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIGNvbGxlY3Rpb25z
IGltcG9ydCBPcmRlcmVkRGljdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1w
b3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2Nr
IGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJv
bGxlcnMubGF5b3V0X3Rlc3RfZmluZGVyIGltcG9ydCBMYXlvdXRUZXN0RmluZGVyCitmcm9tIHdl
YmtpdHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKKworCitjbGFzcyBNb2NrUG9ydChUZXN0
UG9ydCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgorICAgICAgICBzdXBlcihNb2Nr
UG9ydCwgc2VsZikuX19pbml0X18oaG9zdCkKKworICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6
CisgICAgICAgIHJldHVybiBbcGF0aCBmb3IgcGF0aCBpbiBwYXRocyBpZiBwYXRoLmVuZHN3aXRo
KCcuaHRtbCcpXQorCisKK2NsYXNzIExheW91dFRlc3RGaW5kZXJUZXN0cyh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHRvdWNoZWRfZmlsZXMoc2VsZiwgdG91Y2hlZF9maWxlcywgZnM9Tm9u
ZSk6CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisgICAgICAgIGlmIGZzOgorICAgICAgICAg
ICAgaG9zdC5maWxlc3lzdGVtID0gZnMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZzID0g
aG9zdC5maWxlc3lzdGVtCisgICAgICAgIHBvcnQgPSBNb2NrUG9ydChob3N0KQorICAgICAgICBy
ZXR1cm4gKGZzLCBMYXlvdXRUZXN0RmluZGVyKHBvcnQsIG9wdHBhcnNlLlZhbHVlcyh7J3NraXBw
ZWQnOiAnYWx3YXlzJywgJ3NraXBfZmFpbGluZ190ZXN0cyc6IEZhbHNlLCAnaHR0cCc6IFRydWV9
KSkuZmluZF90b3VjaGVkX3Rlc3RzKHRvdWNoZWRfZmlsZXMpKQorCisgICAgZGVmIHRlc3RfdG91
Y2hlZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9IFsnTGF5b3V0VGVzdHMvdGVzdC5odG1s
JywgJ0xheW91dFRlc3RzL3Rlc3QnLCAndGVzdDIuaHRtbCcsICdTb3VyY2UvdGVzdDEuaHRtbCdd
CisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2VsZi50b3VjaGVkX2ZpbGVzKHBhdGhzKQor
ICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwn
XSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3RvdWNoZWRfdGVzdChzZWxmKToKKyAgICAgICAg
cGF0aHMgPSBbJ0xheW91dFRlc3RzL3Rlc3QtZXhwZWN0ZWQudHh0JywgJ0xheW91dFRlc3RzL25v
LXRlc3QtZXhwZWN0ZWQudHh0J10KKyAgICAgICAgZnMgPSBNb2NrRmlsZVN5c3RlbSgpCisgICAg
ICAgIGZzLndyaXRlX3RleHRfZmlsZSgnTGF5b3V0VGVzdHMvdGVzdC5odG1sJywgJ1RoaXMgaXMg
YSB0ZXN0JykKKyAgICAgICAgZnMsIHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMo
cGF0aHMsIGZzKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywg
Wyd0ZXN0Lmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X3BsYXRmb3JtX2V4cGVjdGVkX3RvdWNoZWRf
dGVzdChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBbJ0xheW91dFRlc3RzL3BsYXRmb3JtL21vY2sv
dGVzdC1leHBlY3RlZC50eHQnLCAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbW9jay9uby10ZXN0LWV4
cGVjdGVkLnR4dCddCisgICAgICAgIGZzID0gTW9ja0ZpbGVTeXN0ZW0oKQorICAgICAgICBmcy53
cml0ZV90ZXh0X2ZpbGUoJ0xheW91dFRlc3RzL3Rlc3QuaHRtbCcsICdUaGlzIGlzIGEgdGVzdCcp
CisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2VsZi50b3VjaGVkX2ZpbGVzKHBhdGhzLCBm
cykKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHRvdWNoZWRfdGVzdHMsIFsndGVzdC5o
dG1sJ10pCisKKyAgICBkZWYgdGVzdF9wbGF0Zm9ybV9kdXBsaWNhdGVfdG91Y2hlZF90ZXN0KHNl
bGYpOgorICAgICAgICBwYXRocyA9IFsnTGF5b3V0VGVzdHMvdGVzdDEuaHRtbCcsICdMYXlvdXRU
ZXN0cy90ZXN0MS5odG1sJywgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21vY2sxL3Rlc3QyLWV4cGVj
dGVkLnR4dCcsICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tb2NrMi90ZXN0Mi1leHBlY3RlZC50eHQn
XQorICAgICAgICBmcyA9IE1vY2tGaWxlU3lzdGVtKCkKKyAgICAgICAgZnMud3JpdGVfdGV4dF9m
aWxlKCdMYXlvdXRUZXN0cy90ZXN0Mi5odG1sJywgJ1RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAg
ZnMsIHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMocGF0aHMsIGZzKQorICAgICAg
ICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0MS5odG1sJywgJ3Rl
c3QyLmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X3RvdWNoZWRfYnV0X3NraXBwZWRfdGVzdChzZWxm
KToKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgcG9ydCA9IE1vY2tQb3J0KGhv
c3QpCisKKyAgICAgICAgZXhwZWN0YXRpb25zX2RpY3QgPSBPcmRlcmVkRGljdCgpCisgICAgICAg
IGV4cGVjdGF0aW9uc19kaWN0WydleHBlY3RhdGlvbnMnXSA9ICd0ZXN0MS5odG1sIFsgU2tpcCBd
XG50ZXN0My5odG1sIFsgU2tpcCBdXG4nCisgICAgICAgIHBvcnQuZXhwZWN0YXRpb25zX2RpY3Qg
PSBsYW1iZGE6IGV4cGVjdGF0aW9uc19kaWN0CisgICAgICAgIHBvcnQudGVzdF9leGlzdHMgPSBs
YW1iZGEgdGVzdDogVHJ1ZQorCisgICAgICAgIHBhdGhzID0gWydMYXlvdXRUZXN0cy90ZXN0MC5o
dG1sJywgJ0xheW91dFRlc3RzL3Rlc3QxLmh0bWwnLCAnTGF5b3V0VGVzdHMvdGVzdDItZXhwZWN0
ZWQudHh0JywgJ0xheW91dFRlc3RzL3Rlc3QzLWV4cGVjdGVkLnR4dCddCisgICAgICAgIGhvc3Qu
ZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJ0xheW91dFRlc3RzL3Rlc3QyLmh0bWwnLCAnVGhp
cyBpcyBhIHRlc3QgdG8gYmUgcnVubmVkJykKKyAgICAgICAgaG9zdC5maWxlc3lzdGVtLndyaXRl
X3RleHRfZmlsZSgnTGF5b3V0VGVzdHMvdGVzdDMuaHRtbCcsICdUaGlzIGlzIGEgdGVzdCB0byBi
ZSBza2lwcGVkJykKKworICAgICAgICB0b3VjaGVkX3Rlc3RzID0gTGF5b3V0VGVzdEZpbmRlcihw
b3J0LCBvcHRwYXJzZS5WYWx1ZXMoeydza2lwcGVkJzogJ2Fsd2F5cycsICdza2lwX2ZhaWxpbmdf
dGVzdHMnOiBGYWxzZSwgJ2h0dHAnOiBUcnVlfSkpLmZpbmRfdG91Y2hlZF90ZXN0cyhwYXRocykK
KyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHRvdWNoZWRfdGVzdHMsIFsndGVzdDAuaHRt
bCcsICd0ZXN0Mi5odG1sJ10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNmM4Y2Q1NDUwMDMwMmU4
NmZmM2NjMmRkMzRmMWZjZjE2OGJmYWY0Zi4uODIzODIyM2M5OTU2Njk5MDE3MzY1MzhjMWQ4Y2Y0
ZWFmYjg2ZjNhMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtODgsNiArODgsNyBAQCBjbGFzcyBE
b3dubG9hZENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAgICBvcHRpb25zLnRlc3Qg
PSBUcnVlCiAgICAgICAgIG9wdGlvbnMudXBkYXRlID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmFy
Y2hpdGVjdHVyZSA9ICdNT0NLIEFSQ0gnCisgICAgICAgIG9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdf
dGVzdHMgPSAwCiAgICAgICAgIHJldHVybiBvcHRpb25zCiAKICAgICBkZWYgdGVzdF9idWlsZChz
ZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5k
ZXggZGM1ZmUyYzhiNGZiMTc3M2EyMWE0OGU3MDA4OTQxMGZjZWE5OGZlNy4uMWM2NjY5MWYwY2Ni
YzgyOWIwN2FmZjQxM2Q2Y2Y0NDQwNTNhYTYxMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL29wdGlvbnMucHkKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgT3B0aW9ucyhv
YmplY3QpOgogICAgIHJldmlld2VyID0gbWFrZV9vcHRpb24oIi1yIiwgIi0tcmV2aWV3ZXIiLCBh
Y3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0icmV2aWV3ZXIiLCBoZWxwPSJVcGRh
dGUgQ2hhbmdlTG9ncyB0byBzYXkgUmV2aWV3ZWQgYnkgUkVWSUVXRVIuIikKICAgICBzdWdnZXN0
X3Jldmlld2VycyA9IG1ha2Vfb3B0aW9uKCItLXN1Z2dlc3QtcmV2aWV3ZXJzIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iT2ZmZXIgdG8gQ0MgYXBwcm9wcmlhdGUg
cmV2aWV3ZXJzLiIpCiAgICAgdGVzdCA9IG1ha2Vfb3B0aW9uKCItLXRlc3QiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJ0ZXN0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iUnVuIHJ1bi13ZWJr
aXQtdGVzdHMgYmVmb3JlIGNvbW1pdHRpbmcuIikKKyAgICBpdGVyYXRlX29uX25ld190ZXN0cyA9
IG1ha2Vfb3B0aW9uKCItLWl0ZXJhdGUtb24tbmV3LXRlc3RzIiwgYWN0aW9uPSJzdG9yZSIsIHR5
cGU9ImludCIsIGRlc3Q9Iml0ZXJhdGVfb25fbmV3X3Rlc3RzIiwgZGVmYXVsdD0wLCBoZWxwPSJS
dW4gcnVuLXdlYmtpdC10ZXN0cyBvbiBuZXcgdGVzdHMgb25seSBiZWZvcmUgY29tbWl0dGluZywg
aXRlcmF0aW5nIGEgZ2l2ZW4gbnVtYmVyIG9mIHRpbWUuIikKICAgICB1cGRhdGUgPSBtYWtlX29w
dGlvbigiLS1uby11cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRlIiwg
ZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiIp
CiAgICAgdXBkYXRlX2NoYW5nZWxvZ3MgPSBtYWtlX29wdGlvbigiLS11cGRhdGUtY2hhbmdlbG9n
cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InVwZGF0ZV9jaGFuZ2Vsb2dzIiwgZGVmYXVs
dD1GYWxzZSwgaGVscD0iVXBkYXRlIGV4aXN0aW5nIENoYW5nZUxvZyBlbnRyaWVzIHdpdGggbmV3
IGRhdGUsIGJ1ZyBkZXNjcmlwdGlvbiwgYW5kIHRvdWNoZWQgZmlsZXMvZnVuY3Rpb25zLiIpCiAg
ICAgY2hhbmdlbG9nX2NvdW50ID0gbWFrZV9vcHRpb24oIi0tY2hhbmdlbG9nLWNvdW50IiwgYWN0
aW9uPSJzdG9yZSIsIHR5cGU9ImludCIsIGRlc3Q9ImNoYW5nZWxvZ19jb3VudCIsIGhlbHA9Ik51
bWJlciBvZiBjaGFuZ2Vsb2dzIHRvIHBhcnNlLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKaW5kZXggZWNkNjM1MTc3MzFjMDAyOTlhY2M1ZTE5OTg2
OTA4ZTczNWY2NDQ4My4uMTYxMTE0Zjg4YWJjMzk0M2YxODI2N2Q4OTkyMjUxMDljYWEwNzk3YyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAt
MjcsMTIgKzI3LDE2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBsb2dnaW5nCitpbXBvcnQg
b3B0cGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgcmUKIGltcG9ydCBz
eXMKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0
U3RlcAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yLCBF
eGVjdXRpdmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKK2Zyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLmxheW91dF90ZXN0X2ZpbmRlciBpbXBvcnQg
TGF5b3V0VGVzdEZpbmRlcgogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAK
QEAgLTQ1LDExICs0OSwxNiBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAg
ICByZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKICAgICAgICAgICAgIE9wdGlvbnMu
YnVpbGRfc3R5bGUsCiAgICAgICAgICAgICBPcHRpb25zLnRlc3QsCisgICAgICAgICAgICBPcHRp
b25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJh
Y3RpdmUsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICBdCiAKICAgICBkZWYg
cnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29uX25l
d190ZXN0czoKKyAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4td2Via2l0LXRlc3Rz
IG9uIG5ldyB0ZXN0cyIpCisgICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3Rlc3RzKHNlbGYu
X29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCisKICAgICAgICAgaWYgbm90IHNlbGYuX29w
dGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCkBAIC05OCw4ICsxMDcsMjAgQEAgY2xh
c3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJv
ciwgZToKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkVycm9yIHJ1bm5pbmcgd2Via2l0X3Vu
aXRfdGVzdHM6ICVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1dCgpKQogCi0KICAgICAgICAgX2xv
Zy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMiKQorICAgICAgICBzZWxmLl9ydW5fd2Vi
a2l0X3Rlc3RzKCkKKworICAgIGRlZiBfbmV3X29yX21vZGlmaWVkX3Rlc3RzKHNlbGYpOgorICAg
ICAgICB0b3VjaGVkX2ZpbGVzID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkKKyAg
ICAgICAgdG91Y2hlZF9maWxlcy5leHRlbmQoc2VsZi5fdG9vbC5zY20oKS51bnRyYWNrZWRfZmls
ZXMoKSkKKyAgICAgICAgaWYgbm90IHRvdWNoZWRfZmlsZXM6CisgICAgICAgICAgICByZXR1cm4g
Tm9uZQorCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSAiRGVidWciIGlmIChzZWxmLl9vcHRpb25z
LmJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpIGVsc2UgIlJlbGVhc2UiCisgICAgICAgIHBvcnQgPSBI
b3N0KCkucG9ydF9mYWN0b3J5LmdldChzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnBvcnRf
ZmxhZ19uYW1lLCBvcHRwYXJzZS5WYWx1ZXMoeydjb25maWd1cmF0aW9uJzogY29uZmlndXJhdGlv
bn0pKQorICAgICAgICByZXR1cm4gTGF5b3V0VGVzdEZpbmRlcihwb3J0LCBvcHRwYXJzZS5WYWx1
ZXMoeydza2lwcGVkJzogJ2Fsd2F5cycsICdza2lwX2ZhaWxpbmdfdGVzdHMnOiBGYWxzZSwgJ2h0
dHAnOiBUcnVlfSkpLmZpbmRfdG91Y2hlZF90ZXN0cyh0b3VjaGVkX2ZpbGVzKQorCisgICAgZGVm
IF9ydW5fd2Via2l0X3Rlc3RzKHNlbGYsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTApOgogICAgICAg
ICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZToKICAgICAg
ICAgICAgIGFyZ3MuZXh0ZW5kKFsKQEAgLTExOSw1ICsxNDAsMTQgQEAgY2xhc3MgUnVuVGVzdHMo
QWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5xdWlldDoKICAgICAgICAg
ICAgIGFyZ3MuYXBwZW5kKCItLXF1aWV0IikKIAorICAgICAgICBpZiBpdGVyYXRlX29uX25ld190
ZXN0czoKKyAgICAgICAgICAgIG5ld190ZXN0cyA9IHNlbGYuX25ld19vcl9tb2RpZmllZF90ZXN0
cygpCisgICAgICAgICAgICBpZiBub3QgbmV3X3Rlc3RzOgorICAgICAgICAgICAgICAgIF9sb2cu
aW5mbygiTm8gbmV3IG9yIG1vZGlmaWVkIHRlc3RzIikKKyAgICAgICAgICAgICAgICByZXR1cm4K
KyAgICAgICAgICAgIF9sb2cuaW5mbygiVG91Y2hlZCB0ZXN0cyBhcmU6ICIgKyBzdHIobmV3X3Rl
c3RzKSkKKyAgICAgICAgICAgIGZvciB0ZXN0IGluIG5ld190ZXN0czoKKyAgICAgICAgICAgICAg
ICBhcmdzLmFwcGVuZCh0ZXN0KQorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9u
cz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKKwogICAgICAgICBzZWxmLl90b29sLmV4ZWN1
dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hl
Y2tvdXRfcm9vdCkKLSAgICAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggMmE3ZWM5ZTA0Y2U5ZTIwZjFm
NjlmMzk2YzgxODE0YzY1YTM3ODcxMS4uNTc0NzJkYTIyOGU0ZmZhYTY2NWU4NzdiODUyODJkYWEx
MTc5OGNmOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBSdW5UZXN0c1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1
dGl2ZT1UcnVlKQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3B5dGhvbl91bml0
dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3Bv
cnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgc3Rl
cCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZl
PVRydWUsIHF1aWV0PUZhbHNlKSkKKyAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tP
cHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBpdGVy
YXRlX29uX25ld190ZXN0cz0wKSkKIAogICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gImN5Z3dp
biI6CiAgICAgICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiUnVubmluZyBiaW5kaW5ncyBnZW5l
cmF0aW9uIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3RlcHNfdW5pdHRlc3QucHkKaW5kZXggYjFlMmJmMTNkZTFmN2NlNmFmOTIyNmQzZTFmNTAyMTFm
MzQ3ZWYyMS4uYWI2NGUxZWIwZGVhYzQ0M2JjOWRlNmM4OTc1Y2NjYjczM2UyMTZmNCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5w
eQpAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBvcHRpb25zLnBvcnQgPSAnTU9DSyBwb3J0JwogICAgICAgICBvcHRpb25zLnF1aWV0
ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLnRlc3QgPSBUcnVlCisgICAgICAgIG9wdGlvbnMuaXRl
cmF0ZV9vbl9uZXdfdGVzdHMgPSAwCiAgICAgICAgIHJldHVybiBvcHRpb25zCiAKICAgICBkZWYg
X3J1bl9zdGVwKHNlbGYsIHN0ZXAsIHRvb2w9Tm9uZSwgb3B0aW9ucz1Ob25lLCBzdGF0ZT1Ob25l
KToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268450</attachid>
            <date>2016-01-07 06:57:43 -0800</date>
            <delta_ts>2016-01-07 23:34:58 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-143093-20160107155710.patch</filename>
            <type>text/plain</type>
            <size>17707</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NjkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDVkNzg5ZmNjYjY5MmJkY2RiYzliYTFiMTg3OGZhN2Vm
ZTQ5YjNiNy4uZDhkMDg0OGMwNmM5MjZkNDk0YjFjNTMwNmI2OTU1OGU5ZWEwMDg0YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDE2LTAxLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIC0taXRl
cmF0ZS1vbi1uZXctdGVzdHMgb3B0aW9uIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVzdC4K
KyAgICAgICAgSXQgYWxsb3dzIHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBtb2RpZmllZCBv
ciBuZXcgcGF0aHMgaW4gTGF5b3V0VGVzdHMuCisgICAgICAgIENvbXB1dGF0aW9uZiBvZiBuZXcg
b3IgbW9kaWZpZWQgdGVzdHMgaXMgZG9lbiBieSBMYXlvdXRUZXN0RmluZGVyLmZpbmRfdG91Y2hl
ZF90ZXN0cworICAgICAgICBJdCBpbXBsZW1lbnRzIHRoZSB0cmFuc2xhdGlvbiBvZiAtZXhwZWN0
ZWQuKiBwYXRocyB0byB0aGVpciByZWxhdGVkIHRlc3RzLgorICAgICAgICBJdCBhbHNvIGltcGxl
bWVudHMgdGhlIHJlbW92YWwgb2Ygc2tpcHBlZCB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weToK
KyAgICAgICAgKExheW91dFRlc3RGaW5kZXIuZmluZF90b3VjaGVkX3Rlc3RzKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9m
aW5kZXJfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BvcnQpOgorICAgICAgICAo
TW9ja1BvcnQuX19pbml0X18pOgorICAgICAgICAoTW9ja1BvcnQudGVzdHMpOgorICAgICAgICAo
TGF5b3V0VGVzdEZpbmRlclRlc3RzKToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50
b3VjaGVkX2ZpbGVzKToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50ZXN0X3RvdWNo
ZWRfdGVzdCk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMudGVzdF9leHBlY3RlZF90
b3VjaGVkX3Rlc3QpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3RzLnRlc3RfcGxhdGZv
cm1fZXhwZWN0ZWRfdG91Y2hlZF90ZXN0KToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0
cy50ZXN0X3BsYXRmb3JtX2R1cGxpY2F0ZV90b3VjaGVkX3Rlc3QpOgorICAgICAgICAoTGF5b3V0
VGVzdEZpbmRlclRlc3RzLnRlc3RfdG91Y2hlZF9idXRfc2tpcHBlZF90ZXN0KToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQucG90ZW50aWFs
X3Rlc3RfbmFtZXNfZnJvbV9leHBlY3RlZF9maWxlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHk6CisgICAgICAgIChEb3dubG9h
ZENvbW1hbmRzVGVzdC5fZGVmYXVsdF9vcHRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToKKyAgICAgICAgKFJ1blRl
c3RzLm9wdGlvbnMpOgorICAgICAgICAoUnVuVGVzdHMucnVuKToKKyAgICAgICAgKFJ1blRlc3Rz
KToKKyAgICAgICAgKFJ1blRlc3RzLl9uZXdfb3JfbW9kaWZpZWRfdGVzdHMpOgorICAgICAgICAo
UnVuVGVzdHMuX3J1bl93ZWJraXRfdGVzdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKKyAgICAgICAgKFJ1blRlc3RzVGVzdC50
ZXN0X3dlYmtpdF9ydW5fdW5pdF90ZXN0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoU3RlcHNUZXN0Ll9zdGVwX29w
dGlvbnMpOgorCiAyMDE2LTAxLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIHNldHRpbmcgYW5kIHByZWZlcmVuY2VzIHRvIGVuYWJsZSBk
aXNwbGF5LWxpc3QgZHJhd2luZy4gRG9lcyBub3RoaW5nIHlldC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2Zp
bmRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L2xheW91dF90ZXN0X2ZpbmRlci5weQppbmRleCA3ZmZmZDdlNWIwNjAzY2M5MzU0NWFjMDNjOWRk
M2I0NGMzMDRjY2RkLi40ZjhiZTE4ZGIyM2NjOWM4MDc2YjEzYmViZDlmOGVjODkwOGExYzkxIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9sYXlvdXRfdGVzdF9maW5kZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyLnB5CkBAIC01MCw2ICs1MCwz
MiBAQCBjbGFzcyBMYXlvdXRUZXN0RmluZGVyKG9iamVjdCk6CiAgICAgICAgIHRlc3RfZmlsZXMg
PSBzZWxmLl9wb3J0LnRlc3RzKHBhdGhzKQogICAgICAgICByZXR1cm4gKHBhdGhzLCB0ZXN0X2Zp
bGVzKQogCisgICAgZGVmIGZpbmRfdG91Y2hlZF90ZXN0cyhzZWxmLCBuZXdfb3JfbW9kaWZpZWRf
cGF0aHMsIGFwcGx5X3NraXBfZXhwZWN0YXRpb25zPVRydWUpOgorICAgICAgICBwb3RlbnRpYWxf
dGVzdF9wYXRocyA9IFtdCisgICAgICAgIGZvciB0ZXN0X2ZpbGUgaW4gbmV3X29yX21vZGlmaWVk
X3BhdGhzOgorICAgICAgICAgICAgaWYgbm90IHRlc3RfZmlsZS5zdGFydHN3aXRoKHNlbGYuTEFZ
T1VUX1RFU1RTX0RJUkVDVE9SWSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICAgICAgdGVzdF9maWxlID0gc2VsZi5fc3RyaXBfdGVzdF9kaXJfcHJlZml4KHRlc3RfZmlsZSkK
KyAgICAgICAgICAgIHRlc3RfcGF0aHMgPSBzZWxmLl9wb3J0LnBvdGVudGlhbF90ZXN0X25hbWVz
X2Zyb21fZXhwZWN0ZWRfZmlsZSh0ZXN0X2ZpbGUpCisgICAgICAgICAgICBpZiB0ZXN0X3BhdGhz
OgorICAgICAgICAgICAgICAgIHBvdGVudGlhbF90ZXN0X3BhdGhzLmV4dGVuZCh0ZXN0X3BhdGhz
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwb3RlbnRpYWxfdGVzdF9wYXRo
cy5hcHBlbmQodGVzdF9maWxlKQorCisgICAgICAgIGlmIG5vdCBwb3RlbnRpYWxfdGVzdF9wYXRo
czoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdGVzdHMgPSBzZWxmLl9wb3J0
LnRlc3RzKGxpc3Qoc2V0KHBvdGVudGlhbF90ZXN0X3BhdGhzKSkpCisgICAgICAgIGlmIG5vdCBh
cHBseV9za2lwX2V4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIHJldHVybiB0ZXN0cworCisgICAg
ICAgIGV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMoc2Vs
Zi5fcG9ydCwgdGVzdHMsIGZvcmNlX2V4cGVjdGF0aW9uc19wYXNzPUZhbHNlKQorICAgICAgICBl
eHBlY3RhdGlvbnMucGFyc2VfYWxsX2V4cGVjdGF0aW9ucygpCisgICAgICAgIHRlc3RzX3RvX3Nr
aXAgPSBzZWxmLnNraXBfdGVzdHMocG90ZW50aWFsX3Rlc3RfcGF0aHMsIHRlc3RzLCBleHBlY3Rh
dGlvbnMsIE5vbmUpCisgICAgICAgIHJldHVybiBbdGVzdCBmb3IgdGVzdCBpbiB0ZXN0cyBpZiB0
ZXN0IG5vdCBpbiB0ZXN0c190b19za2lwXQorCisKICAgICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3By
ZWZpeGVzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0dXJuIFtzZWxmLl9zdHJpcF90ZXN0X2Rp
cl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMgaWYgcGF0aF0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rl
c3RfZmluZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwZWU5YTFlNzQ5MzlkZjQ3NTEyNDU1MzQxZjQxZDA3ZmU5OGU2NjkKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlv
dXRfdGVzdF9maW5kZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw5NSBAQAorIyBDb3B5cmlnaHQg
KGMpIDIwMTUsIENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9nY29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENB
Tk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBPcmRlcmVkRGljdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0
IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGlt
cG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxl
cnMubGF5b3V0X3Rlc3RfZmluZGVyIGltcG9ydCBMYXlvdXRUZXN0RmluZGVyCitmcm9tIHdlYmtp
dHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKKworCitjbGFzcyBNb2NrUG9ydChUZXN0UG9y
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgorICAgICAgICBzdXBlcihNb2NrUG9y
dCwgc2VsZikuX19pbml0X18oaG9zdCkKKworICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6Cisg
ICAgICAgIHJldHVybiBbcGF0aCBmb3IgcGF0aCBpbiBwYXRocyBpZiBwYXRoLmVuZHN3aXRoKCcu
aHRtbCcpXQorCisKK2NsYXNzIExheW91dFRlc3RGaW5kZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CisgICAgZGVmIHRvdWNoZWRfZmlsZXMoc2VsZiwgdG91Y2hlZF9maWxlcywgZnM9Tm9uZSk6
CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisgICAgICAgIGlmIGZzOgorICAgICAgICAgICAg
aG9zdC5maWxlc3lzdGVtID0gZnMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZzID0gaG9z
dC5maWxlc3lzdGVtCisgICAgICAgIHBvcnQgPSBNb2NrUG9ydChob3N0KQorICAgICAgICByZXR1
cm4gKGZzLCBMYXlvdXRUZXN0RmluZGVyKHBvcnQsIG9wdHBhcnNlLlZhbHVlcyh7J3NraXBwZWQn
OiAnYWx3YXlzJywgJ3NraXBfZmFpbGluZ190ZXN0cyc6IEZhbHNlLCAnaHR0cCc6IFRydWV9KSku
ZmluZF90b3VjaGVkX3Rlc3RzKHRvdWNoZWRfZmlsZXMpKQorCisgICAgZGVmIHRlc3RfdG91Y2hl
ZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9IFsnTGF5b3V0VGVzdHMvdGVzdC5odG1sJywg
J0xheW91dFRlc3RzL3Rlc3QnLCAndGVzdDIuaHRtbCcsICdTb3VyY2UvdGVzdDEuaHRtbCddCisg
ICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2VsZi50b3VjaGVkX2ZpbGVzKHBhdGhzKQorICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkK
KworICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3RvdWNoZWRfdGVzdChzZWxmKToKKyAgICAgICAgcGF0
aHMgPSBbJ0xheW91dFRlc3RzL3Rlc3QtZXhwZWN0ZWQudHh0JywgJ0xheW91dFRlc3RzL25vLXRl
c3QtZXhwZWN0ZWQudHh0J10KKyAgICAgICAgZnMgPSBNb2NrRmlsZVN5c3RlbSgpCisgICAgICAg
IGZzLndyaXRlX3RleHRfZmlsZSgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvdGVzdC5odG1s
JywgJ1RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgZnMsIHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRv
dWNoZWRfZmlsZXMocGF0aHMsIGZzKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91
Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X3BsYXRmb3JtX2V4cGVj
dGVkX3RvdWNoZWRfdGVzdChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBbJ0xheW91dFRlc3RzL3Bs
YXRmb3JtL21vY2svdGVzdC1leHBlY3RlZC50eHQnLCAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbW9j
ay9uby10ZXN0LWV4cGVjdGVkLnR4dCddCisgICAgICAgIGZzID0gTW9ja0ZpbGVTeXN0ZW0oKQor
ICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Rl
c3QuaHRtbCcsICdUaGlzIGlzIGEgdGVzdCcpCisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0g
c2VsZi50b3VjaGVkX2ZpbGVzKHBhdGhzLCBmcykKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0Vx
dWFsKHRvdWNoZWRfdGVzdHMsIFsndGVzdC5odG1sJ10pCisKKyAgICBkZWYgdGVzdF9wbGF0Zm9y
bV9kdXBsaWNhdGVfdG91Y2hlZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9IFsnTGF5b3V0
VGVzdHMvdGVzdDEuaHRtbCcsICdMYXlvdXRUZXN0cy90ZXN0MS5odG1sJywgJ0xheW91dFRlc3Rz
L3BsYXRmb3JtL21vY2sxL3Rlc3QyLWV4cGVjdGVkLnR4dCcsICdMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tb2NrMi90ZXN0Mi1leHBlY3RlZC50eHQnXQorICAgICAgICBmcyA9IE1vY2tGaWxlU3lzdGVt
KCkKKyAgICAgICAgZnMud3JpdGVfdGV4dF9maWxlKCcvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0
cy90ZXN0Mi5odG1sJywgJ1RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgZnMsIHRvdWNoZWRfdGVz
dHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMocGF0aHMsIGZzKQorICAgICAgICBzZWxmLmFzc2VydEl0
ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0MS5odG1sJywgJ3Rlc3QyLmh0bWwnXSkKKwor
ICAgIGRlZiB0ZXN0X3RvdWNoZWRfYnV0X3NraXBwZWRfdGVzdChzZWxmKToKKyAgICAgICAgaG9z
dCA9IE1vY2tIb3N0KCkKKyAgICAgICAgcG9ydCA9IE1vY2tQb3J0KGhvc3QpCisKKyAgICAgICAg
ZXhwZWN0YXRpb25zX2RpY3QgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIGV4cGVjdGF0aW9uc19k
aWN0WydleHBlY3RhdGlvbnMnXSA9ICd0ZXN0MS5odG1sIFsgU2tpcCBdXG50ZXN0My5odG1sIFsg
U2tpcCBdXG4nCisgICAgICAgIHBvcnQuZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IGV4cGVj
dGF0aW9uc19kaWN0CisgICAgICAgIHBvcnQudGVzdF9leGlzdHMgPSBsYW1iZGEgdGVzdDogVHJ1
ZQorCisgICAgICAgIHBhdGhzID0gWydMYXlvdXRUZXN0cy90ZXN0MC5odG1sJywgJ0xheW91dFRl
c3RzL3Rlc3QxLmh0bWwnLCAnTGF5b3V0VGVzdHMvdGVzdDItZXhwZWN0ZWQudHh0JywgJ0xheW91
dFRlc3RzL3Rlc3QzLWV4cGVjdGVkLnR4dCddCisgICAgICAgIGhvc3QuZmlsZXN5c3RlbS53cml0
ZV90ZXh0X2ZpbGUoJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3Rlc3QyLmh0bWwnLCAnVGhp
cyBpcyBhIHRlc3QgdG8gYmUgcnVubmVkJykKKyAgICAgICAgaG9zdC5maWxlc3lzdGVtLndyaXRl
X3RleHRfZmlsZSgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvdGVzdDMuaHRtbCcsICdUaGlz
IGlzIGEgdGVzdCB0byBiZSBza2lwcGVkJykKKworICAgICAgICB0b3VjaGVkX3Rlc3RzID0gTGF5
b3V0VGVzdEZpbmRlcihwb3J0LCBvcHRwYXJzZS5WYWx1ZXMoeydza2lwcGVkJzogJ2Fsd2F5cycs
ICdza2lwX2ZhaWxpbmdfdGVzdHMnOiBGYWxzZSwgJ2h0dHAnOiBUcnVlfSkpLmZpbmRfdG91Y2hl
ZF90ZXN0cyhwYXRocykKKyAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHRvdWNoZWRfdGVz
dHMsIFsndGVzdDAuaHRtbCcsICd0ZXN0Mi5odG1sJ10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlLnB5CmluZGV4IDMwMWZjODNhMjVlM2JjOTRmNjEyMWZiZWRkZWUzOGQzZmJjOWQ3MTAuLjcx
NWY4ZmQ0NGFlMDExYjc1YjUzNDI2M2E2YmVkOGY5YWVlZjZlMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9iYXNlLnB5CkBAIC01MjcsNiArNTI3LDE5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToK
IAogICAgICAgICByZXR1cm4gcmVmdGVzdF9saXN0LmdldChzZWxmLl9maWxlc3lzdGVtLmpvaW4o
c2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFtZSksIFtdKSAgIyBweWxpbnQ6IGRpc2Fi
bGU9RTExMDMKIAorICAgIGRlZiBwb3RlbnRpYWxfdGVzdF9uYW1lc19mcm9tX2V4cGVjdGVkX2Zp
bGUoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIlJldHVybiBwb3RlbnRpYWwgdGVzdCBuYW1lcyBp
ZiBhbnkgZnJvbSBhIHBvdGVudGlhbCBleHBlY3RlZCBmaWxlIHBhdGgsIHJlbGF0aXZlIHRvIExh
eW91dFRlc3RzIGRpcmVjdG9yeS4iIiIKKworICAgICAgICBpZiBub3QgJy1leHBlY3RlZC4nIGlu
IHBhdGg6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHN1YnBhdGggPSBzZWxm
Lmhvc3QuZmlsZXN5c3RlbS5yZWxwYXRoKHBhdGgsIHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpKQor
ICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgoJ3BsYXRmb3JtJyArIHNlbGYuX2ZpbGVzeXN0ZW0u
c2VwKToKKyAgICAgICAgICAgIHN0ZXBzID0gcGF0aC5zcGxpdChzZWxmLl9maWxlc3lzdGVtLnNl
cCkKKyAgICAgICAgICAgIHBhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZmlsZXN5
c3RlbS5zZXAuam9pbihzdGVwc1syOl0pKQorCisgICAgICAgIHJldHVybiBbc2VsZi5ob3N0LmZp
bGVzeXN0ZW0ucmVscGF0aCh0ZXN0LCBzZWxmLmxheW91dF90ZXN0c19kaXIoKSkgZm9yIHRlc3Qg
aW4gc2VsZi5fZmlsZXN5c3RlbS5nbG9iKHJlLnN1YignLWV4cGVjdGVkLionLCAnLionLCBzZWxm
Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksIHBhdGgpKSkgaWYgc2Vs
Zi5fZmlsZXN5c3RlbS5pc2ZpbGUodGVzdCldCisKICAgICBkZWYgdGVzdHMoc2VsZiwgcGF0aHMp
OgogICAgICAgICAiIiJSZXR1cm4gdGhlIGxpc3Qgb2YgdGVzdHMgZm91bmQuIEJvdGggZ2VuZXJp
YyBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgdGVzdHMgbWF0Y2hpbmcgcGF0aHMgc2hvdWxkIGJlIHJl
dHVybmVkLiIiIgogICAgICAgICBleHBhbmRlZF9wYXRocyA9IHNlbGYuX2V4cGFuZGVkX3BhdGhz
KHBhdGhzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IGYzOTRkYjBhZDRiZjRkN2E2YzZlODI5ODEy
ZGQ3YmZkNDVlZDM2ZmMuLjQyOWRhMTI0NmY4YmQ3NmFiMDJlZTYzM2M0MmQ2ZmIzOGQzODU0YzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9h
ZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgRG93bmxvYWRDb21t
YW5kc1Rlc3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy50ZXN0ID0gVHJ1ZQogICAg
ICAgICBvcHRpb25zLnVwZGF0ZSA9IFRydWUKICAgICAgICAgb3B0aW9ucy5hcmNoaXRlY3R1cmUg
PSAnTU9DSyBBUkNIJworICAgICAgICBvcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzID0gMAog
ICAgICAgICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVmIHRlc3RfYnVpbGQoc2VsZik6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDgwZDc2ZDI2
YTE4MTcyZWQ0YjEyZDliZGU0NmI2YTdlYjJmYTgxZjAuLjBhZGIyM2UxYTViMjIyN2U3Mjg4NTBi
ZTI1Y2NkNzQ0MTM3ZTU4YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9vcHRpb25zLnB5CkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAg
ICByZXZpZXdlciA9IG1ha2Vfb3B0aW9uKCItciIsICItLXJldmlld2VyIiwgYWN0aW9uPSJzdG9y
ZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9InJldmlld2VyIiwgaGVscD0iVXBkYXRlIENoYW5nZUxv
Z3MgdG8gc2F5IFJldmlld2VkIGJ5IFJFVklFV0VSLiIpCiAgICAgc3VnZ2VzdF9yZXZpZXdlcnMg
PSBtYWtlX29wdGlvbigiLS1zdWdnZXN0LXJldmlld2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik9mZmVyIHRvIENDIGFwcHJvcHJpYXRlIHJldmlld2Vycy4i
KQogICAgIHRlc3QgPSBtYWtlX29wdGlvbigiLS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwg
ZGVzdD0idGVzdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlJ1biBydW4td2Via2l0LXRlc3RzIGJl
Zm9yZSBjb21taXR0aW5nLiIpCisgICAgaXRlcmF0ZV9vbl9uZXdfdGVzdHMgPSBtYWtlX29wdGlv
bigiLS1pdGVyYXRlLW9uLW5ldy10ZXN0cyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBk
ZXN0PSJpdGVyYXRlX29uX25ld190ZXN0cyIsIGRlZmF1bHQ9MCwgaGVscD0iUnVuIHJ1bi13ZWJr
aXQtdGVzdHMgb24gbmV3IHRlc3RzIG9ubHkgYmVmb3JlIGNvbW1pdHRpbmcsIGl0ZXJhdGluZyBh
IGdpdmVuIG51bWJlciBvZiB0aW1lLiIpCiAgICAgdXBkYXRlID0gbWFrZV9vcHRpb24oIi0tbm8t
dXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InVwZGF0ZSIsIGRlZmF1bHQ9VHJ1
ZSwgaGVscD0iRG9uJ3QgdXBkYXRlIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4iKQogICAgIHVwZGF0
ZV9jaGFuZ2Vsb2dzID0gbWFrZV9vcHRpb24oIi0tdXBkYXRlLWNoYW5nZWxvZ3MiLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZXN0PSJ1cGRhdGVfY2hhbmdlbG9ncyIsIGRlZmF1bHQ9RmFsc2UsIGhl
bHA9IlVwZGF0ZSBleGlzdGluZyBDaGFuZ2VMb2cgZW50cmllcyB3aXRoIG5ldyBkYXRlLCBidWcg
ZGVzY3JpcHRpb24sIGFuZCB0b3VjaGVkIGZpbGVzL2Z1bmN0aW9ucy4iKQogICAgIGNoYW5nZWxv
Z19jb3VudCA9IG1ha2Vfb3B0aW9uKCItLWNoYW5nZWxvZy1jb3VudCIsIGFjdGlvbj0ic3RvcmUi
LCB0eXBlPSJpbnQiLCBkZXN0PSJjaGFuZ2Vsb2dfY291bnQiLCBoZWxwPSJOdW1iZXIgb2YgY2hh
bmdlbG9ncyB0byBwYXJzZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3J1bnRlc3RzLnB5CmluZGV4IGRkZGY4MWVjMGI2ODgwZTVkOWMyZTk2MWE0NTEwZjY5MTkwOGUz
ZmIuLmI2ZTdkYjhhMzAwZTg4NTRjZDRhYjEwNGU4MTFmMzZhM2IyMWY3ZGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTI3LDEyICsyNywx
NiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9wdHBhcnNlCiBp
bXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKIGZyb20g
d2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRpb25zCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvciwgRXhlY3V0aXZlCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0Citmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRfdGVzdF9maW5kZXIgaW1wb3J0IExheW91dFRlc3RG
aW5kZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC00NSwxMSAr
NDksMTYgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgcmV0dXJuIEFi
c3RyYWN0U3RlcC5vcHRpb25zKCkgKyBbCiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxl
LAogICAgICAgICAgICAgT3B0aW9ucy50ZXN0LAorICAgICAgICAgICAgT3B0aW9ucy5pdGVyYXRl
X29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9uX2ludGVyYWN0aXZlLAogICAg
ICAgICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBz
dGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHM6Cisg
ICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBuZXcgdGVz
dHMiKQorICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF90ZXN0cyhzZWxmLl9vcHRpb25zLml0
ZXJhdGVfb25fbmV3X3Rlc3RzKQorCiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLnRlc3Q6
CiAgICAgICAgICAgICByZXR1cm4KIApAQCAtOTAsNiArOTksMTkgQEAgY2xhc3MgUnVuVGVzdHMo
QWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkVycm9yIHJ1bm5pbmcg
cnVuLWJpbmRpbmdzLXRlc3RzOiAlcyIgJSBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSkKIAogICAg
ICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyIpCisgICAgICAgIHNlbGYu
X3J1bl93ZWJraXRfdGVzdHMoKQorCisgICAgZGVmIF9uZXdfb3JfbW9kaWZpZWRfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHRvdWNoZWRfZmlsZXMgPSBzZWxmLl90b29sLnNjbSgpLmNoYW5nZWRfZmls
ZXMoKQorICAgICAgICB0b3VjaGVkX2ZpbGVzLmV4dGVuZChzZWxmLl90b29sLnNjbSgpLnVudHJh
Y2tlZF9maWxlcygpKQorICAgICAgICBpZiBub3QgdG91Y2hlZF9maWxlczoKKyAgICAgICAgICAg
IHJldHVybiBOb25lCisKKyAgICAgICAgY29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIgaWYgKHNlbGYu
X29wdGlvbnMuYnVpbGRfc3R5bGUgPT0gImRlYnVnIikgZWxzZSAiUmVsZWFzZSIKKyAgICAgICAg
cG9ydCA9IEhvc3QoKS5wb3J0X2ZhY3RvcnkuZ2V0KHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0
KCkucG9ydF9mbGFnX25hbWUsIG9wdHBhcnNlLlZhbHVlcyh7J2NvbmZpZ3VyYXRpb24nOiBjb25m
aWd1cmF0aW9ufSkpCisgICAgICAgIHJldHVybiBMYXlvdXRUZXN0RmluZGVyKHBvcnQsIG9wdHBh
cnNlLlZhbHVlcyh7J3NraXBwZWQnOiAnYWx3YXlzJywgJ3NraXBfZmFpbGluZ190ZXN0cyc6IEZh
bHNlLCAnaHR0cCc6IFRydWV9KSkuZmluZF90b3VjaGVkX3Rlc3RzKHRvdWNoZWRfZmlsZXMpCisK
KyAgICBkZWYgX3J1bl93ZWJraXRfdGVzdHMoc2VsZiwgaXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCk6
CiAgICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl93ZWJraXRf
dGVzdHNfY29tbWFuZChidWlsZF9zdHlsZT1zZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQogICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZToKICAgICAgICAgICAgIGFyZ3Mu
ZXh0ZW5kKFsKQEAgLTEwOSw1ICsxMzEsMTQgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVw
KToKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5xdWlldDoKICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLXF1aWV0IikKIAorICAgICAgICBpZiBpdGVyYXRlX29uX25ld190ZXN0czoKKyAgICAg
ICAgICAgIG5ld190ZXN0cyA9IHNlbGYuX25ld19vcl9tb2RpZmllZF90ZXN0cygpCisgICAgICAg
ICAgICBpZiBub3QgbmV3X3Rlc3RzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiTm8gbmV3
IG9yIG1vZGlmaWVkIHRlc3RzIikKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAg
IF9sb2cuaW5mbygiVG91Y2hlZCB0ZXN0cyBhcmU6ICIgKyBzdHIobmV3X3Rlc3RzKSkKKyAgICAg
ICAgICAgIGZvciB0ZXN0IGluIG5ld190ZXN0czoKKyAgICAgICAgICAgICAgICBhcmdzLmFwcGVu
ZCh0ZXN0KQorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9ucz0lZCIgJSBpdGVy
YXRlX29uX25ld190ZXN0cykKKwogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5k
X3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkK
LSAgICAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNDQ5ODJlMjMwMzI3YzVhZjU3MDNkZWMxY2YxZTQ1
Y2NlYTQ1ZGMyNi4uMmExNjg4ZGIxYzhiYzVkOTZhMzEyNWIwM2NhNGMyY2ZkYzY4NDg1YSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191
bml0dGVzdC5weQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQog
ICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFu
ZCA9IGxhbWJkYTogTm9uZQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3Blcmxf
dW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRlc3Rz
KHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0
PUZhbHNlLCBidWlsZF9zdHlsZT0icmVsZWFzZSIpKQorICAgICAgICBzdGVwID0gUnVuVGVzdHMo
dG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9
RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCkpCiAK
ICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJjeWd3aW4iOgogICAgICAgICAgICAgZXhwZWN0
ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4
IDM0MGRjYWVlZmEzYjEzZDM3OThmZWRmNmU5MjVkMzlmNzlmNThjMmIuLjhhMDI2NWQyM2I5MzM5
MjM2NTBhYzNlMjM5Y2VmZDUyZWI3MjMzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTQxLDYgKzQxLDcgQEAgY2xh
c3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3B0aW9ucy5wb3J0ID0g
J01PQ0sgcG9ydCcKICAgICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKICAgICAgICAgb3B0aW9u
cy50ZXN0ID0gVHJ1ZQorICAgICAgICBvcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzID0gMAog
ICAgICAgICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVmIF9ydW5fc3RlcChzZWxmLCBzdGVwLCB0
b29sPU5vbmUsIG9wdGlvbnM9Tm9uZSwgc3RhdGU9Tm9uZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268531</attachid>
            <date>2016-01-07 23:35:06 -0800</date>
            <delta_ts>2016-01-08 00:37:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143093-20160108083433.patch</filename>
            <type>text/plain</type>
            <size>17674</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NzU4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTYyZTE4M2VlMzBmZDQxYWEzM2VhNDM1YjQ1NTBjYzJh
ZjNjM2E2Mi4uYjlhYjE0OGM4ZmY4OTM1YzljNDQxOTIxNzJjMzNjODdjYzczZGI4YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDE2LTAxLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIGJ1aWxkLWFuZC10ZXN0IHNob3VsZCBoYXZlIGFu
IG9wdGlvbiB0byBpdGVyYXRlIG92ZXIgbmV3IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBN
aWNoYWVsIENhdGFuemFyby4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIC0t
aXRlcmF0ZS1vbi1uZXctdGVzdHMgb3B0aW9uIHRvIHdlYmtpdC1wYXRjaCBidWlsZC1hbmQtdGVz
dC4KKyAgICAgICAgSXQgYWxsb3dzIHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBtb2RpZmll
ZCBvciBuZXcgcGF0aHMgaW4gTGF5b3V0VGVzdHMuCisgICAgICAgIENvbXB1dGF0aW9uIG9mIG5l
dyBvciBtb2RpZmllZCB0ZXN0cyBpcyBkb25lIGJ5IExheW91dFRlc3RGaW5kZXIuZmluZF90b3Vj
aGVkX3Rlc3RzCisgICAgICAgIEl0IGltcGxlbWVudHMgdGhlIHRyYW5zbGF0aW9uIG9mIC1leHBl
Y3RlZC4qIHBhdGhzIHRvIHRoZWlyIHJlbGF0ZWQgdGVzdHMuCisgICAgICAgIEl0IGFsc28gaW1w
bGVtZW50cyB0aGUgcmVtb3ZhbCBvZiBza2lwcGVkIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyLnB5
OgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlci5maW5kX3RvdWNoZWRfdGVzdHMpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0
X2ZpbmRlcl91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChNb2NrUG9ydCk6CisgICAgICAg
IChNb2NrUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChNb2NrUG9ydC50ZXN0cyk6CisgICAgICAg
IChMYXlvdXRUZXN0RmluZGVyVGVzdHMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3Rz
LnRvdWNoZWRfZmlsZXMpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRlc3RzLnRlc3RfdG91
Y2hlZF90ZXN0KToKKyAgICAgICAgKExheW91dFRlc3RGaW5kZXJUZXN0cy50ZXN0X2V4cGVjdGVk
X3RvdWNoZWRfdGVzdCk6CisgICAgICAgIChMYXlvdXRUZXN0RmluZGVyVGVzdHMudGVzdF9wbGF0
Zm9ybV9leHBlY3RlZF90b3VjaGVkX3Rlc3QpOgorICAgICAgICAoTGF5b3V0VGVzdEZpbmRlclRl
c3RzLnRlc3RfcGxhdGZvcm1fZHVwbGljYXRlX3RvdWNoZWRfdGVzdCk6CisgICAgICAgIChMYXlv
dXRUZXN0RmluZGVyVGVzdHMudGVzdF90b3VjaGVkX2J1dF9za2lwcGVkX3Rlc3QpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5wb3RlbnRp
YWxfdGVzdF9uYW1lc19mcm9tX2V4cGVjdGVkX2ZpbGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weToKKyAgICAgICAgKERvd25s
b2FkQ29tbWFuZHNUZXN0Ll9kZWZhdWx0X29wdGlvbnMpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVu
VGVzdHMub3B0aW9ucyk6CisgICAgICAgIChSdW5UZXN0cy5ydW4pOgorICAgICAgICAoUnVuVGVz
dHMpOgorICAgICAgICAoUnVuVGVzdHMuX25ld19vcl9tb2RpZmllZF90ZXN0cyk6CisgICAgICAg
IChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUnVuVGVzdHNUZXN0
LnRlc3Rfd2Via2l0X3J1bl91bml0X3Rlc3RzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6CisgICAgICAgIChTdGVwc1Rlc3QuX3N0ZXBf
b3B0aW9ucyk6CisKIDIwMTYtMDEtMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBwcmVwYXJlLUNoYW5nZUxvZyBzaG91bGQgaW5jbHVkZSByYWRhciBu
dW1iZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X2ZpbmRlci5weQppbmRleCA3ZmZm
ZDdlNWIwNjAzY2M5MzU0NWFjMDNjOWRkM2I0NGMzMDRjY2RkLi40ZjhiZTE4ZGIyM2NjOWM4MDc2
YjEzYmViZDlmOGVjODkwOGExYzkxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
ZmluZGVyLnB5CkBAIC01MCw2ICs1MCwzMiBAQCBjbGFzcyBMYXlvdXRUZXN0RmluZGVyKG9iamVj
dCk6CiAgICAgICAgIHRlc3RfZmlsZXMgPSBzZWxmLl9wb3J0LnRlc3RzKHBhdGhzKQogICAgICAg
ICByZXR1cm4gKHBhdGhzLCB0ZXN0X2ZpbGVzKQogCisgICAgZGVmIGZpbmRfdG91Y2hlZF90ZXN0
cyhzZWxmLCBuZXdfb3JfbW9kaWZpZWRfcGF0aHMsIGFwcGx5X3NraXBfZXhwZWN0YXRpb25zPVRy
dWUpOgorICAgICAgICBwb3RlbnRpYWxfdGVzdF9wYXRocyA9IFtdCisgICAgICAgIGZvciB0ZXN0
X2ZpbGUgaW4gbmV3X29yX21vZGlmaWVkX3BhdGhzOgorICAgICAgICAgICAgaWYgbm90IHRlc3Rf
ZmlsZS5zdGFydHN3aXRoKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSk6CisgICAgICAgICAg
ICAgICAgY29udGludWUKKworICAgICAgICAgICAgdGVzdF9maWxlID0gc2VsZi5fc3RyaXBfdGVz
dF9kaXJfcHJlZml4KHRlc3RfZmlsZSkKKyAgICAgICAgICAgIHRlc3RfcGF0aHMgPSBzZWxmLl9w
b3J0LnBvdGVudGlhbF90ZXN0X25hbWVzX2Zyb21fZXhwZWN0ZWRfZmlsZSh0ZXN0X2ZpbGUpCisg
ICAgICAgICAgICBpZiB0ZXN0X3BhdGhzOgorICAgICAgICAgICAgICAgIHBvdGVudGlhbF90ZXN0
X3BhdGhzLmV4dGVuZCh0ZXN0X3BhdGhzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBwb3RlbnRpYWxfdGVzdF9wYXRocy5hcHBlbmQodGVzdF9maWxlKQorCisgICAgICAgIGlm
IG5vdCBwb3RlbnRpYWxfdGVzdF9wYXRoczoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICAgICAgdGVzdHMgPSBzZWxmLl9wb3J0LnRlc3RzKGxpc3Qoc2V0KHBvdGVudGlhbF90ZXN0X3Bh
dGhzKSkpCisgICAgICAgIGlmIG5vdCBhcHBseV9za2lwX2V4cGVjdGF0aW9uczoKKyAgICAgICAg
ICAgIHJldHVybiB0ZXN0cworCisgICAgICAgIGV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0YXRp
b25zLlRlc3RFeHBlY3RhdGlvbnMoc2VsZi5fcG9ydCwgdGVzdHMsIGZvcmNlX2V4cGVjdGF0aW9u
c19wYXNzPUZhbHNlKQorICAgICAgICBleHBlY3RhdGlvbnMucGFyc2VfYWxsX2V4cGVjdGF0aW9u
cygpCisgICAgICAgIHRlc3RzX3RvX3NraXAgPSBzZWxmLnNraXBfdGVzdHMocG90ZW50aWFsX3Rl
c3RfcGF0aHMsIHRlc3RzLCBleHBlY3RhdGlvbnMsIE5vbmUpCisgICAgICAgIHJldHVybiBbdGVz
dCBmb3IgdGVzdCBpbiB0ZXN0cyBpZiB0ZXN0IG5vdCBpbiB0ZXN0c190b19za2lwXQorCisKICAg
ICBkZWYgX3N0cmlwX3Rlc3RfZGlyX3ByZWZpeGVzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0
dXJuIFtzZWxmLl9zdHJpcF90ZXN0X2Rpcl9wcmVmaXgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHMg
aWYgcGF0aF0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfZmluZGVy
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwZWU5YTFlNzQ5MzlkZjQ3NTEyNDU1MzQxZjQxZDA3
ZmU5OGU2NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9maW5kZXJfdW5pdHRlc3QucHkKQEAgLTAs
MCArMSw5NSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUsIENhbm9uIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9nY29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9y
IHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB1bml0dGVz
dAorCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAorCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubGF5b3V0X3Rlc3RfZmluZGVyIGltcG9ydCBMYXlv
dXRUZXN0RmluZGVyCitmcm9tIHdlYmtpdHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKKwor
CitjbGFzcyBNb2NrUG9ydChUZXN0UG9ydCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Qp
OgorICAgICAgICBzdXBlcihNb2NrUG9ydCwgc2VsZikuX19pbml0X18oaG9zdCkKKworICAgIGRl
ZiB0ZXN0cyhzZWxmLCBwYXRocyk6CisgICAgICAgIHJldHVybiBbcGF0aCBmb3IgcGF0aCBpbiBw
YXRocyBpZiBwYXRoLmVuZHN3aXRoKCcuaHRtbCcpXQorCisKK2NsYXNzIExheW91dFRlc3RGaW5k
ZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRvdWNoZWRfZmlsZXMoc2VsZiwg
dG91Y2hlZF9maWxlcywgZnM9Tm9uZSk6CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisgICAg
ICAgIGlmIGZzOgorICAgICAgICAgICAgaG9zdC5maWxlc3lzdGVtID0gZnMKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGZzID0gaG9zdC5maWxlc3lzdGVtCisgICAgICAgIHBvcnQgPSBNb2Nr
UG9ydChob3N0KQorICAgICAgICByZXR1cm4gKGZzLCBMYXlvdXRUZXN0RmluZGVyKHBvcnQsIG9w
dHBhcnNlLlZhbHVlcyh7J3NraXBwZWQnOiAnYWx3YXlzJywgJ3NraXBfZmFpbGluZ190ZXN0cyc6
IEZhbHNlLCAnaHR0cCc6IFRydWV9KSkuZmluZF90b3VjaGVkX3Rlc3RzKHRvdWNoZWRfZmlsZXMp
KQorCisgICAgZGVmIHRlc3RfdG91Y2hlZF90ZXN0KHNlbGYpOgorICAgICAgICBwYXRocyA9IFsn
TGF5b3V0VGVzdHMvdGVzdC5odG1sJywgJ0xheW91dFRlc3RzL3Rlc3QnLCAndGVzdDIuaHRtbCcs
ICdTb3VyY2UvdGVzdDEuaHRtbCddCisgICAgICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2VsZi50
b3VjaGVkX2ZpbGVzKHBhdGhzKQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hl
ZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3RvdWNoZWRf
dGVzdChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBbJ0xheW91dFRlc3RzL3Rlc3QtZXhwZWN0ZWQu
dHh0JywgJ0xheW91dFRlc3RzL25vLXRlc3QtZXhwZWN0ZWQudHh0J10KKyAgICAgICAgZnMgPSBN
b2NrRmlsZVN5c3RlbSgpCisgICAgICAgIGZzLndyaXRlX3RleHRfZmlsZSgnL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvdGVzdC5odG1sJywgJ1RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgZnMs
IHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMocGF0aHMsIGZzKQorICAgICAgICBz
ZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0Lmh0bWwnXSkKKworICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX2V4cGVjdGVkX3RvdWNoZWRfdGVzdChzZWxmKToKKyAgICAgICAg
cGF0aHMgPSBbJ0xheW91dFRlc3RzL3BsYXRmb3JtL21vY2svdGVzdC1leHBlY3RlZC50eHQnLCAn
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbW9jay9uby10ZXN0LWV4cGVjdGVkLnR4dCddCisgICAgICAg
IGZzID0gTW9ja0ZpbGVTeXN0ZW0oKQorICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoJy90ZXN0
LmNoZWNrb3V0L0xheW91dFRlc3RzL3Rlc3QuaHRtbCcsICdUaGlzIGlzIGEgdGVzdCcpCisgICAg
ICAgIGZzLCB0b3VjaGVkX3Rlc3RzID0gc2VsZi50b3VjaGVkX2ZpbGVzKHBhdGhzLCBmcykKKyAg
ICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHRvdWNoZWRfdGVzdHMsIFsndGVzdC5odG1sJ10p
CisKKyAgICBkZWYgdGVzdF9wbGF0Zm9ybV9kdXBsaWNhdGVfdG91Y2hlZF90ZXN0KHNlbGYpOgor
ICAgICAgICBwYXRocyA9IFsnTGF5b3V0VGVzdHMvdGVzdDEuaHRtbCcsICdMYXlvdXRUZXN0cy90
ZXN0MS5odG1sJywgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21vY2sxL3Rlc3QyLWV4cGVjdGVkLnR4
dCcsICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tb2NrMi90ZXN0Mi1leHBlY3RlZC50eHQnXQorICAg
ICAgICBmcyA9IE1vY2tGaWxlU3lzdGVtKCkKKyAgICAgICAgZnMud3JpdGVfdGV4dF9maWxlKCcv
dGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy90ZXN0Mi5odG1sJywgJ1RoaXMgaXMgYSB0ZXN0JykK
KyAgICAgICAgZnMsIHRvdWNoZWRfdGVzdHMgPSBzZWxmLnRvdWNoZWRfZmlsZXMocGF0aHMsIGZz
KQorICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwodG91Y2hlZF90ZXN0cywgWyd0ZXN0MS5o
dG1sJywgJ3Rlc3QyLmh0bWwnXSkKKworICAgIGRlZiB0ZXN0X3RvdWNoZWRfYnV0X3NraXBwZWRf
dGVzdChzZWxmKToKKyAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgcG9ydCA9IE1v
Y2tQb3J0KGhvc3QpCisKKyAgICAgICAgZXhwZWN0YXRpb25zX2RpY3QgPSBPcmRlcmVkRGljdCgp
CisgICAgICAgIGV4cGVjdGF0aW9uc19kaWN0WydleHBlY3RhdGlvbnMnXSA9ICd0ZXN0MS5odG1s
IFsgU2tpcCBdXG50ZXN0My5odG1sIFsgU2tpcCBdXG4nCisgICAgICAgIHBvcnQuZXhwZWN0YXRp
b25zX2RpY3QgPSBsYW1iZGE6IGV4cGVjdGF0aW9uc19kaWN0CisgICAgICAgIHBvcnQudGVzdF9l
eGlzdHMgPSBsYW1iZGEgdGVzdDogVHJ1ZQorCisgICAgICAgIHBhdGhzID0gWydMYXlvdXRUZXN0
cy90ZXN0MC5odG1sJywgJ0xheW91dFRlc3RzL3Rlc3QxLmh0bWwnLCAnTGF5b3V0VGVzdHMvdGVz
dDItZXhwZWN0ZWQudHh0JywgJ0xheW91dFRlc3RzL3Rlc3QzLWV4cGVjdGVkLnR4dCddCisgICAg
ICAgIGhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoJy90ZXN0LmNoZWNrb3V0L0xheW91
dFRlc3RzL3Rlc3QyLmh0bWwnLCAnVGhpcyBpcyBhIHRlc3QgdG8gYmUgcnVubmVkJykKKyAgICAg
ICAgaG9zdC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZSgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0
VGVzdHMvdGVzdDMuaHRtbCcsICdUaGlzIGlzIGEgdGVzdCB0byBiZSBza2lwcGVkJykKKworICAg
ICAgICB0b3VjaGVkX3Rlc3RzID0gTGF5b3V0VGVzdEZpbmRlcihwb3J0LCBvcHRwYXJzZS5WYWx1
ZXMoeydza2lwcGVkJzogJ2Fsd2F5cycsICdza2lwX2ZhaWxpbmdfdGVzdHMnOiBGYWxzZSwgJ2h0
dHAnOiBUcnVlfSkpLmZpbmRfdG91Y2hlZF90ZXN0cyhwYXRocykKKyAgICAgICAgc2VsZi5hc3Nl
cnRJdGVtc0VxdWFsKHRvdWNoZWRfdGVzdHMsIFsndGVzdDAuaHRtbCcsICd0ZXN0Mi5odG1sJ10p
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IDMwMWZjODNhMjVlM2JjOTRmNjEy
MWZiZWRkZWUzOGQzZmJjOWQ3MTAuLjcxNWY4ZmQ0NGFlMDExYjc1YjUzNDI2M2E2YmVkOGY5YWVl
ZjZlMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC01MjcsNiArNTI3LDE5
IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gcmVmdGVzdF9saXN0Lmdl
dChzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFt
ZSksIFtdKSAgIyBweWxpbnQ6IGRpc2FibGU9RTExMDMKIAorICAgIGRlZiBwb3RlbnRpYWxfdGVz
dF9uYW1lc19mcm9tX2V4cGVjdGVkX2ZpbGUoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIlJldHVy
biBwb3RlbnRpYWwgdGVzdCBuYW1lcyBpZiBhbnkgZnJvbSBhIHBvdGVudGlhbCBleHBlY3RlZCBm
aWxlIHBhdGgsIHJlbGF0aXZlIHRvIExheW91dFRlc3RzIGRpcmVjdG9yeS4iIiIKKworICAgICAg
ICBpZiBub3QgJy1leHBlY3RlZC4nIGluIHBhdGg6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
CisgICAgICAgIHN1YnBhdGggPSBzZWxmLmhvc3QuZmlsZXN5c3RlbS5yZWxwYXRoKHBhdGgsIHNl
bGYubGF5b3V0X3Rlc3RzX2RpcigpKQorICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgoJ3BsYXRm
b3JtJyArIHNlbGYuX2ZpbGVzeXN0ZW0uc2VwKToKKyAgICAgICAgICAgIHN0ZXBzID0gcGF0aC5z
cGxpdChzZWxmLl9maWxlc3lzdGVtLnNlcCkKKyAgICAgICAgICAgIHBhdGggPSBzZWxmLl9maWxl
c3lzdGVtLmpvaW4oc2VsZi5fZmlsZXN5c3RlbS5zZXAuam9pbihzdGVwc1syOl0pKQorCisgICAg
ICAgIHJldHVybiBbc2VsZi5ob3N0LmZpbGVzeXN0ZW0ucmVscGF0aCh0ZXN0LCBzZWxmLmxheW91
dF90ZXN0c19kaXIoKSkgZm9yIHRlc3QgaW4gc2VsZi5fZmlsZXN5c3RlbS5nbG9iKHJlLnN1Yign
LWV4cGVjdGVkLionLCAnLionLCBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVz
dHNfZGlyKCksIHBhdGgpKSkgaWYgc2VsZi5fZmlsZXN5c3RlbS5pc2ZpbGUodGVzdCldCisKICAg
ICBkZWYgdGVzdHMoc2VsZiwgcGF0aHMpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGxpc3Qgb2Yg
dGVzdHMgZm91bmQuIEJvdGggZ2VuZXJpYyBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgdGVzdHMgbWF0
Y2hpbmcgcGF0aHMgc2hvdWxkIGJlIHJldHVybmVkLiIiIgogICAgICAgICBleHBhbmRlZF9wYXRo
cyA9IHNlbGYuX2V4cGFuZGVkX3BhdGhzKHBhdGhzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IGYz
OTRkYjBhZDRiZjRkN2E2YzZlODI5ODEyZGQ3YmZkNDVlZDM2ZmMuLjQyOWRhMTI0NmY4YmQ3NmFi
MDJlZTYzM2M0MmQ2ZmIzOGQzODU0YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKQEAgLTg4LDYgKzg4
LDcgQEAgY2xhc3MgRG93bmxvYWRDb21tYW5kc1Rlc3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAg
b3B0aW9ucy50ZXN0ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLnVwZGF0ZSA9IFRydWUKICAgICAg
ICAgb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSAnTU9DSyBBUkNIJworICAgICAgICBvcHRpb25zLml0
ZXJhdGVfb25fbmV3X3Rlc3RzID0gMAogICAgICAgICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVm
IHRlc3RfYnVpbGQoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9v
cHRpb25zLnB5CmluZGV4IDgwZDc2ZDI2YTE4MTcyZWQ0YjEyZDliZGU0NmI2YTdlYjJmYTgxZjAu
LjBhZGIyM2UxYTViMjIyN2U3Mjg4NTBiZTI1Y2NkNzQ0MTM3ZTU4YzkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC01Niw2ICs1Niw3IEBAIGNs
YXNzIE9wdGlvbnMob2JqZWN0KToKICAgICByZXZpZXdlciA9IG1ha2Vfb3B0aW9uKCItciIsICIt
LXJldmlld2VyIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9InJldmlld2Vy
IiwgaGVscD0iVXBkYXRlIENoYW5nZUxvZ3MgdG8gc2F5IFJldmlld2VkIGJ5IFJFVklFV0VSLiIp
CiAgICAgc3VnZ2VzdF9yZXZpZXdlcnMgPSBtYWtlX29wdGlvbigiLS1zdWdnZXN0LXJldmlld2Vy
cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik9mZmVyIHRvIEND
IGFwcHJvcHJpYXRlIHJldmlld2Vycy4iKQogICAgIHRlc3QgPSBtYWtlX29wdGlvbigiLS10ZXN0
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idGVzdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
IlJ1biBydW4td2Via2l0LXRlc3RzIGJlZm9yZSBjb21taXR0aW5nLiIpCisgICAgaXRlcmF0ZV9v
bl9uZXdfdGVzdHMgPSBtYWtlX29wdGlvbigiLS1pdGVyYXRlLW9uLW5ldy10ZXN0cyIsIGFjdGlv
bj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJpdGVyYXRlX29uX25ld190ZXN0cyIsIGRlZmF1
bHQ9MCwgaGVscD0iUnVuIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRlc3RzIG9ubHkgYmVmb3Jl
IGNvbW1pdHRpbmcsIGl0ZXJhdGluZyBhIGdpdmVuIG51bWJlciBvZiB0aW1lLiIpCiAgICAgdXBk
YXRlID0gbWFrZV9vcHRpb24oIi0tbm8tdXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRl
c3Q9InVwZGF0ZSIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG9uJ3QgdXBkYXRlIHRoZSB3b3JraW5n
IGRpcmVjdG9yeS4iKQogICAgIHVwZGF0ZV9jaGFuZ2Vsb2dzID0gbWFrZV9vcHRpb24oIi0tdXBk
YXRlLWNoYW5nZWxvZ3MiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ1cGRhdGVfY2hhbmdl
bG9ncyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlVwZGF0ZSBleGlzdGluZyBDaGFuZ2VMb2cgZW50
cmllcyB3aXRoIG5ldyBkYXRlLCBidWcgZGVzY3JpcHRpb24sIGFuZCB0b3VjaGVkIGZpbGVzL2Z1
bmN0aW9ucy4iKQogICAgIGNoYW5nZWxvZ19jb3VudCA9IG1ha2Vfb3B0aW9uKCItLWNoYW5nZWxv
Zy1jb3VudCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJpbnQiLCBkZXN0PSJjaGFuZ2Vsb2dfY291
bnQiLCBoZWxwPSJOdW1iZXIgb2YgY2hhbmdlbG9ncyB0byBwYXJzZS4iKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IGRkZGY4MWVjMGI2ODgw
ZTVkOWMyZTk2MWE0NTEwZjY5MTkwOGUzZmIuLmI2ZTdkYjhhMzAwZTg4NTRjZDRhYjEwNGU4MTFm
MzZhM2IyMWY3ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHMucHkKQEAgLTI3LDEyICsyNywxNiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgbG9n
Z2luZworaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQoraW1wb3J0
IHJlCiBpbXBvcnQgc3lzCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGlt
cG9ydCBBYnN0cmFjdFN0ZXAKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9y
dCBPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBT
Y3JpcHRFcnJvciwgRXhlY3V0aXZlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBI
b3N0Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRfdGVzdF9m
aW5kZXIgaW1wb3J0IExheW91dFRlc3RGaW5kZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQogCkBAIC00NSwxMSArNDksMTYgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RT
dGVwKToKICAgICAgICAgcmV0dXJuIEFic3RyYWN0U3RlcC5vcHRpb25zKCkgKyBbCiAgICAgICAg
ICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAogICAgICAgICAgICAgT3B0aW9ucy50ZXN0LAorICAg
ICAgICAgICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlv
bnMubm9uX2ludGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAg
XQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
aXRlcmF0ZV9vbl9uZXdfdGVzdHM6CisgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVu
LXdlYmtpdC10ZXN0cyBvbiBuZXcgdGVzdHMiKQorICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtp
dF90ZXN0cyhzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzKQorCiAgICAgICAgIGlm
IG5vdCBzZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAgICAgICByZXR1cm4KIApAQCAtOTAsNiAr
OTksMTkgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgICAgICBf
bG9nLmluZm8oIkVycm9yIHJ1bm5pbmcgcnVuLWJpbmRpbmdzLXRlc3RzOiAlcyIgJSBlLm1lc3Nh
Z2Vfd2l0aF9vdXRwdXQoKSkKIAogICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtp
dC10ZXN0cyIpCisgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoKQorCisgICAgZGVmIF9u
ZXdfb3JfbW9kaWZpZWRfdGVzdHMoc2VsZik6CisgICAgICAgIHRvdWNoZWRfZmlsZXMgPSBzZWxm
Ll90b29sLnNjbSgpLmNoYW5nZWRfZmlsZXMoKQorICAgICAgICB0b3VjaGVkX2ZpbGVzLmV4dGVu
ZChzZWxmLl90b29sLnNjbSgpLnVudHJhY2tlZF9maWxlcygpKQorICAgICAgICBpZiBub3QgdG91
Y2hlZF9maWxlczoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgY29uZmlndXJh
dGlvbiA9ICJEZWJ1ZyIgaWYgKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUgPT0gImRlYnVnIikg
ZWxzZSAiUmVsZWFzZSIKKyAgICAgICAgcG9ydCA9IEhvc3QoKS5wb3J0X2ZhY3RvcnkuZ2V0KHNl
bGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucG9ydF9mbGFnX25hbWUsIG9wdHBhcnNlLlZhbHVl
cyh7J2NvbmZpZ3VyYXRpb24nOiBjb25maWd1cmF0aW9ufSkpCisgICAgICAgIHJldHVybiBMYXlv
dXRUZXN0RmluZGVyKHBvcnQsIG9wdHBhcnNlLlZhbHVlcyh7J3NraXBwZWQnOiAnYWx3YXlzJywg
J3NraXBfZmFpbGluZ190ZXN0cyc6IEZhbHNlLCAnaHR0cCc6IFRydWV9KSkuZmluZF90b3VjaGVk
X3Rlc3RzKHRvdWNoZWRfZmlsZXMpCisKKyAgICBkZWYgX3J1bl93ZWJraXRfdGVzdHMoc2VsZiwg
aXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCk6CiAgICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLmRlcHJl
Y2F0ZWRfcG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZT1zZWxmLl9v
cHRpb25zLmJ1aWxkX3N0eWxlKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZToKICAgICAgICAgICAgIGFyZ3MuZXh0ZW5kKFsKQEAgLTEwOSw1ICsxMzEsMTQgQEAgY2xh
c3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5xdWll
dDoKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLXF1aWV0IikKIAorICAgICAgICBpZiBpdGVy
YXRlX29uX25ld190ZXN0czoKKyAgICAgICAgICAgIG5ld190ZXN0cyA9IHNlbGYuX25ld19vcl9t
b2RpZmllZF90ZXN0cygpCisgICAgICAgICAgICBpZiBub3QgbmV3X3Rlc3RzOgorICAgICAgICAg
ICAgICAgIF9sb2cuaW5mbygiTm8gbmV3IG9yIG1vZGlmaWVkIHRlc3RzIikKKyAgICAgICAgICAg
ICAgICByZXR1cm4KKyAgICAgICAgICAgIF9sb2cuaW5mbygiVG91Y2hlZCB0ZXN0cyBhcmU6ICIg
KyBzdHIobmV3X3Rlc3RzKSkKKyAgICAgICAgICAgIGZvciB0ZXN0IGluIG5ld190ZXN0czoKKyAg
ICAgICAgICAgICAgICBhcmdzLmFwcGVuZCh0ZXN0KQorICAgICAgICAgICAgYXJncy5hcHBlbmQo
Ii0taXRlcmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKKwogICAgICAgICBzZWxm
Ll90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rv
b2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKLSAgICAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNDQ5ODJl
MjMwMzI3YzVhZjU3MDNkZWMxY2YxZTQ1Y2NlYTQ1ZGMyNi4uMmExNjg4ZGIxYzhiYzVkOTZhMzEy
NWIwM2NhNGMyY2ZkYzY4NDg1YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtMzksNyArMzksNyBAQCBjbGFz
cyBSdW5UZXN0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29sID0gTW9ja1Rv
b2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVu
X3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAgICB0b29sLl9k
ZXByZWNhdGVkX3BvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUK
LSAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9u
X2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0icmVsZWFzZSIpKQor
ICAgICAgICBzdGVwID0gUnVuVGVzdHModG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25f
aW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRl
cmF0ZV9vbl9uZXdfdGVzdHM9MCkpCiAKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJjeWd3
aW4iOgogICAgICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmluZGluZ3MgZ2Vu
ZXJhdGlvbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDM0MGRjYWVlZmEzYjEzZDM3OThmZWRmNmU5MjVkMzlm
NzlmNThjMmIuLjhhMDI2NWQyM2I5MzM5MjM2NTBhYzNlMjM5Y2VmZDUyZWI3MjMzZmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3Qu
cHkKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgb3B0aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcKICAgICAgICAgb3B0aW9ucy5xdWll
dCA9IFRydWUKICAgICAgICAgb3B0aW9ucy50ZXN0ID0gVHJ1ZQorICAgICAgICBvcHRpb25zLml0
ZXJhdGVfb25fbmV3X3Rlc3RzID0gMAogICAgICAgICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVm
IF9ydW5fc3RlcChzZWxmLCBzdGVwLCB0b29sPU5vbmUsIG9wdGlvbnM9Tm9uZSwgc3RhdGU9Tm9u
ZSk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>