<?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>88414</bug_id>
          
          <creation_ts>2012-06-06 07:08:18 -0700</creation_ts>
          <short_desc>[NRWT] XvfbDriver should choose the next free display</short_desc>
          <delta_ts>2013-01-14 23:14:57 -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>NRWT</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89956</dependson>
    
    <dependson>90441</dependson>
    
    <dependson>98346</dependson>
    
    <dependson>103806</dependson>
          <blocked>77730</blocked>
    
    <blocked>89880</blocked>
    
    <blocked>98162</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kristóf Kosztyó">kkristof</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdumez</cc>
    
    <cc>dpranke</cc>
    
    <cc>galpeter</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rgabor</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>642435</commentid>
    <comment_count>0</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-06 07:08:18 -0700</bug_when>
    <thetext>Now the XfvbDriver chose the next display id with these simple way:

running_displays = len(Executive().running_pids(x_filter)) 
display_id = self._worker_number * 2 + running_displays

But if we ran some parallel nrwt&apos;s they could choose an already existing display which can cause problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642444</commentid>
    <comment_count>1</comment_count>
      <attachid>146020</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-06 07:25:24 -0700</bug_when>
    <thetext>Created attachment 146020
WIP patch

We&apos;ve discussed with Ossy that maybe we could copy the method the way xvfb-run scripts choose the next unreserved display. It works locally but I want to do more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643360</commentid>
    <comment_count>2</comment_count>
      <attachid>146020</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-07 02:45:02 -0700</bug_when>
    <thetext>Comment on attachment 146020
WIP patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:62
&gt; -        display_id = self._worker_number * 2 + running_displays
&gt; +        display_id = next_free_id()
&gt; +        print &apos;start new xvfb with %d id&apos; % display_id
&gt;          if pixel_tests:
&gt;              display_id += 1

But what if next_free_id() + 1 isn&apos;t free?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643363</commentid>
    <comment_count>3</comment_count>
      <attachid>146020</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-07 02:49:19 -0700</bug_when>
    <thetext>Comment on attachment 146020
WIP patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:54
&gt; +        def next_free_id():
&gt; +            for i in range(99):
&gt; +                if not os.path.exists(&apos;/tmp/.X%d-lock&apos; % i):
&gt; +                    return i

Hmm ... I think checking /tmp/.X%d-lock isn&apos;t enough ...
On the machine where run 3 buildslave, I have only
these lock files: .X0-lock, .X90-lock .
But there are three xvfb-run.XXXXXX directories
with Xauthority files contain the following numbers: 84, 39, 90.
(These numbers were passed to xvfb-run when we started the bots.)
And there are two sockets in /tmp/.X11-unix dir: X0 and X90.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652161</commentid>
    <comment_count>4</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-19 00:41:08 -0700</bug_when>
    <thetext>Committed r120688: &lt;http://trac.webkit.org/changeset/120688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652162</commentid>
    <comment_count>5</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-19 00:42:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r120688: &lt;http://trac.webkit.org/changeset/120688&gt;

Temporarily we disable the xvfb driver on qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654363</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-06-21 04:07:21 -0700</bug_when>
    <thetext>Is there any progression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654448</commentid>
    <comment_count>7</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-21 06:32:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Is there any progression?

Yes there is.
Now I check the first free xvfb id with the check of the already existing .X#-lock files.
After when I found the first free one I lock this number with the webkitpy&apos;s FileLock. At locally it works fine also when I run more than one NRWT in parallel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654456</commentid>
    <comment_count>8</comment_count>
      <attachid>148786</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-21 06:37:37 -0700</bug_when>
    <thetext>Created attachment 148786
WIP patch

Work in progress patch with the FileLock. I would like to do some tests with it, but if everything go well I will upload the final patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655321</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-06-22 02:25:42 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=148786&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:71
&gt; +        environment[&apos;DUMPRENDERTREE_TEMP&apos;] = str(self._driver_tempdir)

I did a little digging: Where will be this _driver_tempdir be set to something? In the parent class it&apos;ll be set in the _start method, but we override it here. Or am I missing something here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655356</commentid>
    <comment_count>10</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-22 04:27:55 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148786&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:71
&gt; &gt; +        environment[&apos;DUMPRENDERTREE_TEMP&apos;] = str(self._driver_tempdir)
&gt; 
&gt; I did a little digging: Where will be this _driver_tempdir be set to something? In the parent class it&apos;ll be set in the _start method, but we override it here. Or am I missing something here?

You&apos;re right I missed out that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655463</commentid>
    <comment_count>11</comment_count>
      <attachid>149029</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-22 08:00:34 -0700</bug_when>
    <thetext>Created attachment 149029
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655804</commentid>
    <comment_count>12</comment_count>
      <attachid>149029</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-22 14:53:53 -0700</bug_when>
    <thetext>Comment on attachment 149029
proposed fix

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

the patch basically looks fine with a couple nits ... I&apos;ll leave cq? in case you want to change things.

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:53
&gt; +                    _guard_lock_file = self._port._filesystem.join(&apos;/tmp&apos;, &apos;WebKitXvfb.lock.%i&apos; % i)

nit: there&apos;s no reason to use an underscore in front of the name. I&apos;d probably just combine lines 53 and 54 ...

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:58
&gt; +        self.display_id = next_free_id()

should this be self._display_id to indicate that it&apos;s a private variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657375</commentid>
    <comment_count>13</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-26 00:58:20 -0700</bug_when>
    <thetext>Thank you.
I commited this in r121236: &lt;http://trac.webkit.org/changeset/121236&gt; if everything go well on the bots I will close the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657409</commentid>
    <comment_count>14</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-06-26 01:59:06 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Thank you.
&gt; I commited this in r121236: &lt;http://trac.webkit.org/changeset/121236&gt; if everything go well on the bots I will close the bug.

Rollouted in r121239 because it produced two type of error:
* start the xvfb with the same display
* or everything went fine until it starts getting warnings from the file lock and the tests are timed out or crashed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667587</commentid>
    <comment_count>15</comment_count>
      <attachid>149029</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-12 03:29:50 -0700</bug_when>
    <thetext>Comment on attachment 149029
proposed fix

It is obsolete patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702846</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-08-23 03:23:15 -0700</bug_when>
    <thetext>After Balázs&apos;s patch - https://trac.webkit.org/changeset/124581 - NRWT doesn&apos;t run two DRT for non-pixel and pixel tests, so XVFBDriver&apos;s display handling should be refactored with this fix too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702971</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-08-23 07:36:17 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Thank you.
&gt; &gt; I commited this in r121236: &lt;http://trac.webkit.org/changeset/121236&gt; if everything go well on the bots I will close the bug.
&gt; 
&gt; Rollouted in r121239 because it produced two type of error:
&gt; * start the xvfb with the same display
&gt; * or everything went fine until it starts getting warnings from the file lock and the tests are timed out or crashed

I think I got the root of the problem. I saw the following failing webkitpy
test on the Qt buildbot:

  Traceback (most recent call last):
    File &quot;/ramdisk/qt-linux-release/build/Tools/Scripts/webkitpy/common/system/filesystem_unittest.py&quot;, line 220, in test_read_and_write_file
      text_contents = fs.read_text_file(binary_path)
    File &quot;/ramdisk/qt-linux-release/build/Tools/Scripts/webkitpy/common/system/filesystem.py&quot;, line 213, in read_text_file
      with codecs.open(path, &apos;r&apos;, &apos;utf8&apos;) as f:
    File &quot;/usr/lib/python2.6/codecs.py&quot;, line 881, in open
      file = __builtin__.open(filename, mode, buffering)
  IOError: [Errno 2] No such file or directory: &apos;/tmp/tree_unittest_9TdIXB&apos;

