<?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>58708</bug_id>
          
          <creation_ts>2011-04-15 16:26:27 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: read stderr from chromium DRT separately</short_desc>
          <delta_ts>2012-05-08 14:41:08 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>58771</dependson>
          <blocked>37739</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>387011</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 16:26:27 -0700</bug_when>
    <thetext>new-run-webkit-tests: read stderr from chromium DRT separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387018</commentid>
    <comment_count>1</comment_count>
      <attachid>89875</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 16:32:11 -0700</bug_when>
    <thetext>Created attachment 89875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387024</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 16:33:36 -0700</bug_when>
    <thetext>easily the least portable python I&apos;ve ever written, but it seems to work ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387025</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 16:34:33 -0700</bug_when>
    <thetext>on unix, it might be better to just mark the socket as non-blocking and do a select(), but the patch is posted for the record :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387039</commentid>
    <comment_count>4</comment_count>
      <attachid>89880</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 16:59:06 -0700</bug_when>
    <thetext>Created attachment 89880
use non-blocking sockets on unix instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387055</commentid>
    <comment_count>5</comment_count>
      <attachid>89880</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-04-15 17:06:58 -0700</bug_when>
    <thetext>Comment on attachment 89880
use non-blocking sockets on unix instead

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

Looks fine to me. Can&apos;t say I really understand what _read_stderr is doing. Maybe tony or someone with my python experience can comment. I don&apos;t think we need to block getting this on on that though.

The only issue, I&apos;m pretty sure some tests currently have stderr output in their expected results, so you&apos;ll probably need to rebaseline them with this patch.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:578
&gt; +    def _read_stderr(self):
&gt; +        if sys.platform in (&apos;win32&apos;, &apos;cygwin&apos;):
&gt; +            import msvcrt
&gt; +            import win32pipe
&gt; +
&gt; +            fd = self._proc.stderr.fileno()
&gt; +            osf = msvcrt.get_osfhandle(fd)
&gt; +            _, avail, _ = win32pipe.PeekNamedPipe(osf, 0)
&gt; +            if avail:
&gt; +                return self._proc.stderr.read(avail)
&gt; +            return &apos;&apos;
&gt; +        else:
&gt; +            if not self._stderr_is_nonblocking:
&gt; +                import fcntl
&gt; +                import os
&gt; +                fd = self._proc.stderr.fileno()
&gt; +                fl = fcntl.fcntl(fd, fcntl.F_GETFL)
&gt; +                fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
&gt; +                self._stderr_is_nonblocking = True
&gt; +            return self._proc.stderr.read()

this doesn&apos;t seem chromium specific. don&apos;t other ports need this code as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387057</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 17:10:33 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 89880 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89880&amp;action=review
&gt; 
&gt; Looks fine to me. Can&apos;t say I really understand what _read_stderr is doing. Maybe tony or someone with my python experience can comment. I don&apos;t think we need to block getting this on on that though.
&gt; 
&gt; The only issue, I&apos;m pretty sure some tests currently have stderr output in their expected results, so you&apos;ll probably need to rebaseline them with this patch.
&gt; 

Yeah, that wouldn&apos;t surprise me.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:578
&gt; &gt; +    def _read_stderr(self):
&gt; &gt; +        if sys.platform in (&apos;win32&apos;, &apos;cygwin&apos;):
&gt; &gt; +            import msvcrt
&gt; &gt; +            import win32pipe
&gt; &gt; +
&gt; &gt; +            fd = self._proc.stderr.fileno()
&gt; &gt; +            osf = msvcrt.get_osfhandle(fd)
&gt; &gt; +            _, avail, _ = win32pipe.PeekNamedPipe(osf, 0)
&gt; &gt; +            if avail:
&gt; &gt; +                return self._proc.stderr.read(avail)
&gt; &gt; +            return &apos;&apos;
&gt; &gt; +        else:
&gt; &gt; +            if not self._stderr_is_nonblocking:
&gt; &gt; +                import fcntl
&gt; &gt; +                import os
&gt; &gt; +                fd = self._proc.stderr.fileno()
&gt; &gt; +                fl = fcntl.fcntl(fd, fcntl.F_GETFL)
&gt; &gt; +                fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
&gt; &gt; +                self._stderr_is_nonblocking = True
&gt; &gt; +            return self._proc.stderr.read()
&gt; 
&gt; this doesn&apos;t seem chromium specific. don&apos;t other ports need this code as well?

