<?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>96203</bug_id>
          
          <creation_ts>2012-09-09 05:21:06 -0700</creation_ts>
          <short_desc>[XvfbDriver] First tests in each worker occasionally crash</short_desc>
          <delta_ts>2012-10-03 05:42:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abarth</cc>
    
    <cc>ander.conselvan.de.oliveira</cc>
    
    <cc>dpranke</cc>
    
    <cc>galpeter</cc>
    
    <cc>kkristof</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>715482</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-09 05:21:06 -0700</bug_when>
    <thetext>[XvfbDriver] First tests in each worker occasionally crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715483</commentid>
    <comment_count>1</comment_count>
      <attachid>162991</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-09 05:24:09 -0700</bug_when>
    <thetext>Created attachment 162991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715484</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-09 05:26:11 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; [XvfbDriver] First tests in each worker occasionally crash

An example of this:
http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r127965%20(36591)/results.html

2 of those tests are real crashers while the other four were just not able to find the Xvfb display. Waiting a bit before the tests are run should fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715489</commentid>
    <comment_count>3</comment_count>
      <attachid>162993</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-09 06:32:43 -0700</bug_when>
    <thetext>Created attachment 162993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715544</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-09-09 11:39:52 -0700</bug_when>
    <thetext>Each Xvfb instance creates a lock file in /tmp (ex: /tmp/.X0-lock) and a unix socket (ex: /tmp/.X11-unix/X0). Maybe there&apos;s a way to be notified when the unix socket is listening and waiting for a connection?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716191</commentid>
    <comment_count>5</comment_count>
      <attachid>163155</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-10 09:59:23 -0700</bug_when>
    <thetext>Created attachment 163155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716211</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-10 10:10:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=163155) [details]
&gt; Patch

This takes a whole new approach towards solving the problem.

I&apos;ve discovered the Xvfb&apos;s -displayfd command line flag. This forces the Xvfb to use no locking mechanisms[1] and to search for a free display[2]. When such a display is found, it is used and reported into the -displayfd argument[3].

The good thing about the display number reporting is that it&apos;s done only when the Xvfb is ready to operate[4]. To take that into account, I&apos;ve directed the display number reporting into stderr of the Xvfb which is now Executive.PIPE (= subprocess.Pipe). The stderr is then read until a display number can be located and closed afterwards.

This also fixes bug #88414 as it removes any usage of lock files and lets Xvfb figure out the next free display.

[1] http://cgit.freedesktop.org/xorg/xserver/tree/os/utils.c#n663
[2] http://cgit.freedesktop.org/xorg/xserver/tree/os/connection.c#n415
[3] http://cgit.freedesktop.org/xorg/xserver/tree/os/connection.c#n350
[4] http://cgit.freedesktop.org/xorg/xserver/tree/dix/main.c#n293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716916</commentid>
    <comment_count>7</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-09-11 00:48:17 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Created an attachment (id=163155) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; This takes a whole new approach towards solving the problem.
&gt; 
&gt; I&apos;ve discovered the Xvfb&apos;s -displayfd command line flag. This forces the Xvfb to use no locking mechanisms[1] and to search for a free display[2]. When such a display is found, it is used and reported into the -displayfd argument[3].
&gt; 
&gt; The good thing about the display number reporting is that it&apos;s done only when the Xvfb is ready to operate[4]. To take that into account, I&apos;ve directed the display number reporting into stderr of the Xvfb which is now Executive.PIPE (= subprocess.Pipe). The stderr is then read until a display number can be located and closed afterwards.
&gt; 
&gt; This also fixes bug #88414 as it removes any usage of lock files and lets Xvfb figure out the next free display.
Does it work when multiple xvfbs start at the same time?
Because that was the reason why I used the file lock.
&gt; 
&gt; [1] http://cgit.freedesktop.org/xorg/xserver/tree/os/utils.c#n663
&gt; [2] http://cgit.freedesktop.org/xorg/xserver/tree/os/connection.c#n415
&gt; [3] http://cgit.freedesktop.org/xorg/xserver/tree/os/connection.c#n350
&gt; [4] http://cgit.freedesktop.org/xorg/xserver/tree/dix/main.c#n293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716940</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-11 01:32:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; The good thing about the display number reporting is that it&apos;s done only when the Xvfb is ready to operate[4]. To take that into account, I&apos;ve directed the display number reporting into stderr of the Xvfb which is now Executive.PIPE (= subprocess.Pipe). The stderr is then read until a display number can be located and closed afterwards.
&gt; &gt; 
&gt; &gt; This also fixes bug #88414 as it removes any usage of lock files and lets Xvfb figure out the next free display.
&gt; Does it work when multiple xvfbs start at the same time?
&gt; Because that was the reason why I used the file lock.

Yes, I&apos;ve tested it with 8 parallel workers and there were no problems, 8 separate displays were opened. I&apos;ll try to up the number a bit as well to see what happens, just to be sure.

Another thing Kristof just pointed out, the -displayfd is quite a fresh addition, Xvfb 1.13.0 being the first stable version to ship it. 1.13.0 was just released though, 5 days ago. (I&apos;m running Ubuntu 12.10.)

This probably delays this approach for some time unless people wish to upgrade systems on the builders or install up-to-date Xvfb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718141</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-09-12 03:21:06 -0700</bug_when>
    <thetext>The bots use Debian Sid (mostly) and xvfb 1.13 doesn&apos;t seem to be there yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721897</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-17 07:13:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Each Xvfb instance creates a lock file in /tmp (ex: /tmp/.X0-lock) and a unix socket (ex: /tmp/.X11-unix/X0). Maybe there&apos;s a way to be notified when the unix socket is listening and waiting for a connection?

This could be possible, but I don&apos;t see a way how to properly test this approach because of its complexity.

Given that the builders don&apos;t yet run systems with the newest version of Xvfb, I&apos;d recommend returning to the driver startup delaying approach. If that&apos;s OK with everyone interested I&apos;ll upload an updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721901</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-09-17 07:20:35 -0700</bug_when>
    <thetext>What about trying the displayfd option and falling back to the startup delay approach if we detect the host&apos;s xvfb doesn&apos;t have this new option?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731473</commentid>
    <comment_count>12</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-01 01:35:59 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; What about trying the displayfd option and falling back to the startup delay approach if we detect the host&apos;s xvfb doesn&apos;t have this new option?

The next-free-display solution has been reviewed in bug #88414 and landed in r129891, and is based on listing the various X processes and their display numbers:
http://trac.webkit.org/changeset/129891

I&apos;ll reupload the patch with the starup delay approach for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731482</commentid>
    <comment_count>13</comment_count>
      <attachid>166425</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-01 01:45:48 -0700</bug_when>
    <thetext>Created attachment 166425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731825</commentid>
    <comment_count>14</comment_count>
      <attachid>166425</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-01 11:26:52 -0700</bug_when>
    <thetext>Comment on attachment 166425
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:73
&gt; +        time.sleep(self._port.driver_startup_delay_secs())

why don&apos;t we just sleep for 1.0 seconds here? it&apos;s not clear what the abstraction is buying you ... wouldn&apos;t any port using xvfbdriver likely need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731832</commentid>
    <comment_count>15</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-01 11:31:54 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 166425 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166425&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:73
&gt; &gt; +        time.sleep(self._port.driver_startup_delay_secs())
&gt; 
&gt; why don&apos;t we just sleep for 1.0 seconds here? it&apos;s not clear what the abstraction is buying you ... wouldn&apos;t any port using xvfbdriver likely need this?