[283/1600] webkitpy.common.system.file_lock_integrationtest.FileLockTest.test_lock_lifecycle passed

-------------------------------------

It seems something is wrong with the FileLock class and it 
caused that NRWT started two driver on same display. Could
you check it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707198</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-29 00:59:23 -0700</bug_when>
    <thetext>Instead of checking for the X locks in /tmp directory, how about listing all the current Xorg and Xvfb processes, parsing their commands to get the displays they are using and then using the first free display for the new Xvfb instance? Perhaps -nolock could be passed to new Xvfb processes as well to avoid Xvfb-spawned lock files, but I think using a FileLock to denote that Xvfb (spawned by NRWT) is using a specific display  is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720749</commentid>
    <comment_count>19</comment_count>
      <attachid>164148</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-09-14 07:29:24 -0700</bug_when>
    <thetext>Created attachment 164148
draft patch

Now I check the next free display by the running processes. It seems more stable than the xvfb&apos;s lock files based approach. If this approach is good I will rewrite some unittest to fit this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725309</commentid>
    <comment_count>20</comment_count>
      <attachid>165091</attachid>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-09-21 02:29:11 -0700</bug_when>
    <thetext>Created attachment 165091
proposed fix

It is process based choose of the next free display as the draft patch was but it contains unit tests :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730618</commentid>
    <comment_count>21</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2012-09-28 06:57:54 -0700</bug_when>
    <thetext>Committed r129891: &lt;http://trac.webkit.org/changeset/129891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736578</commentid>
    <comment_count>22</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-08 01:56:32 -0700</bug_when>
    <thetext>Do you guys have any idea why this keeps failing every once in a while?

See, for example, &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6866/steps/webkitpy-test/logs/stdio&gt;:

[1580/1585] webkitpy.layout_tests.port.xvfbdriver_unittest.XvfbDriverTest.test_next_free_display failed:
  Traceback (most recent call last):
    File &quot;/home/buildslave-1/webkit-buildslave/efl-linux-64-debug/build/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py&quot;, line 86, in test_next_free_display
      self.assertEqual(driver._next_free_display(), 2)
  AssertionError: 3 != 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736581</commentid>
    <comment_count>23</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-08 02:04:22 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Do you guys have any idea why this keeps failing every once in a while?
&gt; 
&gt; See, for example, &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6866/steps/webkitpy-test/logs/stdio&gt;:
&gt; 
&gt; [1580/1585] webkitpy.layout_tests.port.xvfbdriver_unittest.XvfbDriverTest.test_next_free_display failed:
&gt;   Traceback (most recent call last):
&gt;     File &quot;/home/buildslave-1/webkit-buildslave/efl-linux-64-debug/build/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py&quot;, line 86, in test_next_free_display
&gt;       self.assertEqual(driver._next_free_display(), 2)
&gt;   AssertionError: 3 != 2

Set the bug #98346 to be blocking this one.

As for the failure, it&apos;s strange. I&apos;m pretty sure that if somehow there are any Xvfb processes left running after the NRWT is done, it still shouldn&apos;t affect this unit test as the mock executive is used. As much as I tried, though, I couldn&apos;t reproduce even one such failure locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738082</commentid>
    <comment_count>24</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-09 12:39:05 -0700</bug_when>
    <thetext>Reopening so the work can continue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773804</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-22 03:38:46 -0800</bug_when>
    <thetext>As far as I know, xvfbdriver works fine, only the unit test is flakey
because of stucked xvfbs. Am I right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773869</commentid>
    <comment_count>26</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-22 05:40:59 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; As far as I know, xvfbdriver works fine, only the unit test is flakey
&gt; because of stucked xvfbs. Am I right?

As far as I can tell, that&apos;s the case.

I think the main problem with the flaky unit tests is that the running Xvfb instances somehow affect them even though they shouldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780171</commentid>
    <comment_count>27</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-30 09:31:53 -0800</bug_when>
    <thetext>Yup, I can reproduce this problem by running NRWT and test-webkitpy in parallel. I&apos;ll try to come up with a patch, but probably in another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807022</commentid>
    <comment_count>28</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-14 23:14:57 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Yup, I can reproduce this problem by running NRWT and test-webkitpy in parallel. I&apos;ll try to come up with a patch, but probably in another bug.

Handled in bug #103806, landed in r136314.
http://trac.webkit.org/changeset/136314

Closing the bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146020</attachid>
            <date>2012-06-06 07:25:24 -0700</date>
            <delta_ts>2012-06-21 06:37:37 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>work.diff</filename>
            <type>text/plain</type>
            <size>1161</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weQppbmRleCBjZmNiNWExLi4zMjU1NzEwIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CkBAIC00OCwx
MCArNDgsMTYgQEAgY2xhc3MgWHZmYkRyaXZlcihXZWJLaXREcml2ZXIpOgogCiAgICAgICAgIHJ1
bm5pbmdfZGlzcGxheXMgPSBsZW4oRXhlY3V0aXZlKCkucnVubmluZ19waWRzKHhfZmlsdGVyKSkK
IAorICAgICAgICBkZWYgbmV4dF9mcmVlX2lkKCk6CisgICAgICAgICAgICBmb3IgaSBpbiByYW5n
ZSg5OSk6CisgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCcvdG1wLy5YJWQt
bG9jaycgJSBpKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkKKwogICAgICAgICAjIFVz
ZSBldmVuIGRpc3BsYXlzIGZvciBwaXhlbCB0ZXN0cyBhbmQgb2RkIG9uZXMgb3RoZXJ3aXNlLiBX
aGVuIHBpeGVsIHRlc3RzIGFyZSBkaXNhYmxlZCwKICAgICAgICAgIyBEcml2ZXJQcm94eSBjcmVh
dGVzIHR3byBkcml2ZXJzLCBvbmUgZm9yIG5vcm1hbCBhbmQgdGhlIG90aGVyIGZvciByZWYgdGVz
dHMuIEJvdGggaGF2ZQogICAgICAgICAjIHRoZSBzYW1lIHdvcmtlciBudW1iZXIsIHNvIHRoaXMg
cHJldmVudHMgdGhlbSBmcm9tIHVzaW5nIHRoZSBzYW1lIFh2ZmIgaW5zdGFuY2UuCi0gICAgICAg
IGRpc3BsYXlfaWQgPSBzZWxmLl93b3JrZXJfbnVtYmVyICogMiArIHJ1bm5pbmdfZGlzcGxheXMK
KyAgICAgICAgZGlzcGxheV9pZCA9IG5leHRfZnJlZV9pZCgpCisgICAgICAgIHByaW50ICdzdGFy
dCBuZXcgeHZmYiB3aXRoICVkIGlkJyAlIGRpc3BsYXlfaWQKICAgICAgICAgaWYgcGl4ZWxfdGVz
dHM6CiAgICAgICAgICAgICBkaXNwbGF5X2lkICs9IDEKICAgICAgICAgcnVuX3h2ZmIgPSBbIlh2
ZmIiLCAiOiVkIiAlIChkaXNwbGF5X2lkKSwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgyNCIs
ICItbm9saXN0ZW4iLCAidGNwIl0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148786</attachid>
            <date>2012-06-21 06:37:37 -0700</date>
            <delta_ts>2012-06-22 08:00:34 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>xvfbdriver.patch</filename>
            <type>text/plain</type>
            <size>4237</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CmluZGV4