All of the other ports use the server_process.py code (via port/webkit.py) which uses select and non-blocking reads. As a result we don&apos;t have any other ports that will actually work correctly on windows (see bug 38756). As a part of that, we&apos;ll likely need to re-use this code there as well in some form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387058</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-15 17:11:24 -0700</bug_when>
    <thetext>This will probably allow us to figure out whether or not to fix bug 37426, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387421</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 14:48:12 -0700</bug_when>
    <thetext>Committed r84111: &lt;http://trac.webkit.org/changeset/84111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387437</commentid>
    <comment_count>9</comment_count>
      <attachid>89880</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-17 15:42:55 -0700</bug_when>
    <thetext>Comment on attachment 89880
use non-blocking sockets on unix instead

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:562
&gt; +            import msvcrt
&gt; +            import win32pipe

Do both of these exist in cygwin python?  I thought cygwin python could import fcntl so maybe it can go through the other code path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455730</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 15:05:20 -0700</bug_when>
    <thetext>This got reverted in http://trac.webkit.org/changeset/84128 but the bug wasn&apos;t reopened.  I think this is (at least part of) the problem with https://bugs.webkit.org/show_bug.cgi?id=66806</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455731</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 15:05:47 -0700</bug_when>
    <thetext>Reopening, patch was reverted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618822</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-08 14:41:08 -0700</bug_when>
    <thetext>closing, this is fixed w/ r115490 and r115903.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89875</attachid>
            <date>2011-04-15 16:32:11 -0700</date>
            <delta_ts>2011-04-15 16:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58708-20110415163210.patch</filename>
            <type>text/plain</type>
            <size>6319</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4OTUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNWNlYjlmOTNiNWIxMjNiNmViYTkxZmE3NDQzYWU5NDU2