The abstraction spares 1 second when running webkitpy tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731844</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-01 11:44:03 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 166425 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166425&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:73
&gt; &gt; &gt; +        time.sleep(self._port.driver_startup_delay_secs())
&gt; &gt; 
&gt; &gt; why don&apos;t we just sleep for 1.0 seconds here? it&apos;s not clear what the abstraction is buying you ... wouldn&apos;t any port using xvfbdriver likely need this?
&gt; 
&gt; The abstraction spares 1 second when running webkitpy tests.

Ah. Looks like this affects ~4 tests, and adds maybe a quarter second to the runtime on my machine if you&apos;re running the tests in parallel, so I&apos;m not sure the time savings is worth it, but let me think about this a bit further ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731853</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-01 11:51:32 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; (From update of attachment 166425 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166425&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:73
&gt; &gt; &gt; &gt; +        time.sleep(self._port.driver_startup_delay_secs())
&gt; &gt; &gt; 
&gt; &gt; &gt; why don&apos;t we just sleep for 1.0 seconds here? it&apos;s not clear what the abstraction is buying you ... wouldn&apos;t any port using xvfbdriver likely need this?
&gt; &gt; 
&gt; &gt; The abstraction spares 1 second when running webkitpy tests.
&gt; 
&gt; Ah. Looks like this affects ~4 tests, and adds maybe a quarter second to the runtime on my machine if you&apos;re running the tests in parallel, so I&apos;m not sure the time savings is worth it, but let me think about this a bit further ...

Okay, it looks like this only affects the unit tests for XvfbDriver, and all of those are calling make_driver() in XvfbDriverTest(). Can you make the startup delay be a field on the instance set in the constructor and then override it in make_driver?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731871</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-01 12:05:02 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; &gt; (From update of attachment 166425 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166425&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:73
&gt; &gt; &gt; &gt; &gt; +        time.sleep(self._port.driver_startup_delay_secs())
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; why don&apos;t we just sleep for 1.0 seconds here? it&apos;s not clear what the abstraction is buying you ... wouldn&apos;t any port using xvfbdriver likely need this?
&gt; &gt; &gt; 
&gt; &gt; &gt; The abstraction spares 1 second when running webkitpy tests.
&gt; &gt; 
&gt; &gt; Ah. Looks like this affects ~4 tests, and adds maybe a quarter second to the runtime on my machine if you&apos;re running the tests in parallel, so I&apos;m not sure the time savings is worth it, but let me think about this a bit further ...
&gt; 
&gt; Okay, it looks like this only affects the unit tests for XvfbDriver, and all of those are calling make_driver() in XvfbDriverTest(). Can you make the startup delay be a field on the instance set in the constructor and then override it in make_driver?

Right, that works as well, I&apos;ll upload a patch tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732681</commentid>
    <comment_count>19</comment_count>
      <attachid>166693</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-02 08:53:25 -0700</bug_when>
    <thetext>Created attachment 166693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732703</commentid>
    <comment_count>20</comment_count>
      <attachid>166693</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-02 09:17:34 -0700</bug_when>
    <thetext>Comment on attachment 166693
Patch

Attachment 166693 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14130340

New failing tests:
http/tests/workers/terminate-during-sync-operation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732709</commentid>
    <comment_count>21</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-02 09:21:33 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 166693 [details])
&gt; Attachment 166693 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/14130340
&gt; 
&gt; New failing tests:
&gt; http/tests/workers/terminate-during-sync-operation.html

I&apos;m pretty sure that&apos;s a false alarm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732909</commentid>
    <comment_count>22</comment_count>
      <attachid>166693</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-02 11:52:52 -0700</bug_when>
    <thetext>Comment on attachment 166693
Patch

Clearing flags on attachment: 166693

Committed r130192: &lt;http://trac.webkit.org/changeset/130192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732910</commentid>
    <comment_count>23</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-02 11:53:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733597</commentid>
    <comment_count>24</comment_count>
    <who name="Ander Conselvan de Oliveira">ander.conselvan.de.oliveira</who>
    <bug_when>2012-10-03 05:42:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Each Xvfb instance creates a lock file in /tmp (ex: /tmp/.X0-lock) and a unix socket (ex: /tmp/.X11-unix/X0). Maybe there&apos;s a way to be notified when the unix socket is listening and waiting for a connection?

From Xserver(1) man page:

&quot;&quot;&quot;
SIGUSR1
    [...] When the server starts, it checks to see if it has inherited SIGUSR1 as SIG_IGN instead of the usual SIG_DFL. In this case, the server sends a SIGUSR1 to its parent process after it has set up the various connection schemes. Xdm uses this feature to recognize when connecting to the server is possible.
&quot;&quot;&quot;

This works for launching a single X server. For launching multiple workers, each Xvfb would need a different parent process that sends the &quot;readiness&quot; status to the main launcher, but this should work with the most ancient versions of X.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162991</attachid>
            <date>2012-09-09 05:24:09 -0700</date>
            <delta_ts>2012-09-09 06:32:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96203-20120909052347.patch</filename>
            <type>text/plain</type>
            <size>2320</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJmYWYyZDczNDQ2NDM4YzgyMWM2YTIxNjNmMGRmOWYy
OGZmMDFiNS4uZmI0MjViZWI1YTE1NWYyZDhlODRhNGQxZGNhYjFiYWUxNzk3MDZjZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTA5LTA5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW1h2ZmJEcml2ZXJdIEZpcnN0IHRlc3RzIGluIGVhY2ggd29ya2VyIG9jY2FzaW9u
YWxseSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiBpbiBkZWJ1ZyBidWlsZHMsIHRoZSBmaXJzdCB0ZXN0cyBpbiBlYWNoIHdvcmtlciBj
cmFzaCBiZWNhdXNlIHRoZXkKKyAgICAgICAgY2FuJ3QgeWV0IG9wZW4gdGhlIFh2ZmIgZGlzcGxh
eSBhc3NpZ25lZCB0byB0aGVtLiBUaGlzIGluZGljYXRlcyBYdmZiIGhhc24ndAorICAgICAgICB5
ZXQgYmVlbiBzZXQgdXAuCisKKyAgICAgICAgVG8gYXZvaWQgdGhpcywgdGhlIGV4ZWN1dGlvbiBz
aG91bGQgaGFsdCBmb3IgYSBzbWFsbCBhbW91bnQgb2YgdGltZSBiZWZvcmUgdGVzdHMKKyAgICAg
ICAgYXJlIHJ1biBzbyB0aGUgWHZmYiBwcm9jZXNzIGhhcyBlbm91Z2ggdGltZSB0byBnZXQgcmVh
ZHkuIEF0IHRoZSBtb21lbnQgdGhpcyBpcworICAgICAgICBkb25lIHJpZ2h0IGFmdGVyIHRoZSBY
dmZiIHByb2Nlc3MgaXMgc3Bhd25lZCBhbmQgdGhlIGV4ZWN1dGlvbiBoYWx0cyBmb3Igb25lCisg
ICAgICAgIHNlY29uZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQveHZmYmRyaXZlci5weToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3N0YXJ0KToKKwogMjAx
Mi0wOS0wNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQuIEFkZCBHw6Fib3IgQmFsbGFiw6FzIGFzIGNvbnRyaWJ1dG9yLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVy
LnB5CmluZGV4IGQxMDgyMzVmMWQ2MzM2YTk3NzgyMzI2NWJmNDkyNmNjM2Y4MDlhMWQuLjlmYWNi
OTEzM2QzY2JlZGZkOWYyYzA3OTk2YTE5OTZhYjZkNmExMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKQEAgLTMw
LDYgKzMwLDcgQEAgaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHNpZ25hbAogaW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0aW1lCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXIKQEAgLTU5LDYgKzYwLDEwIEBA
IGNsYXNzIFh2ZmJEcml2ZXIoRHJpdmVyKToKICAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vz
cyA9IHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucG9wZW4ocnVuX3h2ZmIsIHN0ZGVycj1kZXZu
dWxsKQogICAgICAgICBzZWxmLl9sb2NrX2ZpbGUgPSAiL3RtcC8uWCVkLWxvY2siICUgZGlzcGxh
eV9pZAogCisgICAgICAgICMgQ3Jhc2hlcyBpbnRlbmQgdG8gb2NjdXIgb2NjYXNpb25hbGx5IGlu
IHRoZSBmaXJzdCBmZXcgdGVzdHMgdGhhdCBhcmUgcnVuIHRocm91Z2ggZWFjaAorICAgICAgICAj
IHdvcmtlciBiZWNhdXNlIHRoZSBYdmZiIGRpc3BsYXkgaXNuJ3QgcmVhZHkgeWV0LiBIYWx0aW5n
IGV4ZWN1dGlvbiBhIGJpdCBzaG91bGQgYXZvaWQgdGhhdC4KKyAgICAgICAgdGltZS5zbGVlcCgx
LjApCisKICAgICAgICAgc2VydmVyX25hbWUgPSBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkKICAg
ICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZXJ2ZXJfbmFtZSkKICAgICAgICAgIyBXZSBtdXN0IGRvIHRoaXMgaGVyZSBiZWNhdXNlIHRoZSBE
SVNQTEFZIG51bWJlciBkZXBlbmRzIG9uIF93b3JrZXJfbnVtYmVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162993</attachid>
            <date>2012-09-09 06:32:43 -0700</date>
            <delta_ts>2012-09-10 09:59:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96203-20120909063221.patch</filename>
            <type>text/plain</type>
            <size>4289</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJmYWYyZDczNDQ2NDM4YzgyMWM2YTIxNjNmMGRmOWYy
OGZmMDFiNS4uM2VkYzFlMzFmMWM5MGYxOWI0MzlkNzY4ZWZiNDVmN2MxMjhkNTRlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTA5LTA5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW1h2ZmJEcml2ZXJdIEZpcnN0IHRlc3RzIGluIGVhY2ggd29ya2VyIG9jY2FzaW9u
YWxseSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiBpbiBkZWJ1ZyBidWlsZHMsIHRoZSBmaXJzdCB0ZXN0cyBpbiBlYWNoIHdvcmtlciBj
cmFzaCBiZWNhdXNlIHRoZXkKKyAgICAgICAgY2FuJ3QgeWV0IG9wZW4gdGhlIFh2ZmIgZGlzcGxh
eSBhc3NpZ25lZCB0byB0aGVtLiBUaGlzIGluZGljYXRlcyBYdmZiIGhhc24ndAorICAgICAgICB5
ZXQgYmVlbiBzZXQgdXAuCisKKyAgICAgICAgVG8gYXZvaWQgdGhpcywgdGhlIGV4ZWN1dGlvbiBz
aG91bGQgaGFsdCBmb3IgYSBzbWFsbCBhbW91bnQgb2YgdGltZSBiZWZvcmUgdGVzdHMKKyAgICAg
ICAgYXJlIHJ1biBzbyB0aGUgWHZmYiBwcm9jZXNzIGhhcyBlbm91Z2ggdGltZSB0byBnZXQgcmVh
ZHkuIEF0IHRoZSBtb21lbnQgdGhpcyBpcworICAgICAgICBkb25lIHJpZ2h0IGFmdGVyIHRoZSBY
dmZiIHByb2Nlc3MgaXMgc3Bhd25lZCBhbmQgdGhlIGV4ZWN1dGlvbiBoYWx0cyBmb3Igb25lCisg
ICAgICAgIHNlY29uZC4KKworICAgICAgICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgbmV3IG1l
dGhvZCB0byB0aGUgYmFzZSBQb3J0IGNsYXNzIHRoYXQgcmV0dXJucyB0aGUgbnVtYmVyCisgICAg
ICAgIG9mIHNlY29uZHMgdGhlIGRyaXZlciBzaG91bGQgZGVsYXkgdGhlIGV4ZWN1dGlvbi4gVGhl
IGRlZmF1bHQgdmFsdWUgaXMgMCBhbmQgdGhlCisgICAgICAgIEd0a1BvcnQgb3ZlcnJpZGVzIHRo
ZSBtZXRob2QgdG8gY3VycmVudGx5IHJldHVybiAxLjAuIEF0IHRoZSBtb21lbnQgb25seSB0aGUg
WHZmYkRyaXZlcgorICAgICAgICBkZWxheXMgdGhlIGV4ZWN1dGlvbiwgaW4gWHZmYkRyaXZlci5f
c3RhcnQuIFdpdGggdGhpcyBhcHByb2FjaCBubyBkZWxheSBvY2N1cnMgd2hlbiBydW5uaW5nCisg
ICAgICAgIHdlYmtpdHB5IHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5kcml2ZXJfc3RhcnR1cF9kZWxh
eV9zZWNzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0
ay5weToKKyAgICAgICAgKEd0a1BvcnQuZHJpdmVyX3N0YXJ0dXBfZGVsYXlfc2Vjcyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5Ogor
ICAgICAgICAoWHZmYkRyaXZlci5fc3RhcnQpOgorCiAyMDEyLTA5LTA3ICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIEfDoWJv
ciBCYWxsYWLDoXMgYXMgY29udHJpYnV0b3IuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggYTRmNmE1NGQ4ZDM1NzViOWM1MmIyODc0
OTZlZGRhMDEyZTRiMGEyNS4uZjAzN2VhODVhMzZjMWQ2YmM2ZWY2NTU3OTU2YmQ5MmFiNDI1YmY4
YyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9i
YXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFz
ZS5weQpAQCAtMTg5LDYgKzE4OSw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIyB3
b3JrZXJzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTQ3
IC4KICAgICAgICAgcmV0dXJuIDAuMQogCisgICAgZGVmIGRyaXZlcl9zdGFydHVwX2RlbGF5X3Nl
Y3Moc2VsZik6CisgICAgICAgIHJldHVybiAwLjAKKwogICAgIGRlZiBiYXNlbGluZV9wYXRoKHNl
bGYpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGRpcmVjdG9y
eSB0byBzdG9yZSBuZXcgYmFzZWxpbmVzIGluIGZvciB0aGlzIHBvcnQuIiIiCiAgICAgICAgICMg
RklYTUU6IHJlbW92ZSBvbmNlIGFsbCBjYWxsZXJzIGFyZSBjYWxsaW5nIGVpdGhlciBiYXNlbGlu
ZV92ZXJzaW9uX2RpcigpIG9yIGJhc2VsaW5lX3BsYXRmb3JtX2RpcigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5CmluZGV4IGVmZWJmMmRiMDAz
ZmYwYTk0ZWY0YzY1YzU2YjU2Njg1ZjU4MGQwNWIuLjc1NzQ1MDZkYzM3NWU5NmVhZTNjNGQ0N2Nm
NjhlOGQyNzgzODgzYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvZ3RrLnB5CkBAIC00NCw2ICs0NCw5IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCwgUHVs
c2VBdWRpb1Nhbml0aXplcik6CiAgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CiAgICAgICAg
IHJldHVybiBYdmZiRHJpdmVyCiAKKyAgICBkZWYgZHJpdmVyX3N0YXJ0dXBfZGVsYXlfc2Vjcyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIDEuMAorCiAgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYp
OgogICAgICAgICBzZWxmLl91bmxvYWRfcHVsc2VhdWRpb19tb2R1bGUoKQogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkK
aW5kZXggZDEwODIzNWYxZDYzMzZhOTc3ODIzMjY1YmY0OTI2Y2MzZjgwOWExZC4uNzZlNjdhYjk4
ODkzMjZjM2Q0MGRlNWUxN2NmY2FjNmU3NTFjNzkxMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQpAQCAtMzAsNiAr
MzAsNyBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQg
c3VicHJvY2VzcworaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dC5zZXJ2ZXJfcHJvY2VzcyBpbXBvcnQgU2VydmVyUHJvY2VzcwogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMucG9ydC5kcml2ZXIgaW1wb3J0IERyaXZlcgpAQCAtNTksNiArNjAsMTAgQEAgY2xh
c3MgWHZmYkRyaXZlcihEcml2ZXIpOgogICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0g
c2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJyPWRldm51bGwp
CiAgICAgICAgIHNlbGYuX2xvY2tfZmlsZSA9ICIvdG1wLy5YJWQtbG9jayIgJSBkaXNwbGF5X2lk
CiAKKyAgICAgICAgIyBDcmFzaGVzIGludGVuZCB0byBvY2N1ciBvY2Nhc2lvbmFsbHkgaW4gdGhl
IGZpcnN0IGZldyB0ZXN0cyB0aGF0IGFyZSBydW4gdGhyb3VnaCBlYWNoCisgICAgICAgICMgd29y
a2VyIGJlY2F1c2UgdGhlIFh2ZmIgZGlzcGxheSBpc24ndCByZWFkeSB5ZXQuIEhhbHRpbmcgZXhl
Y3V0aW9uIGEgYml0IHNob3VsZCBhdm9pZCB0aGF0LgorICAgICAgICB0aW1lLnNsZWVwKHNlbGYu
X3BvcnQuZHJpdmVyX3N0YXJ0dXBfZGVsYXlfc2VjcygpKQorCiAgICAgICAgIHNlcnZlcl9uYW1l
ID0gc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgpCiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5f
cG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCiAgICAgICAgICMgV2Ug
bXVzdCBkbyB0aGlzIGhlcmUgYmVjYXVzZSB0aGUgRElTUExBWSBudW1iZXIgZGVwZW5kcyBvbiBf
d29ya2VyX251bWJlcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163155</attachid>
            <date>2012-09-10 09:59:23 -0700</date>
            <delta_ts>2012-10-01 01:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96203-20120910095900.patch</filename>
            <type>text/plain</type>
            <size>9901</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDQ1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmE1ZDVhNWJkYWU3MDQwMDA2ZjdmOGVjNTk3MGQ1NDE5
OThiZDI3MC4uYTc4MWYwN2Y5ZjA4NGNhM2VhMTcyMTBkNzAxNjI2NDEzYTU5NjI2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTA5LTEwICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW1h2ZmJEcml2ZXJdIEZpcnN0IHRlc3RzIGluIGVhY2ggd29ya2VyIG9jY2FzaW9u
YWxseSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdGFydCB0aGUgWHZmYiBwcm9jZXNzIHdpdGggdGhlIC1kaXNwbGF5ZmQgZmxhZyBzZXQgdG8g
Mi4gVGhpcyB3aWxsCisgICAgICAgIGNhdXNlIHRoZSBYdmZiIHRvIGF1dG9tYXRpY2FsbHkgZmlu
ZCBhIGZyZWUgZGlzcGxheSBhbmQgd3JpdGUgdGhhdAorICAgICAgICBkaXNwbGF5IG51bWJlciB0
byBzdGRlcnIuIFRoZSBzdGRlcnIgb3V0cHV0IG9mIHRoZSBwcm9jZXNzIGlzIHJlYWQKKyAgICAg
ICAgdW50aWwgdGhlIGRpc3BsYXkgbnVtYmVyIGNhbiBiZSBzY3JhcGVkIG91dCBvZiBpdC4KKwor
ICAgICAgICBUaGlzIGludHJvZHVjZXMgbXVsdGlwbGUgYmVuZWZpdHMuIFRoZSBkaXNwbGF5cyBh
cmUgbm93IHNlbGVjdGVkCisgICAgICAgIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFh2ZmIgcHJvY2Vz
cywgbWVhbmluZyBubyBvdmVybGFwcGluZyBzaG91bGQKKyAgICAgICAgb2NjdXIuIFdlIHdhaXQg
Zm9yIHRoZSBkaXNwbGF5IG51bWJlciB0byBiZSBwcmludGVkIG91dCBpbnRvIHRoZQorICAgICAg
ICBYdmZiJ3Mgc3RkZXJyIG91dHB1dCAtIHdpdGggdGhpcyBoYWNrIHdlIHJldXNlIHRoZSBzdGRl
cnIgb3V0cHV0CisgICAgICAgIGFuZCBnZXQgcmlkIG9mIGl0IGFmdGVyd2FyZHMgYW5kIGFsc28g
ZW5zdXJlIHdlIHByb2NlZWQgd2l0aCBkcml2ZXIKKyAgICAgICAgc2V0dXAgb25seSBhZnRlciB0
aGUgWHZmYiBwcm9jZXNzIGlzIHByb3Blcmx5IHNldCB1cCBhbmQgcmVhZHksCisgICAgICAgIG1l
YW5pbmcgbm8gbW9yZSBvY2Nhc2lvbmFsIGNyYXNoZXMgc2hvdWxkIG9jY3VyIGluIHRoZSBmZXcg
Zmlyc3QKKyAgICAgICAgdGVzdHMgdGhhdCBhcmUgcnVuIHRocm91Z2ggdGhlIGRyaXZlci4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5w
eToKKyAgICAgICAgKFh2ZmJEcml2ZXIpOgorICAgICAgICAoWHZmYkRyaXZlci5fc3RhcnQpOgor
ICAgICAgICAoWHZmYkRyaXZlci5zdG9wKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChYdmZiRHJp
dmVyVGVzdC50ZXN0X3N0YXJ0KToKKyAgICAgICAgKFh2ZmJEcml2ZXJUZXN0LnRlc3Rfc3RvcCk6
CisKIDIwMTItMDktMTAgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29t
PgogCiAgICAgICAgIEZpeCBidWlsZCBvZiBXVFIgd2l0aCBRdCBvbiBXaW5kb3dzCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIu
cHkKaW5kZXggMjgxYjIxNzNiOWM3Mjg1OTM5ZjA5N2U1ZmI5NGMzZTJkZGExM2Y0My4uMTcxNTBh
YmY3NDY5N2Y4N2NiMjA2Y2E5M2NkOWE4YjJlNWUwNGVjZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQpAQCAtMjgs
NyArMjgsMTAgQEAKIAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcworaW1wb3J0IHJlCitpbXBv
cnQgdGltZQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBF
eGVjdXRpdmUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3Mg
aW1wb3J0IFNlcnZlclByb2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZHJp
dmVyIGltcG9ydCBEcml2ZXIKIApAQCAtMzYsMzEgKzM5LDI1IEBAIF9sb2cgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6Ci0gICAgZGVm
IF9zdGFydChzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6Ci0KLSAgICAgICAgIyBD
b2xsZWN0IHRoZSBudW1iZXIgb2YgWCBzZXJ2ZXJzIHJ1bm5pbmcgYWxyZWFkeSBhbmQgbWFrZQot
ICAgICAgICAjIHN1cmUgb3VyIFh2ZmIgcHJvY2VzcyBkb2Vzbid0IGNsYXNoIHdpdGggYW55IG9m
IHRoZW0uCi0gICAgICAgIGRlZiB4X2ZpbHRlcihwcm9jZXNzX25hbWUpOgotICAgICAgICAgICAg
cmV0dXJuIHByb2Nlc3NfbmFtZS5maW5kKCJYb3JnIikgPiAtMQorICAgIERJU1BMQVlfTlVNQkVS
X1BBVFRFUk4gPSByZS5jb21waWxlKHIiXihcZCspJCIsIHJlLk1VTFRJTElORSkKIAotICAgICAg
ICBydW5uaW5nX2Rpc3BsYXlzID0gbGVuKHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucnVubmlu
Z19waWRzKHhfZmlsdGVyKSkKLQotICAgICAgICAjIFVzZSBldmVuIGRpc3BsYXlzIGZvciBwaXhl
bCB0ZXN0cyBhbmQgb2RkIG9uZXMgb3RoZXJ3aXNlLiBXaGVuIHBpeGVsIHRlc3RzIGFyZSBkaXNh
YmxlZCwKLSAgICAgICAgIyBEcml2ZXJQcm94eSBjcmVhdGVzIHR3byBkcml2ZXJzLCBvbmUgZm9y
IG5vcm1hbCBhbmQgdGhlIG90aGVyIGZvciByZWYgdGVzdHMuIEJvdGggaGF2ZQotICAgICAgICAj
IHRoZSBzYW1lIHdvcmtlciBudW1iZXIsIHNvIHRoaXMgcHJldmVudHMgdGhlbSBmcm9tIHVzaW5n
IHRoZSBzYW1lIFh2ZmIgaW5zdGFuY2UuCi0gICAgICAgIGRpc3BsYXlfaWQgPSBzZWxmLl93b3Jr
ZXJfbnVtYmVyICogMiArIHJ1bm5pbmdfZGlzcGxheXMKLSAgICAgICAgaWYgcGl4ZWxfdGVzdHM6
Ci0gICAgICAgICAgICBkaXNwbGF5X2lkICs9IDEKLSAgICAgICAgc2VsZi5fbG9ja19maWxlID0g
Ii90bXAvLlglZC1sb2NrIiAlIGRpc3BsYXlfaWQKKyAgICBkZWYgX3N0YXJ0KHNlbGYsIHBpeGVs
X3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKKyAgICAgICAgcnVuX3h2ZmIgPSBbIlh2ZmIiLCAiLWRp
c3BsYXlmZCIsICIyIiwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4i
LCAidGNwIl0KKyAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4
ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJyPUV4ZWN1dGl2ZS5QSVBFKQogCi0gICAgICAg
IHJ1bl94dmZiID0gWyJYdmZiIiwgIjolZCIgJSBkaXNwbGF5X2lkLCAiLXNjcmVlbiIsICAiMCIs
ICI4MDB4NjAweDI0IiwgIi1ub2xpc3RlbiIsICJ0Y3AiXQotICAgICAgICB3aXRoIG9wZW4ob3Mu
ZGV2bnVsbCwgJ3cnKSBhcyBkZXZudWxsOgotICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNz
ID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3RkZXJyPWRldm51
bGwpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBzdGRlcnIgPSBzZWxmLl94dmZi
X3Byb2Nlc3Muc3RkZXJyLnJlYWQoKQorICAgICAgICAgICAgbWF0Y2ggPSBzZWxmLkRJU1BMQVlf
TlVNQkVSX1BBVFRFUk4uc2VhcmNoKHN0ZGVycikKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAg
ICAgICAgICAgICAgIGRpc3BsYXlfaWQgPSBtYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgICAg
IGJyZWFrCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCisgICAgICAgIHNlbGYuX3h2ZmJf
cHJvY2Vzcy5zdGRlcnIuY2xvc2UoKQogCiAgICAgICAgIHNlcnZlcl9uYW1lID0gc2VsZi5fcG9y
dC5kcml2ZXJfbmFtZSgpCiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5fcG9ydC5zZXR1cF9l
bnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCiAgICAgICAgICMgV2UgbXVzdCBkbyB0aGlz
IGhlcmUgYmVjYXVzZSB0aGUgRElTUExBWSBudW1iZXIgZGVwZW5kcyBvbiBfd29ya2VyX251bWJl
cgotICAgICAgICBlbnZpcm9ubWVudFsnRElTUExBWSddID0gIjolZCIgJSBkaXNwbGF5X2lkCisg
ICAgICAgIGVudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiIgKyBkaXNwbGF5X2lkCiAKICAgICAg
ICAgc2VsZi5fY3Jhc2hlZF9wcm9jZXNzX25hbWUgPSBOb25lCiAgICAgICAgIHNlbGYuX2NyYXNo
ZWRfcGlkID0gTm9uZQpAQCAtNzIsNSArNjksMyBAQCBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6
CiAgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ194dmZiX3Byb2Nlc3MnLCBOb25lKToKICAgICAg
ICAgICAgIHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYuX3h2ZmJf
cHJvY2Vzcy5waWQpCiAgICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBOb25lCi0gICAg
ICAgICAgICBpZiBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5fbG9ja19m
aWxlKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5yZW1vdmUo
c2VsZi5fbG9ja19maWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IDM3YTJm
YmQ0ZDE5MjY4MGFmZjg1MDM3ZDViZTE1M2ZiODM1ZTZiYTkuLjY2NDA1NTU3YzViNWM1N2EyN2U0
OGFkYmZhN2I5M2I2NjdmNDIyMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkKQEAg
LTI5LDYgKzI5LDcgQEAKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBsb2cKK2Zyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZSwgTW9ja1Byb2Nlc3MK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tG
aWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3Rf
bW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKQEAgLTM5LDUzICs0MCwyNiBAQCBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5wb3J0Lnh2ZmJkcml2ZXIgaW1wb3J0IFh2ZmJEcml2ZXIKIAogCiBj
bGFzcyBYdmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIG1ha2VfZHJp
dmVyKHNlbGYsIHdvcmtlcl9udW1iZXI9MCwgeG9yZ19ydW5uaW5nPUZhbHNlKToKLSAgICAgICAg
cG9ydCA9IFBvcnQoaG9zdD1Nb2NrU3lzdGVtSG9zdChsb2dfZXhlY3V0aXZlPVRydWUpLCBjb25m
aWc9TW9ja0NvbmZpZygpKQorICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYpOgorICAgICAgICBleGVj
dXRpdmUgPSBNb2NrRXhlY3V0aXZlKHNob3VsZF9sb2c9VHJ1ZSkKKyAgICAgICAgZXhlY3V0aXZl
Ll9wcm9jID0gTW9ja1Byb2Nlc3Moc3RkZXJyPSJNT0NLIFNUREVSUiBEQVRBXG40MlxuTU9DS19T
VERFUlJfREFUQVxuIikKKworICAgICAgICBwb3J0ID0gUG9ydChob3N0PU1vY2tTeXN0ZW1Ib3N0
KGV4ZWN1dGl2ZT1leGVjdXRpdmUpLCBjb25maWc9TW9ja0NvbmZpZygpKQogICAgICAgICBwb3J0
Ll9zZXJ2ZXJfcHJvY2Vzc19jb25zdHJ1Y3RvciA9IE1vY2tTZXJ2ZXJQcm9jZXNzCi0gICAgICAg
IGlmIHhvcmdfcnVubmluZzoKLSAgICAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZS5fcnVubmluZ19w
aWRzWydYb3JnJ10gPSAxMDgKIAotICAgICAgICBkcml2ZXIgPSBYdmZiRHJpdmVyKHBvcnQsIHdv
cmtlcl9udW1iZXI9d29ya2VyX251bWJlciwgcGl4ZWxfdGVzdHM9VHJ1ZSkKLSAgICAgICAgcmV0
dXJuIGRyaXZlcgorICAgICAgICBkcml2ZXIgPSBYdmZiRHJpdmVyKHBvcnQsIHdvcmtlcl9udW1i
ZXI9MCwgcGl4ZWxfdGVzdHM9VHJ1ZSkKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sg
cG9wZW46IFsnWHZmYicsICctZGlzcGxheWZkJywgJzInLCAnLXNjcmVlbicsICcwJywgJzgwMHg2
MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCddXG4iCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBkcml2ZXIuc3RhcnQsIFtUcnVlLCBbXV0sIGV4cGVjdGVkX3N0
ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkcml2ZXIuX3Nl
cnZlcl9wcm9jZXNzLnN0YXJ0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLl9z
ZXJ2ZXJfcHJvY2Vzcy5lbnZbIkRJU1BMQVkiXSwgIjo0MiIpCiAKLSAgICBkZWYgY2xlYW51cF9k
cml2ZXIoc2VsZiwgZHJpdmVyKToKICAgICAgICAgIyBTZXR0aW5nIF94dmZiX3Byb2Nlc3MgbWVt
YmVyIHRvIE5vbmUgaXMgbmVjZXNzYXJ5IGFzIHRoZSBEcml2ZXIgb2JqZWN0IGlzIHN0b3BwZWQg
b24gZGVsZXRpb24sCiAgICAgICAgICMga2lsbGluZyB0aGUgWHZmYiBwcm9jZXNzIGlmIHByZXNl
bnQuIFRodXMsIHRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIHRlc3RzIHRo
YXQgZG8gbm90CiAgICAgICAgICMgaW50ZW5kIHRvIHRlc3QgdGhlIGJlaGF2aW9yIG9mIFh2ZmJE
cml2ZXIuc3RvcC4KICAgICAgICAgZHJpdmVyLl94dmZiX3Byb2Nlc3MgPSBOb25lCiAKLSAgICBk
ZWYgYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKHNlbGYsIGRyaXZlciwgZXhwZWN0ZWRfc3Rk
ZXJyLCBleHBlY3RlZF9kaXNwbGF5LCBwaXhlbF90ZXN0cz1GYWxzZSk6Ci0gICAgICAgIE91dHB1
dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBkcml2ZXIuc3RhcnQsIFtwaXhlbF90ZXN0
cywgW11dLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoZHJpdmVyLl9zZXJ2ZXJfcHJvY2Vzcy5zdGFydGVkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGRyaXZlci5fc2VydmVyX3Byb2Nlc3MuZW52WyJESVNQTEFZIl0sIGV4cGVjdGVk
X2Rpc3BsYXkpCi0KLSAgICBkZWYgdGVzdF9zdGFydF9ub19waXhlbF90ZXN0cyhzZWxmKToKLSAg
ICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcigpCi0gICAgICAgIGV4cGVjdGVkX3N0ZGVy
ciA9ICJNT0NLIHJ1bm5pbmdfcGlkczogW11cbk1PQ0sgcG9wZW46IFsnWHZmYicsICc6MCcsICct
c2NyZWVuJywgJzAnLCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4nLCAndGNwJ11cbiIKLSAgICAg
ICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9zdGRl
cnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6MCIpCi0gICAgICAgIHNlbGYu
Y2xlYW51cF9kcml2ZXIoZHJpdmVyKQotCi0gICAgZGVmIHRlc3Rfc3RhcnRfcGl4ZWxfdGVzdHMo
c2VsZik6Ci0gICAgICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQotICAgICAgICBleHBl
Y3RlZF9zdGRlcnIgPSAiTU9DSyBydW5uaW5nX3BpZHM6IFtdXG5NT0NLIHBvcGVuOiBbJ1h2ZmIn
LCAnOjEnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCdd
XG4iCi0gICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhw
ZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjEiLCBwaXhl
bF90ZXN0cz1UcnVlKQotICAgICAgICBzZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKLQotICAg
IGRlZiB0ZXN0X3N0YXJ0X2FyYml0cmFyeV93b3JrZXJfbnVtYmVyKHNlbGYpOgotICAgICAgICBk
cml2ZXIgPSBzZWxmLm1ha2VfZHJpdmVyKHdvcmtlcl9udW1iZXI9MTcpCi0gICAgICAgIGV4cGVj
dGVkX3N0ZGVyciA9ICJNT0NLIHJ1bm5pbmdfcGlkczogW11cbk1PQ0sgcG9wZW46IFsnWHZmYics
ICc6MzUnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCdd
XG4iCi0gICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhw
ZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjM1IiwgcGl4
ZWxfdGVzdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIpCi0KLSAg
ICBkZWYgdGVzdF9zdGFydF9leGlzdGluZ194b3JnX3Byb2Nlc3Moc2VsZik6Ci0gICAgICAgIGRy
aXZlciA9IHNlbGYubWFrZV9kcml2ZXIoeG9yZ19ydW5uaW5nPVRydWUpCi0gICAgICAgIGV4cGVj
dGVkX3N0ZGVyciA9ICJNT0NLIHJ1bm5pbmdfcGlkczogWzEwOF1cbk1PQ0sgcG9wZW46IFsnWHZm
YicsICc6MScsICctc2NyZWVuJywgJzAnLCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4nLCAndGNw
J11cbiIKLSAgICAgICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBl
eHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6MSIpCi0g
ICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVyKQotCiAgICAgZGVmIHRlc3Rfc3RvcChz
ZWxmKToKLSAgICAgICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGZpbGVzPXsnL3RtcC8u
WDQyLWxvY2snOiAnMTIzNFxuJ30pCi0gICAgICAgIHBvcnQgPSBQb3J0KGhvc3Q9TW9ja1N5c3Rl
bUhvc3QobG9nX2V4ZWN1dGl2ZT1UcnVlLCBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0pLCBjb25maWc9
TW9ja0NvbmZpZygpKQorICAgICAgICBwb3J0ID0gUG9ydChob3N0PU1vY2tTeXN0ZW1Ib3N0KGxv
Z19leGVjdXRpdmU9VHJ1ZSksIGNvbmZpZz1Nb2NrQ29uZmlnKCkpCiAgICAgICAgIHBvcnQuX2V4
ZWN1dGl2ZS5raWxsX3Byb2Nlc3MgPSBsYW1iZGEgeDogbG9nKCJNT0NLIGtpbGxfcHJvY2VzcyBw
aWQ6ICIgKyBzdHIoeCkpCiAgICAgICAgIGRyaXZlciA9IFh2ZmJEcml2ZXIocG9ydCwgd29ya2Vy
X251bWJlcj0wLCBwaXhlbF90ZXN0cz1UcnVlKQogCkBAIC05MywxMCArNjcsNyBAQCBjbGFzcyBY
dmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBwaWQgPSAxMjM0
CiAKICAgICAgICAgZHJpdmVyLl94dmZiX3Byb2Nlc3MgPSBGYWtlWHZmYlByb2Nlc3MoKQotICAg
ICAgICBkcml2ZXIuX2xvY2tfZmlsZSA9ICcvdG1wLy5YNDItbG9jaycKIAogICAgICAgICBleHBl
Y3RlZF9zdGRlcnIgPSAiTU9DSyBraWxsX3Byb2Nlc3MgcGlkOiAxMjM0XG4iCiAgICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBkcml2ZXIuc3RvcCwgW10sIGV4cGVj
dGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCi0KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
cml2ZXIuX3h2ZmJfcHJvY2VzcywgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0
Ll9maWxlc3lzdGVtLmV4aXN0cyhkcml2ZXIuX2xvY2tfZmlsZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166425</attachid>
            <date>2012-10-01 01:45:48 -0700</date>
            <delta_ts>2012-10-02 08:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96203-20121001014501.patch</filename>
            <type>text/plain</type>
            <size>4245</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDE1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzNkNmJiNzAwODRkYzQ5YTE0OThjOTE1Y2M0YTFmZjYy
OTVkZjc1MC4uNGExNzFlOWIwYmU0Mzc2YTUxYmQxNTAyYjE4MWViMDYwYmViOTg0YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTEwLTAxICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW1h2ZmJEcml2ZXJdIEZpcnN0IHRlc3RzIGluIGVhY2ggd29ya2VyIG9jY2FzaW9u
YWxseSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiBpbiBkZWJ1ZyBidWlsZHMsIHRoZSBmaXJzdCB0ZXN0cyBpbiBlYWNoIHdvcmtlciBj
cmFzaCBiZWNhdXNlIHRoZXkKKyAgICAgICAgY2FuJ3QgeWV0IG9wZW4gdGhlIFh2ZmIgZGlzcGxh
eSBhc3NpZ25lZCB0byB0aGVtLiBUaGlzIGluZGljYXRlcyBYdmZiIGhhc24ndAorICAgICAgICB5
ZXQgYmVlbiBzZXQgdXAuCisKKyAgICAgICAgVG8gYXZvaWQgdGhpcywgdGhlIGV4ZWN1dGlvbiBz
aG91bGQgaGFsdCBmb3IgYSBzbWFsbCBhbW91bnQgb2YgdGltZSBiZWZvcmUgdGVzdHMKKyAgICAg
ICAgYXJlIHJ1biBzbyB0aGUgWHZmYiBwcm9jZXNzIGhhcyBlbm91Z2ggdGltZSB0byBnZXQgcmVh
ZHkuIEF0IHRoZSBtb21lbnQgdGhpcyBpcworICAgICAgICBkb25lIHJpZ2h0IGFmdGVyIHRoZSBY
dmZiIHByb2Nlc3MgaXMgc3Bhd25lZCBhbmQgdGhlIGV4ZWN1dGlvbiBoYWx0cyBmb3Igb25lCisg
ICAgICAgIHNlY29uZC4KKworICAgICAgICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgbmV3IG1l
dGhvZCB0byB0aGUgYmFzZSBQb3J0IGNsYXNzIHRoYXQgcmV0dXJucyB0aGUgbnVtYmVyCisgICAg
ICAgIG9mIHNlY29uZHMgdGhlIGRyaXZlciBzaG91bGQgZGVsYXkgdGhlIGV4ZWN1dGlvbi4gVGhl
IGRlZmF1bHQgdmFsdWUgaXMgMCBhbmQgdGhlCisgICAgICAgIEd0a1BvcnQgb3ZlcnJpZGVzIHRo
ZSBtZXRob2QgdG8gY3VycmVudGx5IHJldHVybiAxLjAuIEF0IHRoZSBtb21lbnQgb25seSB0aGUg
WHZmYkRyaXZlcgorICAgICAgICBkZWxheXMgdGhlIGV4ZWN1dGlvbiwgaW4gWHZmYkRyaXZlci5f
c3RhcnQuIFdpdGggdGhpcyBhcHByb2FjaCBubyBkZWxheSBvY2N1cnMgd2hlbiBydW5uaW5nCisg
ICAgICAgIHdlYmtpdHB5IHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5kcml2ZXJfc3RhcnR1cF9kZWxh
eV9zZWNzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0
ay5weToKKyAgICAgICAgKEd0a1BvcnQuZHJpdmVyX3N0YXJ0dXBfZGVsYXlfc2Vjcyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5Ogor
ICAgICAgICAoWHZmYkRyaXZlci5fc3RhcnQpOgorCiAyMDEyLTA5LTMwICBUYWlqdSBUc3Vpa2kg
IDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBBZGRpbmcgbXlzZWxm
IGFzIGEgY29tbWl0dGVyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5CmluZGV4IDJhZDk1NzY3ZjAyZmRlYWY4ZjAwNDlkMGYwY2U4NDBlZTUw
MTA0NDIuLjI5MDc5ODUxNDhmNjI4ZmE4Y2QwYWU3NDQxNTUzYTdiMmU0ODU1NDkgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE4
OSw2ICsxODksOSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICMgd29ya2Vycy4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE0NyAuCiAgICAgICAg
IHJldHVybiAwLjEKIAorICAgIGRlZiBkcml2ZXJfc3RhcnR1cF9kZWxheV9zZWNzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gMC4wCisKICAgICBkZWYgYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAg
ICAgIiIiUmV0dXJuIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdG8gc3RvcmUg
bmV3IGJhc2VsaW5lcyBpbiBmb3IgdGhpcyBwb3J0LiIiIgogICAgICAgICAjIEZJWE1FOiByZW1v
dmUgb25jZSBhbGwgY2FsbGVycyBhcmUgY2FsbGluZyBlaXRoZXIgYmFzZWxpbmVfdmVyc2lvbl9k
aXIoKSBvciBiYXNlbGluZV9wbGF0Zm9ybV9kaXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQppbmRleCBmMDJkMTQ4MTkyZGI0Mzc3OWQyNTVh
ZTcwNTJlMDI5YzkzMThlZjUxLi5hOTg4NWVjNjA4YzRhNmQ5YTJiOGE3N2NjMGQxMGEwODhmZmE5
NDM3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0
ay5weQpAQCAtNTYsNiArNTYsOSBAQCBjbGFzcyBHdGtQb3J0KFBvcnQsIFB1bHNlQXVkaW9TYW5p
dGl6ZXIpOgogICAgICAgICAgICAgcmV0dXJuIDEyICogMTAwMAogICAgICAgICByZXR1cm4gNiAq
IDEwMDAKIAorICAgIGRlZiBkcml2ZXJfc3RhcnR1cF9kZWxheV9zZWNzKHNlbGYpOgorICAgICAg
ICByZXR1cm4gMS4wCisKICAgICBkZWYgc2V0dXBfdGVzdF9ydW4oc2VsZik6CiAgICAgICAgIHNl
bGYuX3VubG9hZF9wdWxzZWF1ZGlvX21vZHVsZSgpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQppbmRleCAzZTQyOGMx
NjliYmUwNGVlODYzYzg4ZjJkOGFhNTI5ZjNjZTBkYjUzLi40YmI0NTc3MWZhNjZmMjFkYmVhNDI5
NTBmZWE3MzY0MjFjN2RlNDA0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CkBAIC0yOSw2ICsyOSw3IEBACiBpbXBv
cnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcmUKK2ltcG9ydCB0aW1lCiAKIGZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nl
c3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXIK
QEAgLTY3LDYgKzY4LDEwIEBAIGNsYXNzIFh2ZmJEcml2ZXIoRHJpdmVyKToKICAgICAgICAgd2l0
aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZGV2bnVsbDoKICAgICAgICAgICAgIHNlbGYuX3h2
ZmJfcHJvY2VzcyA9IHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucG9wZW4ocnVuX3h2ZmIsIHN0
ZGVycj1kZXZudWxsKQogCisgICAgICAgICMgQ3Jhc2hlcyBpbnRlbmQgdG8gb2NjdXIgb2NjYXNp
b25hbGx5IGluIHRoZSBmaXJzdCBmZXcgdGVzdHMgdGhhdCBhcmUgcnVuIHRocm91Z2ggZWFjaAor
ICAgICAgICAjIHdvcmtlciBiZWNhdXNlIHRoZSBYdmZiIGRpc3BsYXkgaXNuJ3QgcmVhZHkgeWV0
LiBIYWx0aW5nIGV4ZWN1dGlvbiBhIGJpdCBzaG91bGQgYXZvaWQgdGhhdC4KKyAgICAgICAgdGlt
ZS5zbGVlcChzZWxmLl9wb3J0LmRyaXZlcl9zdGFydHVwX2RlbGF5X3NlY3MoKSkKKwogICAgICAg
ICBzZXJ2ZXJfbmFtZSA9IHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKQogICAgICAgICBlbnZpcm9u
bWVudCA9IHNlbGYuX3BvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQog
ICAgICAgICAjIFdlIG11c3QgZG8gdGhpcyBoZXJlIGJlY2F1c2UgdGhlIERJU1BMQVkgbnVtYmVy
IGRlcGVuZHMgb24gX3dvcmtlcl9udW1iZXIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166693</attachid>
            <date>2012-10-02 08:53:25 -0700</date>
            <delta_ts>2012-10-02 11:52:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96203-20121002085238.patch</filename>
            <type>text/plain</type>
            <size>3379</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEzMDE3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTEwLTAyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5j
b20+CisKKyAgICAgICAgW1h2ZmJEcml2ZXJdIEZpcnN0IHRlc3RzIGluIGVhY2ggd29ya2VyIG9j
Y2FzaW9uYWxseSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTYyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPZnRlbiBpbiBkZWJ1ZyBidWlsZHMsIHRoZSBmaXJzdCB0ZXN0cyBpbiBlYWNoIHdv
cmtlciBjcmFzaCBiZWNhdXNlIHRoZXkKKyAgICAgICAgY2FuJ3QgeWV0IG9wZW4gdGhlIFh2ZmIg
ZGlzcGxheSBhc3NpZ25lZCB0byB0aGVtLiBUaGlzIGluZGljYXRlcyBYdmZiIGhhc24ndAorICAg
ICAgICB5ZXQgYmVlbiBzZXQgdXAuCisKKyAgICAgICAgVG8gYXZvaWQgdGhpcywgdGhlIGV4ZWN1
dGlvbiBzaG91bGQgaGFsdCBmb3IgYSBzbWFsbCBhbW91bnQgb2YgdGltZSBiZWZvcmUgdGVzdHMK
KyAgICAgICAgYXJlIHJ1biBzbyB0aGUgWHZmYiBwcm9jZXNzIGhhcyBlbm91Z2ggdGltZSB0byBn
ZXQgcmVhZHkuIEF0IHRoZSBtb21lbnQgdGhpcyBpcworICAgICAgICBkb25lIHJpZ2h0IGFmdGVy
IHRoZSBYdmZiIHByb2Nlc3MgaXMgc3Bhd25lZCBhbmQgdGhlIGV4ZWN1dGlvbiBoYWx0cyBmb3Ig
b25lCisgICAgICAgIHNlY29uZC4gVGhhdCB2YWx1ZSBpcyBvdmVycmlkZW4gdG8gemVybyB3aGVu
IHRlc3RpbmcgdG8gbm90IHByb2xvbmcgdGhlIHRlc3RpbmcgdGltZS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weToKKyAgICAgICAg
KFh2ZmJEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoWHZmYkRyaXZlci5fc3RhcnQpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlcl91bml0
dGVzdC5weToKKyAgICAgICAgKFh2ZmJEcml2ZXJUZXN0Lm1ha2VfZHJpdmVyKToKKwogMjAxMi0x
MC0wMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtX
SzJdIFJFR1JFU1NJT04ocjEyODYyMyk6IEl0IG1hZGUgbGF5b3V0IHRlc3RzIGV4dHJlbWVseSBz
bG93CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJk
cml2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC94dmZiZHJpdmVyLnB5CShyZXZpc2lvbiAxMzAxNzIpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDcgQEAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCByZQor
aW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5zZXJ2ZXJfcHJv
Y2VzcyBpbXBvcnQgU2VydmVyUHJvY2VzcwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dC5kcml2ZXIgaW1wb3J0IERyaXZlcgpAQCAtNDEsNiArNDIsNyBAQCBjbGFzcyBYdmZiRHJpdmVy
KERyaXZlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAg
ICAgIERyaXZlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYu
X2d1YXJkX2xvY2sgPSBOb25lCisgICAgICAgIHNlbGYuX3N0YXJ0dXBfZGVsYXlfc2VjcyA9IDEu
MAogCiAgICAgZGVmIF9uZXh0X2ZyZWVfZGlzcGxheShzZWxmKToKICAgICAgICAgcnVubmluZ19w
aWRzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3BzJywgJy1lbycs
ICdjb21tLGNvbW1hbmQnXSkKQEAgLTY3LDYgKzY5LDEwIEBAIGNsYXNzIFh2ZmJEcml2ZXIoRHJp
dmVyKToKICAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZGV2bnVsbDoKICAg
ICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2VzcyA9IHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUu
cG9wZW4ocnVuX3h2ZmIsIHN0ZGVycj1kZXZudWxsKQogCisgICAgICAgICMgQ3Jhc2hlcyBpbnRl
bmQgdG8gb2NjdXIgb2NjYXNpb25hbGx5IGluIHRoZSBmaXJzdCBmZXcgdGVzdHMgdGhhdCBhcmUg
cnVuIHRocm91Z2ggZWFjaAorICAgICAgICAjIHdvcmtlciBiZWNhdXNlIHRoZSBYdmZiIGRpc3Bs
YXkgaXNuJ3QgcmVhZHkgeWV0LiBIYWx0aW5nIGV4ZWN1dGlvbiBhIGJpdCBzaG91bGQgYXZvaWQg
dGhhdC4KKyAgICAgICAgdGltZS5zbGVlcChzZWxmLl9zdGFydHVwX2RlbGF5X3NlY3MpCisKICAg
ICAgICAgc2VydmVyX25hbWUgPSBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkKICAgICAgICAgZW52
aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFt
ZSkKICAgICAgICAgIyBXZSBtdXN0IGRvIHRoaXMgaGVyZSBiZWNhdXNlIHRoZSBESVNQTEFZIG51
bWJlciBkZXBlbmRzIG9uIF93b3JrZXJfbnVtYmVyCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3Vu
aXR0ZXN0LnB5CShyZXZpc2lvbiAxMzAxNzIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDYgKzQ3LDcgQEAgY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICAgICAgcG9ydC5fZXhlY3V0aXZlLl9ydW5uaW5nX3BpZHNbJ1hvcmcnXSA9IDEwOAog
CiAgICAgICAgIGRyaXZlciA9IFh2ZmJEcml2ZXIocG9ydCwgd29ya2VyX251bWJlcj13b3JrZXJf
bnVtYmVyLCBwaXhlbF90ZXN0cz1UcnVlKQorICAgICAgICBkcml2ZXIuX3N0YXJ0dXBfZGVsYXlf
c2VjcyA9IDAKICAgICAgICAgcmV0dXJuIGRyaXZlcgogCiAgICAgZGVmIGNsZWFudXBfZHJpdmVy
KHNlbGYsIGRyaXZlcik6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>