IDI0ODg5MzYuLjUyMDU3NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvcXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9xdC5weQpAQCAtODEsNiArODEsOSBAQCBjbGFzcyBRdFBvcnQoV2ViS2l0UG9y
dCk6CiAgICAgICAgICMgVGhlIFF0IHBvcnQgYnVpbGRzIERSVCBhcyBwYXJ0IG9mIHRoZSBtYWlu
IGJ1aWxkIHN0ZXAKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBfZHJpdmVyX2NsYXNz
KHNlbGYpOgorICAgICAgICByZXR1cm4gWHZmYkRyaXZlcgorCiAgICAgZGVmIF9wYXRoX3RvX2Ry
aXZlcihzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2Jpbi8lcycgJSBz
ZWxmLmRyaXZlcl9uYW1lKCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQppbmRleCBjZmNiNWExLi44OWZiMzA2IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJk
cml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94
dmZiZHJpdmVyLnB5CkBAIC0zNCwzOSArMzQsNTAgQEAgaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclBy
b2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJL
aXREcml2ZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4
ZWN1dGl2ZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVfbG9jayBpbXBvcnQgRmls
ZUxvY2sKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxl
U3lzdGVtCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBY
dmZiRHJpdmVyKFdlYktpdERyaXZlcik6Ci0gICAgZGVmIF9zdGFydChzZWxmLCBwaXhlbF90ZXN0
cywgcGVyX3Rlc3RfYXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIFdlYktpdERyaXZlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3Mp
CisgICAgICAgIHNlbGYuX2d1YXJkX2xvY2tfZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fZ3Vh
cmRfbG9jayA9IE5vbmUKIAotICAgICAgICAjIENvbGxlY3QgdGhlIG51bWJlciBvZiBYIHNlcnZl
cnMgcnVubmluZyBhbHJlYWR5IGFuZCBtYWtlCi0gICAgICAgICMgc3VyZSBvdXIgWHZmYiBwcm9j
ZXNzIGRvZXNuJ3QgY2xhc2ggd2l0aCBhbnkgb2YgdGhlbS4KLSAgICAgICAgZGVmIHhfZmlsdGVy
KHByb2Nlc3NfbmFtZSk6Ci0gICAgICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1lLmZpbmQoIlhv
cmciKSA+IC0xCisgICAgZGVmIF9zdGFydChzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJn
cyk6CiAKLSAgICAgICAgcnVubmluZ19kaXNwbGF5cyA9IGxlbihFeGVjdXRpdmUoKS5ydW5uaW5n
X3BpZHMoeF9maWx0ZXIpKQorICAgICAgICBkZWYgbmV4dF9mcmVlX2lkKCk6CisgICAgICAgICAg
ICBmb3IgaSBpbiByYW5nZSg5OSk6CisgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKCcvdG1wLy5YJWQtbG9jaycgJSBpKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ3Vh
cmRfbG9ja19maWxlID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5qb2luKCcvdG1wJywgJ1dlYmtp
dFh2ZmIubG9jay4laScgJSBpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9ndWFyZF9sb2Nr
ID0gRmlsZUxvY2soc2VsZi5fZ3VhcmRfbG9ja19maWxlKQorICAgICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9ndWFyZF9sb2NrLmFjcXVpcmVfbG9jaygpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGkKIAotICAgICAgICAjIFVzZSBldmVuIGRpc3BsYXlzIGZvciBwaXhlbCB0ZXN0
cyBhbmQgb2RkIG9uZXMgb3RoZXJ3aXNlLiBXaGVuIHBpeGVsIHRlc3RzIGFyZSBkaXNhYmxlZCwK
LSAgICAgICAgIyBEcml2ZXJQcm94eSBjcmVhdGVzIHR3byBkcml2ZXJzLCBvbmUgZm9yIG5vcm1h
bCBhbmQgdGhlIG90aGVyIGZvciByZWYgdGVzdHMuIEJvdGggaGF2ZQotICAgICAgICAjIHRoZSBz
YW1lIHdvcmtlciBudW1iZXIsIHNvIHRoaXMgcHJldmVudHMgdGhlbSBmcm9tIHVzaW5nIHRoZSBz
YW1lIFh2ZmIgaW5zdGFuY2UuCi0gICAgICAgIGRpc3BsYXlfaWQgPSBzZWxmLl93b3JrZXJfbnVt
YmVyICogMiArIHJ1bm5pbmdfZGlzcGxheXMKLSAgICAgICAgaWYgcGl4ZWxfdGVzdHM6Ci0gICAg
ICAgICAgICBkaXNwbGF5X2lkICs9IDEKLSAgICAgICAgcnVuX3h2ZmIgPSBbIlh2ZmIiLCAiOiVk
IiAlIChkaXNwbGF5X2lkKSwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0
ZW4iLCAidGNwIl0KKyAgICAgICAgc2VsZi5kaXNwbGF5X2lkID0gbmV4dF9mcmVlX2lkKCkKKyAg
ICAgICAgX2xvZy5kZWJ1ZygnU3RhcnQgbmV3IHh2ZmIgd2l0aCAlZCBpZCBmb3Igd29ya2VyJWQn
ICUgKHNlbGYuZGlzcGxheV9pZCwgc2VsZi5fd29ya2VyX251bWJlcikpCisgICAgICAgIHJ1bl94
dmZiID0gWyJYdmZiIiwgIjolZCIgJSAoc2VsZi5kaXNwbGF5X2lkKSwgIi1zY3JlZW4iLCAgIjAi
LCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4iLCAidGNwIl0KICAgICAgICAgd2l0aCBvcGVuKG9z
LmRldm51bGwsICd3JykgYXMgZGV2bnVsbDoKICAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vz
cyA9IHN1YnByb2Nlc3MuUG9wZW4ocnVuX3h2ZmIsIHN0ZGVycj1kZXZudWxsKQogICAgICAgICBz
ZXJ2ZXJfbmFtZSA9IHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKQogICAgICAgICBlbnZpcm9ubWVu
dCA9IHNlbGYuX3BvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQogICAg
ICAgICAjIFdlIG11c3QgZG8gdGhpcyBoZXJlIGJlY2F1c2UgdGhlIERJU1BMQVkgbnVtYmVyIGRl
cGVuZHMgb24gX3dvcmtlcl9udW1iZXIKLSAgICAgICAgZW52aXJvbm1lbnRbJ0RJU1BMQVknXSA9
ICI6JWQiICUgKGRpc3BsYXlfaWQpCisgICAgICAgIGVudmlyb25tZW50WydESVNQTEFZJ10gPSAi
OiVkIiAlIChzZWxmLmRpc3BsYXlfaWQpCisgICAgICAgIGVudmlyb25tZW50WydEWUxEX0xJQlJB
UllfUEFUSCddID0gc2VsZi5fcG9ydC5fYnVpbGRfcGF0aCgpCisgICAgICAgIGVudmlyb25tZW50
WydEWUxEX0ZSQU1FV09SS19QQVRIJ10gPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKKyAgICAg
ICAgIyBGSVhNRTogV2UncmUgYXNzdW1pbmcgdGhhdCBXZWJLaXRUZXN0UnVubmVyIGNoZWNrcyB0
aGlzIER1bXBSZW5kZXJUcmVlLW5hbWVkIGVudmlyb25tZW50IHZhcmlhYmxlLgorICAgICAgICBl
bnZpcm9ubWVudFsnRFVNUFJFTkRFUlRSRUVfVEVNUCddID0gc3RyKHNlbGYuX2RyaXZlcl90ZW1w
ZGlyKQorICAgICAgICBlbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9PVCddID0gc2VsZi5f
cG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkKICAgICAgICAgc2VsZi5fY3Jhc2hlZF9wcm9jZXNzX25h
bWUgPSBOb25lCiAgICAgICAgIHNlbGYuX2NyYXNoZWRfcGlkID0gTm9uZQogICAgICAgICBzZWxm
Ll9zZXJ2ZXJfcHJvY2VzcyA9IFNlcnZlclByb2Nlc3Moc2VsZi5fcG9ydCwgc2VydmVyX25hbWUs
IHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpLCBlbnZpcm9ubWVudCkK
IAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBXZWJLaXREcml2ZXIuc3RvcChzZWxmKQor
ICAgICAgICBpZiBzZWxmLl9ndWFyZF9sb2NrOgorICAgICAgICAgICAgc2VsZi5fZ3VhcmRfbG9j
ay5yZWxlYXNlX2xvY2soKQogICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfeHZmYl9wcm9jZXNz
JywgTm9uZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5feHZmYl9w
cm9jZXNzLnRlcm1pbmF0ZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149029</attachid>
            <date>2012-06-22 08:00:34 -0700</date>
            <delta_ts>2012-07-12 03:29:49 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>xvfbdriver.patch</filename>
            <type>text/plain</type>
            <size>5108</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMjUw
OGQ2Li41ZjI4YjJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDYtMjIgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtOUldUXSBYdmZiRHJpdmVyIHNo
b3VsZCBjaG9vc2UgdGhlIG5leHQgZnJlZSBkaXNwbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODQxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9xdC5weToKKyAgICAgICAgKFF0UG9ydC5fZHJpdmVyX2NsYXNzKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHk6CisgICAgICAg
IChYdmZiRHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3N0YXJ0KToKKyAg
ICAgICAgKFh2ZmJEcml2ZXIuX3N0YXJ0Lm5leHRfZnJlZV9pZCk6CisgICAgICAgIChYdmZiRHJp
dmVyLnN0b3ApOgorCiAyMDEyLTA2LTIyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4gVW5za2lwcGluZyB0
ZXN0IHBhc3NpbmcgYWZ0ZXIgZml4aW5nIGJ1ZyA4ODQxOS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CmluZGV4IDI0ODg5MzYuLjUyMDU3NTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQpAQCAt
ODEsNiArODEsOSBAQCBjbGFzcyBRdFBvcnQoV2ViS2l0UG9ydCk6CiAgICAgICAgICMgVGhlIFF0
IHBvcnQgYnVpbGRzIERSVCBhcyBwYXJ0IG9mIHRoZSBtYWluIGJ1aWxkIHN0ZXAKICAgICAgICAg
cmV0dXJuIFRydWUKIAorICAgIGRlZiBfZHJpdmVyX2NsYXNzKHNlbGYpOgorICAgICAgICByZXR1
cm4gWHZmYkRyaXZlcgorCiAgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKICAgICAgICAg
cmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2Jpbi8lcycgJSBzZWxmLmRyaXZlcl9uYW1lKCkpCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weQppbmRleCBjZmNiNWExLi45MDdiZWYwIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CkBAIC0zNCwz
OSArMzQsNTEgQEAgaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXIKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQorZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVfbG9jayBpbXBvcnQgRmlsZUxvY2sKK2Zyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiAKIF9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBYdmZiRHJpdmVyKFdlYktpdERyaXZl
cik6Ci0gICAgZGVmIF9zdGFydChzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIFdlYktpdERy
aXZlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuX2d1YXJk
X2xvY2sgPSBOb25lCiAKLSAgICAgICAgIyBDb2xsZWN0IHRoZSBudW1iZXIgb2YgWCBzZXJ2ZXJz
IHJ1bm5pbmcgYWxyZWFkeSBhbmQgbWFrZQotICAgICAgICAjIHN1cmUgb3VyIFh2ZmIgcHJvY2Vz
cyBkb2Vzbid0IGNsYXNoIHdpdGggYW55IG9mIHRoZW0uCi0gICAgICAgIGRlZiB4X2ZpbHRlcihw
cm9jZXNzX25hbWUpOgotICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NfbmFtZS5maW5kKCJYb3Jn
IikgPiAtMQorICAgIGRlZiBfc3RhcnQoc2VsZiwgcGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3Mp
OgogCi0gICAgICAgIHJ1bm5pbmdfZGlzcGxheXMgPSBsZW4oRXhlY3V0aXZlKCkucnVubmluZ19w
aWRzKHhfZmlsdGVyKSkKKyAgICAgICAgZGVmIG5leHRfZnJlZV9pZCgpOgorICAgICAgICAgICAg
Zm9yIGkgaW4gcmFuZ2UoOTkpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cygnL3RtcC8uWCVkLWxvY2snICUgaSk6CisgICAgICAgICAgICAgICAgICAgIF9ndWFyZF9sb2Nr
X2ZpbGUgPSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLmpvaW4oJy90bXAnLCAnV2ViS2l0WHZmYi5s
b2NrLiVpJyAlIGkpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2d1YXJkX2xvY2sgPSBGaWxl
TG9jayhfZ3VhcmRfbG9ja19maWxlKQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9ndWFy
ZF9sb2NrLmFjcXVpcmVfbG9jaygpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkK
IAotICAgICAgICAjIFVzZSBldmVuIGRpc3BsYXlzIGZvciBwaXhlbCB0ZXN0cyBhbmQgb2RkIG9u
ZXMgb3RoZXJ3aXNlLiBXaGVuIHBpeGVsIHRlc3RzIGFyZSBkaXNhYmxlZCwKLSAgICAgICAgIyBE
cml2ZXJQcm94eSBjcmVhdGVzIHR3byBkcml2ZXJzLCBvbmUgZm9yIG5vcm1hbCBhbmQgdGhlIG90
aGVyIGZvciByZWYgdGVzdHMuIEJvdGggaGF2ZQotICAgICAgICAjIHRoZSBzYW1lIHdvcmtlciBu
dW1iZXIsIHNvIHRoaXMgcHJldmVudHMgdGhlbSBmcm9tIHVzaW5nIHRoZSBzYW1lIFh2ZmIgaW5z
dGFuY2UuCi0gICAgICAgIGRpc3BsYXlfaWQgPSBzZWxmLl93b3JrZXJfbnVtYmVyICogMiArIHJ1
bm5pbmdfZGlzcGxheXMKLSAgICAgICAgaWYgcGl4ZWxfdGVzdHM6Ci0gICAgICAgICAgICBkaXNw
bGF5X2lkICs9IDEKLSAgICAgICAgcnVuX3h2ZmIgPSBbIlh2ZmIiLCAiOiVkIiAlIChkaXNwbGF5
X2lkKSwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgyNCIsICItbm9saXN0ZW4iLCAidGNwIl0K
KyAgICAgICAgc2VsZi5kaXNwbGF5X2lkID0gbmV4dF9mcmVlX2lkKCkKKyAgICAgICAgX2xvZy5k
ZWJ1ZygnU3RhcnQgbmV3IHh2ZmIgd2l0aCBpZCAlZCBmb3Igd29ya2VyLyVkJyAlIChzZWxmLmRp
c3BsYXlfaWQsIHNlbGYuX3dvcmtlcl9udW1iZXIpKQorICAgICAgICBydW5feHZmYiA9IFsiWHZm
YiIsICI6JWQiICUgKHNlbGYuZGlzcGxheV9pZCksICItc2NyZWVuIiwgICIwIiwgIjgwMHg2MDB4
MjQiLCAiLW5vbGlzdGVuIiwgInRjcCJdCiAgICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAn
dycpIGFzIGRldm51bGw6CiAgICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBzdWJwcm9j
ZXNzLlBvcGVuKHJ1bl94dmZiLCBzdGRlcnI9ZGV2bnVsbCkKKyAgICAgICAgc2VsZi5fZHJpdmVy
X3RlbXBkaXIgPSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLm1rZHRlbXAocHJlZml4PSclcy0nICUg
c2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgpKQogICAgICAgICBzZXJ2ZXJfbmFtZSA9IHNlbGYuX3Bv
cnQuZHJpdmVyX25hbWUoKQogICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3BvcnQuc2V0dXBf
ZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQogICAgICAgICAjIFdlIG11c3QgZG8gdGhp
cyBoZXJlIGJlY2F1c2UgdGhlIERJU1BMQVkgbnVtYmVyIGRlcGVuZHMgb24gX3dvcmtlcl9udW1i
ZXIKLSAgICAgICAgZW52aXJvbm1lbnRbJ0RJU1BMQVknXSA9ICI6JWQiICUgKGRpc3BsYXlfaWQp
CisgICAgICAgIGVudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiVkIiAlIChzZWxmLmRpc3BsYXlf
aWQpCisgICAgICAgIGVudmlyb25tZW50WydEWUxEX0xJQlJBUllfUEFUSCddID0gc2VsZi5fcG9y
dC5fYnVpbGRfcGF0aCgpCisgICAgICAgIGVudmlyb25tZW50WydEWUxEX0ZSQU1FV09SS19QQVRI
J10gPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKKyAgICAgICAgIyBGSVhNRTogV2UncmUgYXNz
dW1pbmcgdGhhdCBXZWJLaXRUZXN0UnVubmVyIGNoZWNrcyB0aGlzIER1bXBSZW5kZXJUcmVlLW5h
bWVkIGVudmlyb25tZW50IHZhcmlhYmxlLgorICAgICAgICBlbnZpcm9ubWVudFsnRFVNUFJFTkRF
UlRSRUVfVEVNUCddID0gc3RyKHNlbGYuX2RyaXZlcl90ZW1wZGlyKQorICAgICAgICBlbnZpcm9u
bWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9PVCddID0gc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGly
KCkKICAgICAgICAgc2VsZi5fY3Jhc2hlZF9wcm9jZXNzX25hbWUgPSBOb25lCiAgICAgICAgIHNl
bGYuX2NyYXNoZWRfcGlkID0gTm9uZQogICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2VzcyA9IFNl
cnZlclByb2Nlc3Moc2VsZi5fcG9ydCwgc2VydmVyX25hbWUsIHNlbGYuY21kX2xpbmUocGl4ZWxf
dGVzdHMsIHBlcl90ZXN0X2FyZ3MpLCBlbnZpcm9ubWVudCkKIAogICAgIGRlZiBzdG9wKHNlbGYp
OgogICAgICAgICBXZWJLaXREcml2ZXIuc3RvcChzZWxmKQorICAgICAgICBpZiBzZWxmLl9ndWFy
ZF9sb2NrOgorICAgICAgICAgICAgc2VsZi5fZ3VhcmRfbG9jay5yZWxlYXNlX2xvY2soKQorICAg
ICAgICAgICAgc2VsZi5fZ3VhcmRfbG9jayA9IE5vbmUKICAgICAgICAgaWYgZ2V0YXR0cihzZWxm
LCAnX3h2ZmJfcHJvY2VzcycsIE5vbmUpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
ICAgIHNlbGYuX3h2ZmJfcHJvY2Vzcy50ZXJtaW5hdGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164148</attachid>
            <date>2012-09-14 07:29:24 -0700</date>
            <delta_ts>2012-09-21 02:29:11 -0700</delta_ts>
            <desc>draft patch</desc>
            <filename>xvfbdriver.patch</filename>
            <type>text/plain</type>
            <size>2706</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZm
YmRyaXZlci5weQppbmRleCAyODFiMjE3Li5lZTdiZTBkIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CkBAIC0yOCwy
NyArMjgsMzkgQEAKIAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcworaW1wb3J0IHJlCiAKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZl
clByb2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZHJpdmVyIGltcG9ydCBE
cml2ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlX2xvY2sgaW1wb3J0IEZpbGVM
b2NrCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBYdmZi
RHJpdmVyKERyaXZlcik6Ci0gICAgZGVmIF9zdGFydChzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rl
c3RfYXJncyk6Ci0KLSAgICAgICAgIyBDb2xsZWN0IHRoZSBudW1iZXIgb2YgWCBzZXJ2ZXJzIHJ1
bm5pbmcgYWxyZWFkeSBhbmQgbWFrZQotICAgICAgICAjIHN1cmUgb3VyIFh2ZmIgcHJvY2VzcyBk
b2Vzbid0IGNsYXNoIHdpdGggYW55IG9mIHRoZW0uCi0gICAgICAgIGRlZiB4X2ZpbHRlcihwcm9j
ZXNzX25hbWUpOgotICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NfbmFtZS5maW5kKCJYb3JnIikg
PiAtMQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBE
cml2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLl9ndWFy
ZF9sb2NrID0gTm9uZQogCi0gICAgICAgIHJ1bm5pbmdfZGlzcGxheXMgPSBsZW4oc2VsZi5fcG9y
dC5ob3N0LmV4ZWN1dGl2ZS5ydW5uaW5nX3BpZHMoeF9maWx0ZXIpKQorICAgIGRlZiBfbmV4dF9m
cmVlX2lkKHNlbGYpOgorICAgICAgICBydW5uaW5nX3BpZHMgPSBzZWxmLl9wb3J0Lmhvc3QuZXhl
Y3V0aXZlLnJ1bl9jb21tYW5kKFsncHMnLCAnLWVvJywgJ2NvbW0sY29tbWFuZCddKQorICAgICAg
ICByZXNlcnZlZF9zY3JlZW5zID1zZXQoKQorICAgICAgICBmb3IgcGlkIGluIHJ1bm5pbmdfcGlk
cy5zcGxpdCgnXG4nKToKKyAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2goJyhYdmZifFhvcmcp
Lio6KD9QPHNjcmVlbl9udW1iZXI+XGQrKScsIHBpZCkKKyAgICAgICAgICAgIGlmIG1hdGNoOgor
ICAgICAgICAgICAgICAgIHJlc2VydmVkX3NjcmVlbnMuYWRkKGludChtYXRjaC5ncm91cCgnc2Ny
ZWVuX251bWJlcicpKSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoOTkpOgorICAgICAgICAgICAg
aWYgaSBub3QgaW4gcmVzZXJ2ZWRfc2NyZWVuczoKKyAgICAgICAgICAgICAgICBfZ3VhcmRfbG9j
a19maWxlID0gc2VsZi5fcG9ydC5ob3N0LmZpbGVzeXN0ZW0uam9pbignL3RtcCcsICdXZWJLaXRY
dmZiLmxvY2suJWknICUgaSkKKyAgICAgICAgICAgICAgICBzZWxmLl9ndWFyZF9sb2NrID0gRmls
ZUxvY2soX2d1YXJkX2xvY2tfZmlsZSkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9ndWFyZF9s
b2NrLmFjcXVpcmVfbG9jaygpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaQogCisgICAg
ZGVmIF9zdGFydChzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgICMg
VXNlIGV2ZW4gZGlzcGxheXMgZm9yIHBpeGVsIHRlc3RzIGFuZCBvZGQgb25lcyBvdGhlcndpc2Uu
IFdoZW4gcGl4ZWwgdGVzdHMgYXJlIGRpc2FibGVkLAogICAgICAgICAjIERyaXZlclByb3h5IGNy
ZWF0ZXMgdHdvIGRyaXZlcnMsIG9uZSBmb3Igbm9ybWFsIGFuZCB0aGUgb3RoZXIgZm9yIHJlZiB0
ZXN0cy4gQm90aCBoYXZlCiAgICAgICAgICMgdGhlIHNhbWUgd29ya2VyIG51bWJlciwgc28gdGhp
cyBwcmV2ZW50cyB0aGVtIGZyb20gdXNpbmcgdGhlIHNhbWUgWHZmYiBpbnN0YW5jZS4KLSAgICAg
ICAgZGlzcGxheV9pZCA9IHNlbGYuX3dvcmtlcl9udW1iZXIgKiAyICsgcnVubmluZ19kaXNwbGF5
cworICAgICAgICBkaXNwbGF5X2lkID0gc2VsZi5fbmV4dF9mcmVlX2lkKCkKICAgICAgICAgaWYg
cGl4ZWxfdGVzdHM6CiAgICAgICAgICAgICBkaXNwbGF5X2lkICs9IDEKICAgICAgICAgc2VsZi5f
bG9ja19maWxlID0gIi90bXAvLlglZC1sb2NrIiAlIGRpc3BsYXlfaWQKQEAgLTY5LDYgKzgxLDkg
QEAgY2xhc3MgWHZmYkRyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAg
ICAgIHN1cGVyKFh2ZmJEcml2ZXIsIHNlbGYpLnN0b3AoKQorICAgICAgICBpZiBzZWxmLl9ndWFy
ZF9sb2NrOgorICAgICAgICAgICAgc2VsZi5fZ3VhcmRfbG9jay5yZWxlYXNlX2xvY2soKQorICAg
ICAgICAgICAgc2VsZi5fZ3VhcmRfbG9jayA9IE5vbmUKICAgICAgICAgaWYgZ2V0YXR0cihzZWxm
LCAnX3h2ZmJfcHJvY2VzcycsIE5vbmUpOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5ob3N0LmV4
ZWN1dGl2ZS5raWxsX3Byb2Nlc3Moc2VsZi5feHZmYl9wcm9jZXNzLnBpZCkKICAgICAgICAgICAg
IHNlbGYuX3h2ZmJfcHJvY2VzcyA9IE5vbmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165091</attachid>
            <date>2012-09-21 02:29:11 -0700</date>
            <delta_ts>2012-11-22 03:38:00 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>xvfb.patch</filename>
            <type>text/plain</type>
            <size>9621</size>
            <attacher name="Kristóf Kosztyó">kkristof</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjY5