NmFjYTE3Li4yODllOTFiM2JmODkzZmQwMjlmYWVlZDBjOGI5Mjg1MjcyYTRkZWJjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTcg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXct
cnVuLXdlYmtpdC10ZXN0czogcmVhZCBzdGRlcnIgZnJvbSBjaHJvbWl1bSBEUlQgc2VwYXJhdGVs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg3MDgK
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21vY2tfZHJ0LnB5OgorCisyMDExLTA0LTE1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBzYXZlIHN0ZGVyciBpbnRvIHRoZSBsYXlvdXQtdGVz
dC1yZXN1bHRzIGRpcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTg2OTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggZWIxMGE5YmQxNGQ4OGMzYTE2YTVmYTgzMTg0OTNm
Y2IwMjAyMGI5My4uNDg2MGEzYjVmOTgzMzQ5MTY3ODQ2ZmE1Yjg3ZWY2YzliYmI4YTRiYSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CkBAIC00MDMsNyArNDAzLDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2
ZXIpOgogICAgICAgICBjbG9zZV9mbGFnID0gc3lzLnBsYXRmb3JtIG5vdCBpbiAoJ3dpbjMyJywg
J2N5Z3dpbicpCiAgICAgICAgIHNlbGYuX3Byb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rk
aW49c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1jbG9zZV9mbGFnKQogCiAgICAgZGVmIHBv
bGwoc2VsZik6CkBAIC01MTUsNyArNTE1LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5E
cml2ZXIpOgogICAgICAgICAgICAgZWxpZiBhY3R1YWxfdXJpOgogICAgICAgICAgICAgICAgIG91
dHB1dC5hcHBlbmQobGluZSkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXJy
b3IuYXBwZW5kKGxpbmUpCisgICAgICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCdleHRyYSBzdGRv
dXQgb3V0cHV0OiAlcycgJSBsaW5lKQogCiAgICAgICAgICAgICAobGluZSwgY3Jhc2gpID0gc2Vs
Zi5fd3JpdGVfY29tbWFuZF9hbmRfcmVhZF9saW5lKGlucHV0PU5vbmUpCiAKQEAgLTUyNiw5ICs1
MjYsMTAgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICB0ZXh0
ID0gJycuam9pbihvdXRwdXQpCiAgICAgICAgIGlmIG5vdCB0ZXh0OgogICAgICAgICAgICAgdGV4
dCA9IE5vbmUKKyAgICAgICAgZXJyb3JfdGV4dCA9ICcnLmpvaW4oZXJyb3IpICsgc2VsZi5fcmVh
ZF9zdGRlcnIoKQogCiAgICAgICAgIHJldHVybiBiYXNlLkRyaXZlck91dHB1dCh0ZXh0LCBvdXRw
dXRfaW1hZ2UsIGFjdHVhbF9jaGVja3N1bSwgYXVkaW89Tm9uZSwKLSAgICAgICAgICAgIGNyYXNo
PWNyYXNoLCB0ZXN0X3RpbWU9cnVuX3RpbWUsIHRpbWVvdXQ9dGltZW91dCwgZXJyb3I9Jycuam9p
bihlcnJvcikpCisgICAgICAgICAgICBjcmFzaD1jcmFzaCwgdGVzdF90aW1lPXJ1bl90aW1lLCB0
aW1lb3V0PXRpbWVvdXQsIGVycm9yPWVycm9yX3RleHQpCiAKICAgICBkZWYgc3RvcChzZWxmKToK
ICAgICAgICAgaWYgc2VsZi5fcHJvYzoKQEAgLTU1MiwzICs1NTMsMzQgQEAgY2xhc3MgQ2hyb21p
dW1Ecml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICAgICAgaWYgc2VsZi5fcHJvYy5wb2xsKCkg
aXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0KCkKICAgICAgICAg
ICAgIHNlbGYuX3Byb2MgPSBOb25lCisKKyAgICBkZWYgX3JlYWRfc3RkZXJyKHNlbGYpOgorICAg
ICAgICBmZCA9IHNlbGYuX3Byb2Muc3RkZXJyLmZpbGVubygpCisgICAgICAgIGlmIHN5cy5wbGF0
Zm9ybSBpbiAoJ3dpbjMyJywgJ2N5Z3dpbicpOgorICAgICAgICAgICAgaW1wb3J0IG1zdmNydAor
ICAgICAgICAgICAgaW1wb3J0IHdpbjMycGlwZQorICAgICAgICAgICAgb3NmID0gbXN2Y3J0Lmdl
dF9vc2ZoYW5kbGUoZmQpCisgICAgICAgICAgICBfLCBhdmFpbCwgXyA9IHdpbjMycGlwZS5QZWVr
TmFtZWRQaXBlKG9zZiwgMCkKKyAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gaW4gKCdkYXJ3aW4n
LCAnbGludXgyJyk6CisgICAgICAgICAgICBpbXBvcnQgZmNudGwKKyAgICAgICAgICAgIGltcG9y
dCBzZWxlY3QKKyAgICAgICAgICAgIGltcG9ydCBzdHJ1Y3QKKworICAgICAgICAgICAgIyBUaGVz
ZSBtYWdpYyBudW1iZXJzIGFyZSBkZXRlcm1pbmVkIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBD
IHNuaXBwZXQ6CisgICAgICAgICAgICAjICAgI2luY2x1ZGUgPHN0ZGlvLmg+CisgICAgICAgICAg
ICAjICAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorICAgICAgICAgICAgIyAgIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndikgeworICAgICAgICAgICAgIyAgICAgIHByaW50ZigiRklPTlJF
QUQgPSAlbGRcbiIsIEZJT05SRUFEKTsKKyAgICAgICAgICAgICMgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgICMgICB9CisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6
CisgICAgICAgICAgICAgICAgRklPTlJFQUQgPSAxMDc0MDMwMjA3CisgICAgICAgICAgICBlbGlm
IHN5cy5wbGF0Zm9ybSA9PSAnbGludXgyJzoKKyAgICAgICAgICAgICAgICBGSU9OUkVBRCA9IDIx
NTMxCisgICAgICAgICAgICBhdmFpbCA9IHN0cnVjdC51bnBhY2soJ2knLCBmY250bC5pb2N0bChm
ZCwgRklPTlJFQUQsICcgICAgJykpWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgICAgICBpZiBhdmFpbDoKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9wcm9jLnN0ZGVyci5yZWFkKGF2YWlsKQorICAgICAgICByZXR1cm4gJycK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDAyNjBkZmZkN2ZiNTEwZWFjMDU4YTAwZDU1
OTcyZDQ2OTExNTMxZmUuLjRkZTdhMDc1MGQwZTlkNGFlNzZkOGY5NTZlMGQwMTE5NmY3OGNiOTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBv
cnQgU3RyaW5nSU8KIApAQCAtNDEsNiArNDIsOCBAQCBpbXBvcnQgY2hyb21pdW1fbGludXgKIGlt
cG9ydCBjaHJvbWl1bV9tYWMKIGltcG9ydCBjaHJvbWl1bV93aW4KIAorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgYmFzZQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydCBpbXBvcnQgZmFjdG9yeQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBv
cnQgcG9ydF90ZXN0Y2FzZQogCiAKQEAgLTIyMCw2ICsyMjMsMjIgQEAgTElOVVggV0lOIDogZmFz
dC9qcy92ZXJ5LWdvb2QuanMgPSBUSU1FT1VUIFBBU1MiIiIKICAgICAgICAgICAgIGV4Y2VwdGlv
bl9yYWlzZWQgPSBUcnVlCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXhjZXB0aW9uX3JhaXNl
ZCkKIAorICAgICMgRGlzYWJsZWQgYmVjYXVzZSB0aGlzIGlzIGFuIGludGVncmF0aW9uIHRlc3Qg
dGhhdCByZWxpZXMgb24gdGhlCisgICAgIyBhY3R1YWwgZmlsZXN5c3RlbS4KKyAgICBkZWYgZGlz
YWJsZWRfdGVzdF9zdGRlcnIoc2VsZik6CisgICAgICAgIHBvcnQgPSBmYWN0b3J5LmdldCgnbW9j
ay1jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnKQorICAgICAgICBwYXRoID0gcG9ydC5hYnNwYXRo
X2Zvcl90ZXN0KCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUocG9ydC5fZmlsZXN5c3RlbS5leGlzdHMocGF0aCkpCisKKyAgICAgICAgZHJp
dmVyID0gcG9ydC5jcmVhdGVfZHJpdmVyKDEpCisgICAgICAgIGRyaXZlci5zdGFydCgpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGRyaXZlcl9pbnB1dCA9IGJhc2UuRHJpdmVySW5wdXQocGF0
aCwgMTAwMCwgTm9uZSkKKyAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQgPSBkcml2ZXIucnVuX3Rl
c3QoZHJpdmVyX2lucHV0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZHJpdmVyX291
dHB1dC5lcnJvciwgJ3N0dWZmIGdvaW5nIHRvIHN0ZGVyclxuJykKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIGRyaXZlci5zdG9wKCkKKwogCiBjbGFzcyBDaHJvbWl1bVBvcnRMb2dnaW5n
VGVzdChsb2d0ZXN0aW5nLkxvZ2dpbmdUZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfY2hlY2tfc3lz
X2RlcHMoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tb2NrX2RydC5weQppbmRleCA3Mzk2N2NmYmZmODY1N2FkZDc1NjNjNDdkZmEzMjRh
YTJjYjUyNzczLi5kNjM4Mjc3NDQ2ZTI4NGI0YTJkYzUwMzQ3NWU0OTIwY2JiNzc3OThhIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19k
cnQucHkKQEAgLTI4Myw2ICsyODMsMTMgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQp
OgogICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJyNFT0ZcbicpCiAgICAgICAgIHNlbGYuX3N0
ZG91dC5mbHVzaCgpCiAKKyAgICAgICAgIyBGSVhNRTogdGhpcyBpcyBhIGxhbWUgaGFjayB0byB0
ZXN0IHRoYXQgd2UgYXJlIGNhcHR1cmluZyBzdGRlcnIKKyAgICAgICAgIyBvdXRwdXQgY29ycmVj
dGx5LiBXZSBzaG91bGQgZml4IHRoaXMgYnkgcGFzc2luZyBpbiBhIGNvbW1hbmQgbGluZQorICAg
ICAgICAjIGFyZyBvbmNlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
ODY4MCBsYW5kcy4KKyAgICAgICAgaWYgJ2FydGljbGUtZWxlbWVudCcgaW4gdGVzdF9pbnB1dC51
cmk6CisgICAgICAgICAgICBzZWxmLl9zdGRlcnIud3JpdGUoInN0dWZmIGdvaW5nIHRvIHN0ZGVy
clxuIikKKyAgICAgICAgICAgIHNlbGYuX3N0ZGVyci5mbHVzaCgpCisKIAogaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKICAgICBmcyA9IGZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89880</attachid>
            <date>2011-04-15 16:59:06 -0700</date>
            <delta_ts>2011-08-23 15:05:30 -0700</delta_ts>
            <desc>use non-blocking sockets on unix instead</desc>
            <filename>bug-58708-20110415165905.patch</filename>
            <type>text/plain</type>
            <size>6279</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4OTUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNWNlYjlmOTNiNWIxMjNiNmViYTkxZmE3NDQzYWU5NDU2
NmFjYTE3Li4yODllOTFiM2JmODkzZmQwMjlmYWVlZDBjOGI5Mjg1MjcyYTRkZWJjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTcg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXct
cnVuLXdlYmtpdC10ZXN0czogcmVhZCBzdGRlcnIgZnJvbSBjaHJvbWl1bSBEUlQgc2VwYXJhdGVs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg3MDgK
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21vY2tfZHJ0LnB5OgorCisyMDExLTA0LTE1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBzYXZlIHN0ZGVyciBpbnRvIHRoZSBsYXlvdXQtdGVz
dC1yZXN1bHRzIGRpcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTg2OTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggZWIxMGE5YmQxNGQ4OGMzYTE2YTVmYTgzMTg0OTNm
Y2IwMjAyMGI5My4uZjc0NzIyMTk4MTQ0OTYyMzlhNWM2ZDRmODMxZjZhOWQ0NWYxNjQ1MyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CkBAIC0zNTcsNiArMzU3LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2
ZXIpOgogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CiAg
ICAgICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5qb2lu
KHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwKICAgICAgICAgICAgICAgICAncG5nX3Jl
c3VsdCVzLnBuZycgJSBzZWxmLl93b3JrZXJfbnVtYmVyKQorICAgICAgICBzZWxmLl9zdGRlcnJf
aXNfbm9uYmxvY2tpbmcgPSBGYWxzZQogCiAgICAgZGVmIGNtZF9saW5lKHNlbGYpOgogICAgICAg
ICBjbWQgPSBzZWxmLl9jb21tYW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFw
cGVyJykpCkBAIC00MDMsOCArNDA0LDkgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2
ZXIpOgogICAgICAgICBjbG9zZV9mbGFnID0gc3lzLnBsYXRmb3JtIG5vdCBpbiAoJ3dpbjMyJywg
J2N5Z3dpbicpCiAgICAgICAgIHNlbGYuX3Byb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rk
aW49c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1jbG9zZV9mbGFnKQorICAgICAgICBzZWxm
Ll9zdGRlcnJfaXNfbm9uYmxvY2tpbmcgPSBGYWxzZQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAg
ICAgICAgICMgcG9sbCgpIGlzIG5vdCB0aHJlYWRzYWZlIGFuZCBjYW4gdGhyb3cgT1NFcnJvciBk
dWUgdG86CkBAIC01MTUsNyArNTE3LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2
ZXIpOgogICAgICAgICAgICAgZWxpZiBhY3R1YWxfdXJpOgogICAgICAgICAgICAgICAgIG91dHB1
dC5hcHBlbmQobGluZSkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXJyb3Iu
YXBwZW5kKGxpbmUpCisgICAgICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCdleHRyYSBzdGRvdXQg
b3V0cHV0OiAlcycgJSBsaW5lKQogCiAgICAgICAgICAgICAobGluZSwgY3Jhc2gpID0gc2VsZi5f
d3JpdGVfY29tbWFuZF9hbmRfcmVhZF9saW5lKGlucHV0PU5vbmUpCiAKQEAgLTUyNiw5ICs1Mjgs
MTAgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICB0ZXh0ID0g
Jycuam9pbihvdXRwdXQpCiAgICAgICAgIGlmIG5vdCB0ZXh0OgogICAgICAgICAgICAgdGV4dCA9
IE5vbmUKKyAgICAgICAgZXJyb3JfdGV4dCA9ICcnLmpvaW4oZXJyb3IpICsgc2VsZi5fcmVhZF9z
dGRlcnIoKQogCiAgICAgICAgIHJldHVybiBiYXNlLkRyaXZlck91dHB1dCh0ZXh0LCBvdXRwdXRf
aW1hZ2UsIGFjdHVhbF9jaGVja3N1bSwgYXVkaW89Tm9uZSwKLSAgICAgICAgICAgIGNyYXNoPWNy
YXNoLCB0ZXN0X3RpbWU9cnVuX3RpbWUsIHRpbWVvdXQ9dGltZW91dCwgZXJyb3I9Jycuam9pbihl
cnJvcikpCisgICAgICAgICAgICBjcmFzaD1jcmFzaCwgdGVzdF90aW1lPXJ1bl90aW1lLCB0aW1l
b3V0PXRpbWVvdXQsIGVycm9yPWVycm9yX3RleHQpCiAKICAgICBkZWYgc3RvcChzZWxmKToKICAg
ICAgICAgaWYgc2VsZi5fcHJvYzoKQEAgLTU1MiwzICs1NTUsMjQgQEAgY2xhc3MgQ2hyb21pdW1E
cml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICAgICAgaWYgc2VsZi5fcHJvYy5wb2xsKCkgaXMg
bm90IE5vbmU6CiAgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0KCkKICAgICAgICAgICAg
IHNlbGYuX3Byb2MgPSBOb25lCisKKyAgICBkZWYgX3JlYWRfc3RkZXJyKHNlbGYpOgorICAgICAg
ICBpZiBzeXMucGxhdGZvcm0gaW4gKCd3aW4zMicsICdjeWd3aW4nKToKKyAgICAgICAgICAgIGlt
cG9ydCBtc3ZjcnQKKyAgICAgICAgICAgIGltcG9ydCB3aW4zMnBpcGUKKworICAgICAgICAgICAg
ZmQgPSBzZWxmLl9wcm9jLnN0ZGVyci5maWxlbm8oKQorICAgICAgICAgICAgb3NmID0gbXN2Y3J0
LmdldF9vc2ZoYW5kbGUoZmQpCisgICAgICAgICAgICBfLCBhdmFpbCwgXyA9IHdpbjMycGlwZS5Q
ZWVrTmFtZWRQaXBlKG9zZiwgMCkKKyAgICAgICAgICAgIGlmIGF2YWlsOgorICAgICAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9wcm9jLnN0ZGVyci5yZWFkKGF2YWlsKQorICAgICAgICAgICAgcmV0
dXJuICcnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc3RkZXJyX2lz
X25vbmJsb2NraW5nOgorICAgICAgICAgICAgICAgIGltcG9ydCBmY250bAorICAgICAgICAgICAg
ICAgIGltcG9ydCBvcworICAgICAgICAgICAgICAgIGZkID0gc2VsZi5fcHJvYy5zdGRlcnIuZmls
ZW5vKCkKKyAgICAgICAgICAgICAgICBmbCA9IGZjbnRsLmZjbnRsKGZkLCBmY250bC5GX0dFVEZM
KQorICAgICAgICAgICAgICAgIGZjbnRsLmZjbnRsKGZkLCBmY250bC5GX1NFVEZMLCBmbCB8IG9z
Lk9fTk9OQkxPQ0spCisgICAgICAgICAgICAgICAgc2VsZi5fc3RkZXJyX2lzX25vbmJsb2NraW5n
ID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Muc3RkZXJyLnJlYWQoKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fdW5pdHRlc3QucHkKaW5kZXggMDI2MGRmZmQ3ZmI1MTBlYWMwNThhMDBkNTU5NzJk
NDY5MTE1MzFmZS4uZTFiNjMxMTc1NTg0ZDkwNDM4NmVhZGExNzU3NWUwMjRiYjBkYjlhNSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CkBAIC00MSw2ICs0MSw4IEBAIGltcG9ydCBjaHJvbWl1
bV9saW51eAogaW1wb3J0IGNocm9taXVtX21hYwogaW1wb3J0IGNocm9taXVtX3dpbgogCitmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBiYXNlCitmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy5wb3J0IGltcG9ydCBmYWN0b3J5CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCiAKIApAQCAtMjIwLDYgKzIyMiwyMiBAQCBMSU5V
WCBXSU4gOiBmYXN0L2pzL3ZlcnktZ29vZC5qcyA9IFRJTUVPVVQgUEFTUyIiIgogICAgICAgICAg
ICAgZXhjZXB0aW9uX3JhaXNlZCA9IFRydWUKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleGNl
cHRpb25fcmFpc2VkKQogCisgICAgIyBEaXNhYmxlZCBiZWNhdXNlIHRoaXMgaXMgYW4gaW50ZWdy
YXRpb24gdGVzdCB0aGF0IHJlbGllcyBvbiB0aGUKKyAgICAjIGFjdHVhbCBmaWxlc3lzdGVtLgor
ICAgIGRlZiBkaXNhYmxlZF90ZXN0X3N0ZGVycihzZWxmKToKKyAgICAgICAgcG9ydCA9IGZhY3Rv
cnkuZ2V0KCdtb2NrLWNocm9taXVtLW1hYy1zbm93bGVvcGFyZCcpCisgICAgICAgIHBhdGggPSBw
b3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9maWxlc3lzdGVtLmV4aXN0cyhwYXRoKSkKKwor
ICAgICAgICBkcml2ZXIgPSBwb3J0LmNyZWF0ZV9kcml2ZXIoMSkKKyAgICAgICAgZHJpdmVyLnN0
YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZHJpdmVyX2lucHV0ID0gYmFzZS5Ecml2
ZXJJbnB1dChwYXRoLCAxMDAwLCBOb25lKQorICAgICAgICAgICAgZHJpdmVyX291dHB1dCA9IGRy
aXZlci5ydW5fdGVzdChkcml2ZXJfaW5wdXQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhkcml2ZXJfb3V0cHV0LmVycm9yLnN0cmlwKCksICdzdHVmZiBnb2luZyB0byBzdGRlcnInKQor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZHJpdmVyLnN0b3AoKQorCiAKIGNsYXNzIENo
cm9taXVtUG9ydExvZ2dpbmdUZXN0KGxvZ3Rlc3RpbmcuTG9nZ2luZ1Rlc3RDYXNlKToKICAgICBk
ZWYgdGVzdF9jaGVja19zeXNfZGVwcyhzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CmluZGV4IDczOTY3Y2ZiZmY4NjU3
YWRkNzU2M2M0N2RmYTMyNGFhMmNiNTI3NzMuLmQ2MzgyNzc0NDZlMjg0YjRhMmRjNTAzNDc1ZTQ5
MjBjYmI3Nzc5OGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbW9ja19kcnQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tb2NrX2RydC5weQpAQCAtMjgzLDYgKzI4MywxMyBAQCBjbGFzcyBNb2NrQ2hy
b21pdW1EUlQoTW9ja0RSVCk6CiAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgnI0VPRlxuJykK
ICAgICAgICAgc2VsZi5fc3Rkb3V0LmZsdXNoKCkKIAorICAgICAgICAjIEZJWE1FOiB0aGlzIGlz
IGEgbGFtZSBoYWNrIHRvIHRlc3QgdGhhdCB3ZSBhcmUgY2FwdHVyaW5nIHN0ZGVycgorICAgICAg
ICAjIG91dHB1dCBjb3JyZWN0bHkuIFdlIHNob3VsZCBmaXggdGhpcyBieSBwYXNzaW5nIGluIGEg
Y29tbWFuZCBsaW5lCisgICAgICAgICMgYXJnIG9uY2UgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU4NjgwIGxhbmRzLgorICAgICAgICBpZiAnYXJ0aWNsZS1lbGVtZW50
JyBpbiB0ZXN0X2lucHV0LnVyaToKKyAgICAgICAgICAgIHNlbGYuX3N0ZGVyci53cml0ZSgic3R1
ZmYgZ29pbmcgdG8gc3RkZXJyXG4iKQorICAgICAgICAgICAgc2VsZi5fc3RkZXJyLmZsdXNoKCkK
KwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIGZzID0gZmlsZXN5c3RlbS5GaWxl
U3lzdGVtKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>