YzE1Li5kMjRiM2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDktMjEgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtOUldUXSBYdmZiRHJpdmVyIHNo
b3VsZCBjaG9vc2UgdGhlIG5leHQgZnJlZSBkaXNwbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODQxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGhvdyB0aGUgWHZmYkRyaXZlciBj
aG9vc2UgdGhlIG5leHQgZGlzcGxheS4gQmVmb3JlCisgICAgICAgIHRoaXMgdGhlIGNob29zaW5n
IGFyZSBiYXNlZCBvbiB0aGUgd29ya2VyIG51bWJlciBidXQgaXQgY2F1c2VkCisgICAgICAgIGVy
cm9ycyB3aGVuIHNldmVyYWwgbnJ3dCBydW4gb24gdGhlIHNhbWUgdGltZS4gVGhpcyBhZGQgcHJv
Y2VzcworICAgICAgICBiYXNlZCBmcmVlIGRpcGxheSBzZWFyY2guCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHk6CisgICAgICAgIChY
dmZiRHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX25leHRfZnJlZV9kaXNw
bGF5KToKKyAgICAgICAgKFh2ZmJEcml2ZXIuX3N0YXJ0KToKKyAgICAgICAgKFh2ZmJEcml2ZXIu
c3RvcCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZi
ZHJpdmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoWHZmYkRyaXZlclRlc3QubWFrZV9kcml2ZXIp
OgorICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF9zdGFydF9ub19waXhlbF90ZXN0cyk6Cisg
ICAgICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3N0YXJ0X3BpeGVsX3Rlc3RzKToKKyAgICAgICAg
KFh2ZmJEcml2ZXJUZXN0LnRlc3Rfc3RhcnRfYXJiaXRyYXJ5X3dvcmtlcl9udW1iZXIpOgorICAg
ICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF9uZXh0X2ZyZWVfZGlzcGxheSk6CisgICAgICAgIChY
dmZiRHJpdmVyVGVzdCk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3N0YXJ0X25leHRf
d29ya2VyKToKKwogMjAxMi0wOS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBDb21tZW50IG91dCBhIGZhaWxpbmcgd2Via2l0cHkgdW5pdCB0ZXN0
IHVudGlsIERpcmsgY2FuIGZpeCBpdC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQppbmRleCA3ZTM4NmExLi4zZTQyOGMx
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2
ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC94dmZiZHJpdmVyLnB5CkBAIC0yOCwyOSArMjgsMzkgQEAKIAogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCBvcworaW1wb3J0IHJlCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2Vy
dmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5maWxlX2xvY2sgaW1wb3J0IEZpbGVMb2NrCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKIAogCiBjbGFzcyBYdmZiRHJpdmVyKERyaXZlcik6Ci0gICAgZGVmIF9zdGFydChz
ZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6Ci0KLSAgICAgICAgIyBDb2xsZWN0IHRo
ZSBudW1iZXIgb2YgWCBzZXJ2ZXJzIHJ1bm5pbmcgYWxyZWFkeSBhbmQgbWFrZQotICAgICAgICAj
IHN1cmUgb3VyIFh2ZmIgcHJvY2VzcyBkb2Vzbid0IGNsYXNoIHdpdGggYW55IG9mIHRoZW0uCi0g
ICAgICAgIGRlZiB4X2ZpbHRlcihwcm9jZXNzX25hbWUpOgotICAgICAgICAgICAgcmV0dXJuIHBy
b2Nlc3NfbmFtZS5maW5kKCJYb3JnIikgPiAtMQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBEcml2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKQorICAgICAgICBzZWxmLl9ndWFyZF9sb2NrID0gTm9uZQogCi0gICAgICAgIHJ1bm5pbmdf
ZGlzcGxheXMgPSBsZW4oc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5ydW5uaW5nX3BpZHMoeF9m
aWx0ZXIpKQorICAgIGRlZiBfbmV4dF9mcmVlX2Rpc3BsYXkoc2VsZik6CisgICAgICAgIHJ1bm5p
bmdfcGlkcyA9IHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucnVuX2NvbW1hbmQoWydwcycsICct
ZW8nLCAnY29tbSxjb21tYW5kJ10pCisgICAgICAgIHJlc2VydmVkX3NjcmVlbnMgPSBzZXQoKQor
ICAgICAgICBmb3IgcGlkIGluIHJ1bm5pbmdfcGlkcy5zcGxpdCgnXG4nKToKKyAgICAgICAgICAg
IG1hdGNoID0gcmUubWF0Y2goJyhYdmZifFhvcmcpLipcczooP1A8c2NyZWVuX251bWJlcj5cZCsp
JywgcGlkKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgcmVzZXJ2ZWRf
c2NyZWVucy5hZGQoaW50KG1hdGNoLmdyb3VwKCdzY3JlZW5fbnVtYmVyJykpKQorICAgICAgICBm
b3IgaSBpbiByYW5nZSg5OSk6CisgICAgICAgICAgICBpZiBpIG5vdCBpbiByZXNlcnZlZF9zY3Jl
ZW5zOgorICAgICAgICAgICAgICAgIF9ndWFyZF9sb2NrX2ZpbGUgPSBzZWxmLl9wb3J0Lmhvc3Qu
ZmlsZXN5c3RlbS5qb2luKCcvdG1wJywgJ1dlYktpdFh2ZmIubG9jay4laScgJSBpKQorICAgICAg
ICAgICAgICAgIHNlbGYuX2d1YXJkX2xvY2sgPSBGaWxlTG9jayhfZ3VhcmRfbG9ja19maWxlKQor
ICAgICAgICAgICAgICAgIGlmIHNlbGYuX2d1YXJkX2xvY2suYWNxdWlyZV9sb2NrKCk6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBpCiAKKyAgICBkZWYgX3N0YXJ0KHNlbGYsIHBpeGVsX3Rl
c3RzLCBwZXJfdGVzdF9hcmdzKToKICAgICAgICAgIyBVc2UgZXZlbiBkaXNwbGF5cyBmb3IgcGl4
ZWwgdGVzdHMgYW5kIG9kZCBvbmVzIG90aGVyd2lzZS4gV2hlbiBwaXhlbCB0ZXN0cyBhcmUgZGlz
YWJsZWQsCiAgICAgICAgICMgRHJpdmVyUHJveHkgY3JlYXRlcyB0d28gZHJpdmVycywgb25lIGZv
ciBub3JtYWwgYW5kIHRoZSBvdGhlciBmb3IgcmVmIHRlc3RzLiBCb3RoIGhhdmUKICAgICAgICAg
IyB0aGUgc2FtZSB3b3JrZXIgbnVtYmVyLCBzbyB0aGlzIHByZXZlbnRzIHRoZW0gZnJvbSB1c2lu
ZyB0aGUgc2FtZSBYdmZiIGluc3RhbmNlLgotICAgICAgICBkaXNwbGF5X2lkID0gc2VsZi5fd29y
a2VyX251bWJlciAqIDIgKyBydW5uaW5nX2Rpc3BsYXlzCi0gICAgICAgIGlmIHBpeGVsX3Rlc3Rz
OgotICAgICAgICAgICAgZGlzcGxheV9pZCArPSAxCisgICAgICAgIGRpc3BsYXlfaWQgPSBzZWxm
Ll9uZXh0X2ZyZWVfZGlzcGxheSgpCiAgICAgICAgIHNlbGYuX2xvY2tfZmlsZSA9ICIvdG1wLy5Y
JWQtbG9jayIgJSBkaXNwbGF5X2lkCiAKICAgICAgICAgcnVuX3h2ZmIgPSBbIlh2ZmIiLCAiOiVk
IiAlIGRpc3BsYXlfaWQsICItc2NyZWVuIiwgICIwIiwgIjgwMHg2MDB4MjQiLCAiLW5vbGlzdGVu
IiwgInRjcCJdCkBAIC03MSw2ICs4MSw5IEBAIGNsYXNzIFh2ZmJEcml2ZXIoRHJpdmVyKToKIAog
ICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBzdXBlcihYdmZiRHJpdmVyLCBzZWxmKS5zdG9w
KCkKKyAgICAgICAgaWYgc2VsZi5fZ3VhcmRfbG9jazoKKyAgICAgICAgICAgIHNlbGYuX2d1YXJk
X2xvY2sucmVsZWFzZV9sb2NrKCkKKyAgICAgICAgICAgIHNlbGYuX2d1YXJkX2xvY2sgPSBOb25l
CiAgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ194dmZiX3Byb2Nlc3MnLCBOb25lKToKICAgICAg
ICAgICAgIHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYuX3h2ZmJf
cHJvY2Vzcy5waWQpCiAgICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBOb25lCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2
ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkKaW5kZXggMzdhMmZiZC4uMDFlMzVkMCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
eHZmYmRyaXZlcl91bml0dGVzdC5weQpAQCAtMzAsNiArMzAsNyBAQCBpbXBvcnQgdW5pdHRlc3QK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQg
bG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBN
b2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2Nr
IGltcG9ydCBNb2NrRXhlY3V0aXZlMgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1
dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy5wb3J0IGltcG9ydCBQb3J0CkBAIC0zOSw4ICs0MCw4IEBAIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgogCiAKIGNs
YXNzIFh2ZmJEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgbWFrZV9kcml2
ZXIoc2VsZiwgd29ya2VyX251bWJlcj0wLCB4b3JnX3J1bm5pbmc9RmFsc2UpOgotICAgICAgICBw
b3J0ID0gUG9ydChob3N0PU1vY2tTeXN0ZW1Ib3N0KGxvZ19leGVjdXRpdmU9VHJ1ZSksIGNvbmZp
Zz1Nb2NrQ29uZmlnKCkpCisgICAgZGVmIG1ha2VfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXI9
MCwgeG9yZ19ydW5uaW5nPUZhbHNlLCBleGVjdXRpdmU9Tm9uZSk6CisgICAgICAgIHBvcnQgPSBQ
b3J0KGhvc3Q9TW9ja1N5c3RlbUhvc3QobG9nX2V4ZWN1dGl2ZT1UcnVlLCBleGVjdXRpdmU9ZXhl
Y3V0aXZlKSwgY29uZmlnPU1vY2tDb25maWcoKSkKICAgICAgICAgcG9ydC5fc2VydmVyX3Byb2Nl
c3NfY29uc3RydWN0b3IgPSBNb2NrU2VydmVyUHJvY2VzcwogICAgICAgICBpZiB4b3JnX3J1bm5p
bmc6CiAgICAgICAgICAgICBwb3J0Ll9leGVjdXRpdmUuX3J1bm5pbmdfcGlkc1snWG9yZyddID0g
MTA4CkBAIC02MSwyNiArNjIsNDkgQEAgY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgZGVmIHRlc3Rfc3RhcnRfbm9fcGl4ZWxfdGVzdHMoc2VsZik6CiAgICAg
ICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQotICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiTU9DSyBydW5uaW5nX3BpZHM6IFtdXG5NT0NLIHBvcGVuOiBbJ1h2ZmInLCAnOjAnLCAnLXNj
cmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCddXG4iCisgICAgICAg
IGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ3BzJywgJy1lbycsICdjb21t
LGNvbW1hbmQnXSwgY3dkPU5vbmVcbk1PQ0sgcG9wZW46IFsnWHZmYicsICc6MCcsICctc2NyZWVu
JywgJzAnLCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4nLCAndGNwJ11cbiIKICAgICAgICAgc2Vs
Zi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9zdGRlcnI9ZXhw
ZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6MCIpCiAgICAgICAgIHNlbGYuY2xlYW51
cF9kcml2ZXIoZHJpdmVyKQogCiAgICAgZGVmIHRlc3Rfc3RhcnRfcGl4ZWxfdGVzdHMoc2VsZik6
CiAgICAgICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQotICAgICAgICBleHBlY3RlZF9z
dGRlcnIgPSAiTU9DSyBydW5uaW5nX3BpZHM6IFtdXG5NT0NLIHBvcGVuOiBbJ1h2ZmInLCAnOjEn
LCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCddXG4iCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhwZWN0ZWRf
c3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjEiLCBwaXhlbF90ZXN0
cz1UcnVlKQorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydw
cycsICctZW8nLCAnY29tbSxjb21tYW5kJ10sIGN3ZD1Ob25lXG5NT0NLIHBvcGVuOiBbJ1h2ZmIn
LCAnOjAnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCdd
XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhw
ZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjAiLCBwaXhl
bF90ZXN0cz1UcnVlKQogICAgICAgICBzZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKIAogICAg
IGRlZiB0ZXN0X3N0YXJ0X2FyYml0cmFyeV93b3JrZXJfbnVtYmVyKHNlbGYpOgogICAgICAgICBk
cml2ZXIgPSBzZWxmLm1ha2VfZHJpdmVyKHdvcmtlcl9udW1iZXI9MTcpCi0gICAgICAgIGV4cGVj
dGVkX3N0ZGVyciA9ICJNT0NLIHJ1bm5pbmdfcGlkczogW11cbk1PQ0sgcG9wZW46IFsnWHZmYics
ICc6MzUnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCdd
XG4iCi0gICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhw
ZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjM1IiwgcGl4
ZWxfdGVzdHM9VHJ1ZSkKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1h
bmQ6IFsncHMnLCAnLWVvJywgJ2NvbW0sY29tbWFuZCddLCBjd2Q9Tm9uZVxuTU9DSyBwb3Blbjog
WydYdmZiJywgJzowJywgJy1zY3JlZW4nLCAnMCcsICc4MDB4NjAweDI0JywgJy1ub2xpc3Rlbics
ICd0Y3AnXVxuIgorICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChkcml2
ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2Rpc3BsYXk9Ijow
IiwgcGl4ZWxfdGVzdHM9VHJ1ZSkKICAgICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIp
CiAKLSAgICBkZWYgdGVzdF9zdGFydF9leGlzdGluZ194b3JnX3Byb2Nlc3Moc2VsZik6Ci0gICAg
ICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoeG9yZ19ydW5uaW5nPVRydWUpCi0gICAgICAg
IGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bm5pbmdfcGlkczogWzEwOF1cbk1PQ0sgcG9wZW46
IFsnWHZmYicsICc6MScsICctc2NyZWVuJywgJzAnLCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4n
LCAndGNwJ11cbiIKLSAgICAgICAgc2VsZi5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJp
dmVyLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6
MSIpCisgICAgZGVmIHRlc3RfbmV4dF9mcmVlX2Rpc3BsYXkoc2VsZik6CisgICAgICAgIG91dHB1
dCA9ICJYb3JnICAgICAgICAgICAgL3Vzci9iaW4vWCA6MCAtYXV0aCAvdmFyL3J1bi9saWdodGRt
L3Jvb3QvOjAgLW5vbGlzdGVuIHRjcCB2dDcgLW5vdnRzd2l0Y2ggLWJhY2tncm91bmQgbm9uZVxu
WHZmYiAgICAgICAgICAgIFh2ZmIgOjEgLXNjcmVlbiAwIDgwMHg2MDB4MjQgLW5vbGlzdGVuIHRj
cCIKKyAgICAgICAgZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIob3V0cHV0KQorICAgICAgICBk
cml2ZXIgPSBzZWxmLm1ha2VfZHJpdmVyKGV4ZWN1dGl2ZT1leGVjdXRpdmUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZHJpdmVyLl9uZXh0X2ZyZWVfZGlzcGxheSgpLCAyKQorICAgICAgICBz
ZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKKyAgICAgICAgb3V0cHV0ID0gIlh2ZmIgICAgICAg
ICAgICBYdmZiIDowIC1zY3JlZW4gMCA4MDB4NjAweDI0IC1ub2xpc3RlbiB0Y3AiCisgICAgICAg
IGV4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKG91dHB1dCkKKyAgICAgICAgZHJpdmVyID0gc2Vs
Zi5tYWtlX2RyaXZlcihleGVjdXRpdmU9ZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGRyaXZlci5fbmV4dF9mcmVlX2Rpc3BsYXkoKSwgMSkKKyAgICAgICAgc2VsZi5jbGVhbnVw
X2RyaXZlcihkcml2ZXIpCisgICAgICAgIG91dHB1dCA9ICJYdmZiICAgICAgICAgICAgWHZmYiA6
MSAtc2NyZWVuIDAgODAweDYwMHgyNCAtbm9saXN0ZW4gdGNwXG5YdmZiICAgICAgICAgICAgWHZm
YiA6MCAtc2NyZWVuIDAgODAweDYwMHgyNCAtbm9saXN0ZW4gdGNwXG5YdmZiICAgICAgICAgICAg
WHZmYiA6MyAtc2NyZWVuIDAgODAweDYwMHgyNCAtbm9saXN0ZW4gdGNwIgorICAgICAgICBleGVj
dXRpdmUgPSBNb2NrRXhlY3V0aXZlMihvdXRwdXQpCisgICAgICAgIGRyaXZlciA9IHNlbGYubWFr
ZV9kcml2ZXIoZXhlY3V0aXZlPWV4ZWN1dGl2ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
cml2ZXIuX25leHRfZnJlZV9kaXNwbGF5KCksIDIpCisgICAgICAgIHNlbGYuY2xlYW51cF9kcml2
ZXIoZHJpdmVyKQorCisgICAgZGVmIHRlc3Rfc3RhcnRfbmV4dF93b3JrZXIoc2VsZik6CisgICAg
ICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQorICAgICAgICBkcml2ZXIuX25leHRfZnJl
ZV9kaXNwbGF5ID0gbGFtYmRhOiAwCisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHBv
cGVuOiBbJ1h2ZmInLCAnOjAnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlz
dGVuJywgJ3RjcCddXG4iCisgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVs
KGRyaXZlciwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxh
eT0iOjAiLCBwaXhlbF90ZXN0cz1UcnVlKQorICAgICAgICBzZWxmLmNsZWFudXBfZHJpdmVyKGRy
aXZlcikKKyAgICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcigpCisgICAgICAgIGRyaXZl
ci5fbmV4dF9mcmVlX2Rpc3BsYXkgPSBsYW1iZGE6IDMKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJy
ID0gIk1PQ0sgcG9wZW46IFsnWHZmYicsICc6MycsICctc2NyZWVuJywgJzAnLCAnODAweDYwMHgy
NCcsICctbm9saXN0ZW4nLCAndGNwJ11cbiIKKyAgICAgICAgc2VsZi5hc3NlcnREcml2ZXJTdGFy
dFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBl
Y3RlZF9kaXNwbGF5PSI6MyIsIHBpeGVsX3Rlc3RzPVRydWUpCiAgICAgICAgIHNlbGYuY2xlYW51
cF9kcml2ZXIoZHJpdmVyKQogCiAgICAgZGVmIHRlc3Rfc3RvcChzZWxmKToK
</data>

          </attachment>
      

    </bug>

</bugzilla>