<?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>35316</bug_id>
          
          <creation_ts>2010-02-23 15:40:30 -0800</creation_ts>
          <short_desc>fix http_server --server start</short_desc>
          <delta_ts>2010-02-24 17:54:37 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193156</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 15:40:30 -0800</bug_when>
    <thetext>fix http_server --server start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193157</commentid>
    <comment_count>1</comment_count>
      <attachid>49332</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 15:42:23 -0800</bug_when>
    <thetext>Created attachment 49332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193179</commentid>
    <comment_count>2</comment_count>
      <attachid>49342</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 16:40:55 -0800</bug_when>
    <thetext>Created attachment 49342
revised patch - fix merge properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193180</commentid>
    <comment_count>3</comment_count>
      <attachid>49343</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 16:43:04 -0800</bug_when>
    <thetext>Created attachment 49343
remove extraneous import from apache_http_server.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193187</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 17:09:27 -0800</bug_when>
    <thetext>Ojan, can you take a look at this and make sure it looks right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193199</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-02-23 17:39:45 -0800</bug_when>
    <thetext>This seems sane to me. I don&apos;t really know how __init__ works though. Tony, does this look right to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193206</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-02-23 17:57:02 -0800</bug_when>
    <thetext>Is it possible to &quot;import port&quot; instead?  You may have to muck around with the include path.  Importing __init__ directly feels wrong.

The other way to do this is to move the get() method from __init__ into a different file (like base.py) and have __init__.py &quot;import get from base&quot;.  Then you can use base.get from http_server.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193207</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-23 18:00:22 -0800</bug_when>
    <thetext>&quot;import port&quot; doesn&apos;t work w/o messing w/ the include path (and I don&apos;t want to do that because it feels really wrong).

&quot;import get from base&quot; might be the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193356</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 07:58:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Is it possible to &quot;import port&quot; instead?  You may have to muck around with the
&gt; include path.  Importing __init__ directly feels wrong.
&gt; 
&gt; The other way to do this is to move the get() method from __init__ into a
&gt; different file (like base.py) and have __init__.py &quot;import get from base&quot;. 
&gt; Then you can use base.get from http_server.py.

A few things--

(1) It looks like import __init__ is now listed twice.
(2) You shouldn&apos;t ever need to import __init__ directly.  Tony is right.  __init__ is what gets imported when you import the directory containing __init__.py.
(3) If you want to import a method inside __init__.py, then you can simply
&quot;from port import get&quot;, for example.  I did this recently in the following patch:

https://bugs.webkit.org/show_bug.cgi?id=35162

Here I defined console_log_handler in webkitpy&apos;s __init__.py, so I was able to type &quot;from webkitpy import console_log_handler&quot; in a different file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193359</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 08:03:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &quot;import port&quot; doesn&apos;t work w/o messing w/ the include path (and I don&apos;t want to
&gt; do that because it feels really wrong).
&gt; 
&gt; &quot;import get from base&quot; might be the way to go.

You probably shouldn&apos;t need to modify sys.path.  A couple possibilities are to use relative imports:

from ..port import get

(I think this is the syntax for you in this case.  See here, for example--

http://docs.python.org/tutorial/modules.html#intra-package-references )

Or more preferable is to use absolute imports (according to PEP8).  Since webkitpy is already in your search I path I assume, you should just be able to do--

from webkitpy.layout_tests.port import get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193361</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 08:07:14 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; A few things--
&gt; 
&gt; (1) It looks like import __init__ is now listed twice.

Sorry, I was looking at your first patch here, not your latest one.

You might also want to try--

from . import get

This might work to import get from your current directory&apos;s __init__.py, without having to use a relative import one level up (i.e. &quot;from ..port&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193458</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-24 12:38:27 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; A few things--
&gt; &gt; 
&gt; &gt; (1) It looks like import __init__ is now listed twice.
&gt; 
&gt; Sorry, I was looking at your first patch here, not your latest one.
&gt; 
&gt; You might also want to try--
&gt; 
&gt; from . import get
&gt; 
&gt; This might work to import get from your current directory&apos;s __init__.py,
&gt; without having to use a relative import one level up (i.e. &quot;from ..port&quot;).

Unfortunately, relative imports don&apos;t work in python 2.4, which is what Chromium uses on Windows. 

Moreover, I didn&apos;t particularly like the idea of importing the &quot;get&quot; symbol as an unqualified name. 

So, I moved the &quot;get&quot; into a new file (factory.py). I didn&apos;t move it into base.py to avoid the appearance of circular dependencies, and just to avoid confusing things.

Revised patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193461</commentid>
    <comment_count>12</comment_count>
      <attachid>49422</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-24 12:40:17 -0800</bug_when>
    <thetext>Created attachment 49422
move __init__.get() into a new file (factory.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193557</commentid>
    <comment_count>13</comment_count>
      <attachid>49422</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-02-24 16:34:20 -0800</bug_when>
    <thetext>Comment on attachment 49422
move __init__.get() into a new file (factory.py)

Consider: Would be nice to have a little more in the changelog on a per file basis to explain why the changes were done in that file as discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193583</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-24 17:54:37 -0800</bug_when>
    <thetext>Fix landed as r55210. Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49332</attachid>
            <date>2010-02-23 15:42:23 -0800</date>
            <delta_ts>2010-02-23 16:40:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35316-20100223154221.patch</filename>
            <type>text/plain</type>
            <size>1695</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxOTFmODJjLi5jOGYxMDc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDIt
MjMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRoZSBweXRob24gaHR0cF9zZXJ2
ZXIucHkgdG8gcGFzcyBpbiBhIHBvcnQgb2JqZWN0IHByb3Blcmx5IHNvCisgICAgICAgIC0tc2Vy
dmVyIHN0YXJ0fHN0b3AgYWN0dWFsbHkgd29ya3MuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzE2CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorCiAyMDEwLTAyLTIzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2
ZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0
dHBfc2VydmVyLnB5CmluZGV4IDg3YzBjYzguLjg3YTcwMzUgMTAwNzU1Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3Nl
cnZlci5weQpAQCAtNDIsNyArNDIsNyBAQCBpbXBvcnQgdXJsbGliCiAKIGltcG9ydCBfX2luaXRf
XwogaW1wb3J0IGh0dHBfc2VydmVyX2Jhc2UKLQoraW1wb3J0IF9faW5pdF9fCiAKIGNsYXNzIEh0
dHBkTm90U3RhcnRlZChFeGNlcHRpb24pOgogICAgIHBhc3MKQEAgLTIwNiw3ICsyMDYsNiBAQCBj
bGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAg
ICAgIHN1YnByb2Nlc3MuUG9wZW4oc2V0dXBfbW91bnQpLndhaXQoKQogCiAgICAgICAgIGxvZ2dp
bmcuZGVidWcoJ1N0YXJ0aW5nIGh0dHAgc2VydmVyJykKLSAgICAgICAgcHJpbnQgc3RhcnRfY21k
CiAgICAgICAgIHNlbGYuX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHN0YXJ0X2NtZCwgZW52
PWVudikKIAogICAgICAgICAjIFdhaXQgZm9yIHNlcnZlciB0byBzdGFydC4KQEAgLTI1Myw2ICsy
NTIsNyBAQCBpZiAnX19tYWluX18nID09IF9fbmFtZV9fOgogICAgICAgICBoZWxwPSdSdW4gb24g
YmFja2dyb3VuZCAoZm9yIHJ1bm5pbmcgYXMgVUkgdGVzdCknKQogICAgIG9wdGlvbnMsIGFyZ3Mg
PSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoKQogCisgICAgcG9ydF9vYmogPSBfX2luaXRfXy5n
ZXQoKQogICAgIGlmIG5vdCBvcHRpb25zLnNlcnZlcjoKICAgICAgICAgcHJpbnQgKCdVc2FnZTog
JXMgLS1zZXJ2ZXIge3N0YXJ0fHN0b3B9IFstLXJvb3Q9cm9vdF9kaXJdJwogICAgICAgICAgICAg
ICAgJyBbLS1wb3J0PXBvcnRfbnVtYmVyXScgJSBzeXMuYXJndlswXSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49342</attachid>
            <date>2010-02-23 16:40:55 -0800</date>
            <delta_ts>2010-02-23 16:43:04 -0800</delta_ts>
            <desc>revised patch - fix merge properly</desc>
            <filename>wk35316.diff</filename>
            <type>text/plain</type>
            <size>3639</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxOTFmODJjLi5jOGYxMDc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDIt
MjMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRoZSBweXRob24gaHR0cF9zZXJ2
ZXIucHkgdG8gcGFzcyBpbiBhIHBvcnQgb2JqZWN0IHByb3Blcmx5IHNvCisgICAgICAgIC0tc2Vy
dmVyIHN0YXJ0fHN0b3AgYWN0dWFsbHkgd29ya3MuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzE2CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorCiAyMDEwLTAyLTIzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBhY2hlX2h0
dHBfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkKaW5kZXggOWZmMzY3MS4uNTZhYWEyOCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcGFj
aGVfaHR0cF9zZXJ2ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkKQEAgLTM2LDYgKzM2LDcgQEAgaW1w
b3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCitpbXBvcnQgX19pbml0X18K
IGltcG9ydCBodHRwX3NlcnZlcl9iYXNlCiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQpp
bmRleCAxMDAxZGNkLi5lY2UxMGIwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weQpAQCAt
MTM0LDEwICsxMzQsMTAgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVt
UG9ydCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwYWNoZTItaHR0cGQuY29uZicp
CiAKICAgICBkZWYgX3BhdGhfdG9fbGlnaHR0cGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9saWdodHRwX3BhdGgoJ2JpbicsICdsaWdodHRwJykKKyAgICAgICAgcmV0dXJuIHNlbGYuX2xp
Z2h0dHBkX3BhdGgoJ2JpbicsICdsaWdodHRwZCcpCiAKICAgICBkZWYgX3BhdGhfdG9fbGlnaHR0
cGRfbW9kdWxlcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xpZ2h0dHBfcGF0aCgnbGli
JykKKyAgICAgICAgcmV0dXJuIHNlbGYuX2xpZ2h0dHBkX3BhdGgoJ2xpYicpCiAKICAgICBkZWYg
X3BhdGhfdG9fbGlnaHR0cGRfcGhwKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbGlnaHR0
cGRfcGF0aCgnYmluJywgJ3BocC1jZ2knKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKaW5kZXgg
MDMxNTcwNC4uYmM2ZDIwNSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CkBAIC00MCw2ICs0
MCw3IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUKIGltcG9ydCB1cmxsaWIKIAoraW1w
b3J0IF9faW5pdF9fCiBpbXBvcnQgaHR0cF9zZXJ2ZXJfYmFzZQogCiAKQEAgLTI2MSw3ICsyNjIs
OSBAQCBpZiAnX19tYWluX18nID09IF9fbmFtZV9fOgogICAgICAgICAgICAgIyBzb3VyY2Ugb2Yg
dGVzdHMuIFNwZWNpZnlpbmcgcG9ydCBidXQgbm8gcm9vdCBkb2VzIG5vdCBzZWVtCiAgICAgICAg
ICAgICAjIG1lYW5pbmdmdWwuCiAgICAgICAgICAgICByYWlzZSAnU3BlY2lmeWluZyBwb3J0IHJl
cXVpcmVzIGFsc28gYSByb290LicKLSAgICAgICAgaHR0cGQgPSBMaWdodHRwZCh0ZW1wZmlsZS5n
ZXR0ZW1wZGlyKCksCisgICAgICAgIHBvcnRfb2JqID0gX19pbml0X18uZ2V0KCkKKyAgICAgICAg
aHR0cGQgPSBMaWdodHRwZChwb3J0X29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1vcHRpb25z
LnBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1vcHRpb25zLnJvb3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfY3lnd2luPW9wdGlvbnMucmVnaXN0ZXJfY3ln
d2luLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggNTRjMmY2Zi4uMWEwMDQzOAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2Nr
ZXRfc2VydmVyLnB5CkBAIC0zOSw2ICszOSw3IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRp
bWUKIGltcG9ydCB1cmxsaWIKIAoraW1wb3J0IF9faW5pdF9fCiBpbXBvcnQgaHR0cF9zZXJ2ZXIK
IAogX1dTX0xPR19QUkVGSVggPSAncHl3ZWJzb2NrZXQud3MubG9nLScKQEAgLTI5Niw3ICsyOTcs
OCBAQCBpZiAnX19tYWluX18nID09IF9fbmFtZV9fOgogICAgIGlmIG9wdGlvbnMucGlkZmlsZToK
ICAgICAgICAga3dkc1sncGlkZmlsZSddID0gb3B0aW9ucy5waWRmaWxlCiAKLSAgICBweXdlYnNv
Y2tldCA9IFB5V2ViU29ja2V0KHRlbXBmaWxlLmdldHRlbXBkaXIoKSwgKiprd2RzKQorICAgIHBv
cnRfb2JqID0gX19pbml0X18uZ2V0KCkKKyAgICBweXdlYnNvY2tldCA9IFB5V2ViU29ja2V0KHBv
cnRfb2JqLCB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksICoqa3dkcykKIAogICAgIGlmICdzdGFydCcg
PT0gb3B0aW9ucy5zZXJ2ZXI6CiAgICAgICAgIHB5d2Vic29ja2V0LnN0YXJ0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49343</attachid>
            <date>2010-02-23 16:43:04 -0800</date>
            <delta_ts>2010-02-24 12:40:17 -0800</delta_ts>
            <desc>remove extraneous import from apache_http_server.py</desc>
            <filename>wk35316.diff</filename>
            <type>text/plain</type>
            <size>3199</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxOTFmODJjLi5jOGYxMDc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDIt
MjMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRoZSBweXRob24gaHR0cF9zZXJ2
ZXIucHkgdG8gcGFzcyBpbiBhIHBvcnQgb2JqZWN0IHByb3Blcmx5IHNvCisgICAgICAgIC0tc2Vy
dmVyIHN0YXJ0fHN0b3AgYWN0dWFsbHkgd29ya3MuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzE2CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5OgorCiAyMDEwLTAyLTIzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bWFjLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9tYWMucHkKaW5kZXggMTAwMWRjZC4uZWNlMTBiMCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9tYWMucHkKQEAgLTEzNCwxMCArMTM0LDEwIEBAIGNsYXNzIENocm9taXVtTWFjUG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcGFj
aGUyLWh0dHBkLmNvbmYnKQogCiAgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fbGlnaHR0cF9wYXRoKCdiaW4nLCAnbGlnaHR0cCcpCisgICAgICAg
IHJldHVybiBzZWxmLl9saWdodHRwZF9wYXRoKCdiaW4nLCAnbGlnaHR0cGQnKQogCiAgICAgZGVm
IF9wYXRoX3RvX2xpZ2h0dHBkX21vZHVsZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9s
aWdodHRwX3BhdGgoJ2xpYicpCisgICAgICAgIHJldHVybiBzZWxmLl9saWdodHRwZF9wYXRoKCds
aWInKQogCiAgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX3BocChzZWxmKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX2xpZ2h0dHBkX3BhdGgoJ2JpbicsICdwaHAtY2dpJykKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBf
c2VydmVyLnB5CmluZGV4IDAzMTU3MDQuLmJjNmQyMDUgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZl
ci5weQpAQCAtNDAsNiArNDAsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCB0aW1lCiBpbXBv
cnQgdXJsbGliCiAKK2ltcG9ydCBfX2luaXRfXwogaW1wb3J0IGh0dHBfc2VydmVyX2Jhc2UKIAog
CkBAIC0yNjEsNyArMjYyLDkgQEAgaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKICAgICAgICAg
ICAgICMgc291cmNlIG9mIHRlc3RzLiBTcGVjaWZ5aW5nIHBvcnQgYnV0IG5vIHJvb3QgZG9lcyBu
b3Qgc2VlbQogICAgICAgICAgICAgIyBtZWFuaW5nZnVsLgogICAgICAgICAgICAgcmFpc2UgJ1Nw
ZWNpZnlpbmcgcG9ydCByZXF1aXJlcyBhbHNvIGEgcm9vdC4nCi0gICAgICAgIGh0dHBkID0gTGln
aHR0cGQodGVtcGZpbGUuZ2V0dGVtcGRpcigpLAorICAgICAgICBwb3J0X29iaiA9IF9faW5pdF9f
LmdldCgpCisgICAgICAgIGh0dHBkID0gTGlnaHR0cGQocG9ydF9vYmosCisgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVtcGZpbGUuZ2V0dGVtcGRpcigpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcnQ9b3B0aW9ucy5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9b3B0
aW9ucy5yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2N5Z3dpbj1vcHRp
b25zLnJlZ2lzdGVyX2N5Z3dpbiwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQpv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDU0YzJmNmYuLjFhMDA0MzgKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2Nr
ZXRfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtMzksNiArMzksNyBAQCBpbXBvcnQgdGVt
cGZpbGUKIGltcG9ydCB0aW1lCiBpbXBvcnQgdXJsbGliCiAKK2ltcG9ydCBfX2luaXRfXwogaW1w
b3J0IGh0dHBfc2VydmVyCiAKIF9XU19MT0dfUFJFRklYID0gJ3B5d2Vic29ja2V0LndzLmxvZy0n
CkBAIC0yOTYsNyArMjk3LDggQEAgaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKICAgICBpZiBv
cHRpb25zLnBpZGZpbGU6CiAgICAgICAgIGt3ZHNbJ3BpZGZpbGUnXSA9IG9wdGlvbnMucGlkZmls
ZQogCi0gICAgcHl3ZWJzb2NrZXQgPSBQeVdlYlNvY2tldCh0ZW1wZmlsZS5nZXR0ZW1wZGlyKCks
ICoqa3dkcykKKyAgICBwb3J0X29iaiA9IF9faW5pdF9fLmdldCgpCisgICAgcHl3ZWJzb2NrZXQg
PSBQeVdlYlNvY2tldChwb3J0X29iaiwgdGVtcGZpbGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMpCiAK
ICAgICBpZiAnc3RhcnQnID09IG9wdGlvbnMuc2VydmVyOgogICAgICAgICBweXdlYnNvY2tldC5z
dGFydCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49422</attachid>
            <date>2010-02-24 12:40:17 -0800</date>
            <delta_ts>2010-02-24 16:34:20 -0800</delta_ts>
            <desc>move __init__.get() into a new file (factory.py)</desc>
            <filename>wk35316.diff</filename>
            <type>text/plain</type>
            <size>8377</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3OTg2NDViLi45MzdmYjQ5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDIt
MjMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRoZSBweXRob24gaHR0cF9zZXJ2
ZXIucHkgdG8gcGFzcyBpbiBhIHBvcnQgb2JqZWN0IHByb3Blcmx5IHNvCisgICAgICAgIC0tc2Vy
dmVyIHN0YXJ0fHN0b3AgYWN0dWFsbHkgd29ya3MuCisKKyAgICAgICAgQWxzbywgc3BsaXQgdGhl
IGdldCgpIG1ldGhvZCBvdXQgZnJvbSBwb3J0Ll9faW5pdF9fIHNvIHRoYXQgaXQgY2FuCisgICAg
ICAgIGJlIGNhbGxlZCBieSBvdGhlciBmaWxlcyBpbiB0aGUgcGFja2FnZSB3aXRob3V0IGhhdmlu
ZyB0byByZXNvcnQgdG8KKyAgICAgICAgd2VpcmQgc3ludGF4LgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTMxNgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHk6
CisKIDIwMTAtMDItMjMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgY29tbWl0LWxvZy1lZGl0b3IgZmluZCBqdXN0LWFkZGVkIENoYW5nZUxvZyBmaWxlcwpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9fX2luaXRfXy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvX19pbml0X18ucHkKaW5kZXggMzUwOTY3NS4uZTNhZDZmNCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9fX2luaXRfXy5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L19faW5p
dF9fLnB5CkBAIC0yOSwzNyArMjksNCBAQAogCiAiIiJQb3J0LXNwZWNpZmljIGVudHJ5cG9pbnRz
IGZvciB0aGUgbGF5b3V0IHRlc3RzIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuIiIiCiAKLQotaW1wb3J0
IHN5cwotCi0KLWRlZiBnZXQocG9ydF9uYW1lPU5vbmUsIG9wdGlvbnM9Tm9uZSk6Ci0gICAgIiIi
UmV0dXJucyBhbiBvYmplY3QgaW1wbGVtZW50aW5nIHRoZSBQb3J0IGludGVyZmFjZS4gSWYKLSAg
ICBwb3J0X25hbWUgaXMgTm9uZSwgdGhpcyByb3V0aW5lIGF0dGVtcHRzIHRvIGd1ZXNzIGF0IHRo
ZSBtb3N0Ci0gICAgYXBwcm9wcmlhdGUgcG9ydCBvbiB0aGlzIHBsYXRmb3JtLiIiIgotICAgIHBv
cnRfdG9fdXNlID0gcG9ydF9uYW1lCi0gICAgaWYgcG9ydF90b191c2UgaXMgTm9uZToKLSAgICAg
ICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6Ci0gICAgICAgICAgICBwb3J0X3RvX3VzZSA9
ICdjaHJvbWl1bS13aW4nCi0gICAgICAgIGVsaWYgc3lzLnBsYXRmb3JtID09ICdsaW51eDInOgot
ICAgICAgICAgICAgcG9ydF90b191c2UgPSAnY2hyb21pdW0tbGludXgnCi0gICAgICAgIGVsaWYg
c3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAgICAgICAgcG9ydF90b191c2UgPSAnY2hy
b21pdW0tbWFjJwotCi0gICAgaWYgcG9ydF90b191c2UgPT0gJ3Rlc3QnOgotICAgICAgICBpbXBv
cnQgdGVzdAotICAgICAgICByZXR1cm4gdGVzdC5UZXN0UG9ydChwb3J0X25hbWUsIG9wdGlvbnMp
Ci0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdtYWMnKToKLSAgICAgICAgaW1wb3J0
IG1hYwotICAgICAgICByZXR1cm4gbWFjLk1hY1BvcnQocG9ydF9uYW1lLCBvcHRpb25zKQotICAg
IGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnY2hyb21pdW0tbWFjJyk6Ci0gICAgICAgIGlt
cG9ydCBjaHJvbWl1bV9tYWMKLSAgICAgICAgcmV0dXJuIGNocm9taXVtX21hYy5DaHJvbWl1bU1h
Y1BvcnQocG9ydF9uYW1lLCBvcHRpb25zKQotICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0
aCgnY2hyb21pdW0tbGludXgnKToKLSAgICAgICAgaW1wb3J0IGNocm9taXVtX2xpbnV4Ci0gICAg
ICAgIHJldHVybiBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydChwb3J0X25hbWUsIG9w
dGlvbnMpCi0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS13aW4nKToK
LSAgICAgICAgaW1wb3J0IGNocm9taXVtX3dpbgotICAgICAgICByZXR1cm4gY2hyb21pdW1fd2lu
LkNocm9taXVtV2luUG9ydChwb3J0X25hbWUsIG9wdGlvbnMpCi0KLSAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCd1bnN1cHBvcnRlZCBwb3J0OiAlcycgJSBwb3J0X3RvX3VzZSkKK2Zyb20g
ZmFjdG9yeSBpbXBvcnQgZ2V0CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CmluZGV4IDEwMDFk
Y2QuLmVjZTEwYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CkBAIC0xMzQsMTAgKzEz
NCwxMCBAQCBjbGFzcyBDaHJvbWl1bU1hY1BvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBhY2hlMi1odHRwZC5jb25mJykKIAogICAgIGRl
ZiBfcGF0aF90b19saWdodHRwZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xpZ2h0dHBf
cGF0aCgnYmluJywgJ2xpZ2h0dHAnKQorICAgICAgICByZXR1cm4gc2VsZi5fbGlnaHR0cGRfcGF0
aCgnYmluJywgJ2xpZ2h0dHBkJykKIAogICAgIGRlZiBfcGF0aF90b19saWdodHRwZF9tb2R1bGVz
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGlnaHR0cF9wYXRoKCdsaWInKQorICAgICAg
ICByZXR1cm4gc2VsZi5fbGlnaHR0cGRfcGF0aCgnbGliJykKIAogICAgIGRlZiBfcGF0aF90b19s
aWdodHRwZF9waHAoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9saWdodHRwZF9wYXRoKCdi
aW4nLCAncGhwLWNnaScpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjBkYTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQpAQCAtMCwwICsxLDY1IEBA
CisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJGYWN0b3J5IG1l
dGhvZCB0byByZXRyaWV2ZSB0aGUgYXBwcm9wcmlhdGUgcG9ydCBpbXBsZW1lbnRhdGlvbi4iIiIK
KworCitpbXBvcnQgc3lzCisKKworZGVmIGdldChwb3J0X25hbWU9Tm9uZSwgb3B0aW9ucz1Ob25l
KToKKyAgICAiIiJSZXR1cm5zIGFuIG9iamVjdCBpbXBsZW1lbnRpbmcgdGhlIFBvcnQgaW50ZXJm
YWNlLiBJZgorICAgIHBvcnRfbmFtZSBpcyBOb25lLCB0aGlzIHJvdXRpbmUgYXR0ZW1wdHMgdG8g
Z3Vlc3MgYXQgdGhlIG1vc3QKKyAgICBhcHByb3ByaWF0ZSBwb3J0IG9uIHRoaXMgcGxhdGZvcm0u
IiIiCisgICAgcG9ydF90b191c2UgPSBwb3J0X25hbWUKKyAgICBpZiBwb3J0X3RvX3VzZSBpcyBO
b25lOgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgIHBv
cnRfdG9fdXNlID0gJ2Nocm9taXVtLXdpbicKKyAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0g
J2xpbnV4Mic6CisgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS1saW51eCcKKyAg
ICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6CisgICAgICAgICAgICBwb3J0X3Rv
X3VzZSA9ICdjaHJvbWl1bS1tYWMnCisKKyAgICBpZiBwb3J0X3RvX3VzZSA9PSAndGVzdCc6Cisg
ICAgICAgIGltcG9ydCB0ZXN0CisgICAgICAgIHJldHVybiB0ZXN0LlRlc3RQb3J0KHBvcnRfbmFt
ZSwgb3B0aW9ucykKKyAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ21hYycpOgorICAg
ICAgICBpbXBvcnQgbWFjCisgICAgICAgIHJldHVybiBtYWMuTWFjUG9ydChwb3J0X25hbWUsIG9w
dGlvbnMpCisgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1tYWMnKToK
KyAgICAgICAgaW1wb3J0IGNocm9taXVtX21hYworICAgICAgICByZXR1cm4gY2hyb21pdW1fbWFj
LkNocm9taXVtTWFjUG9ydChwb3J0X25hbWUsIG9wdGlvbnMpCisgICAgZWxpZiBwb3J0X3RvX3Vz
ZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1saW51eCcpOgorICAgICAgICBpbXBvcnQgY2hyb21pdW1f
bGludXgKKyAgICAgICAgcmV0dXJuIGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KHBv
cnRfbmFtZSwgb3B0aW9ucykKKyAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9t
aXVtLXdpbicpOgorICAgICAgICBpbXBvcnQgY2hyb21pdW1fd2luCisgICAgICAgIHJldHVybiBj
aHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KHBvcnRfbmFtZSwgb3B0aW9ucykKKworICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBvcnQ6ICVzJyAlIHBvcnRfdG9f
dXNlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9odHRwX3NlcnZlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIucHkKaW5kZXggMDMxNTcwNC4uZTU2MDQwYyAxMDA3
NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9o
dHRwX3NlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CkBAIC00MCw2ICs0MCw3IEBAIGltcG9ydCB0ZW1wZmls
ZQogaW1wb3J0IHRpbWUKIGltcG9ydCB1cmxsaWIKIAoraW1wb3J0IGZhY3RvcnkKIGltcG9ydCBo
dHRwX3NlcnZlcl9iYXNlCiAKIApAQCAtMjYxLDcgKzI2Miw5IEBAIGlmICdfX21haW5fXycgPT0g
X19uYW1lX186CiAgICAgICAgICAgICAjIHNvdXJjZSBvZiB0ZXN0cy4gU3BlY2lmeWluZyBwb3J0
IGJ1dCBubyByb290IGRvZXMgbm90IHNlZW0KICAgICAgICAgICAgICMgbWVhbmluZ2Z1bC4KICAg
ICAgICAgICAgIHJhaXNlICdTcGVjaWZ5aW5nIHBvcnQgcmVxdWlyZXMgYWxzbyBhIHJvb3QuJwot
ICAgICAgICBodHRwZCA9IExpZ2h0dHBkKHRlbXBmaWxlLmdldHRlbXBkaXIoKSwKKyAgICAgICAg
cG9ydF9vYmogPSBmYWN0b3J5LmdldCgpCisgICAgICAgIGh0dHBkID0gTGlnaHR0cGQocG9ydF9v
YmosCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGZpbGUuZ2V0dGVtcGRpcigpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9b3B0aW9ucy5wb3J0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgIHJvb3Q9b3B0aW9ucy5yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Z2lzdGVyX2N5Z3dpbj1vcHRpb25zLnJlZ2lzdGVyX2N5Z3dpbiwKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZl
ci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
c29ja2V0X3NlcnZlci5weQppbmRleCA1NGMyZjZmLi5jYjhlMDI0IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2
ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJzb2NrZXRfc2VydmVyLnB5CkBAIC0zOSw2ICszOSw3IEBAIGltcG9ydCB0ZW1wZmlsZQog
aW1wb3J0IHRpbWUKIGltcG9ydCB1cmxsaWIKIAoraW1wb3J0IGZhY3RvcnkKIGltcG9ydCBodHRw
X3NlcnZlcgogCiBfV1NfTE9HX1BSRUZJWCA9ICdweXdlYnNvY2tldC53cy5sb2ctJwpAQCAtMjk2
LDcgKzI5Nyw4IEBAIGlmICdfX21haW5fXycgPT0gX19uYW1lX186CiAgICAgaWYgb3B0aW9ucy5w
aWRmaWxlOgogICAgICAgICBrd2RzWydwaWRmaWxlJ10gPSBvcHRpb25zLnBpZGZpbGUKIAotICAg
IHB5d2Vic29ja2V0ID0gUHlXZWJTb2NrZXQodGVtcGZpbGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMp
CisgICAgcG9ydF9vYmogPSBmYWN0b3J5LmdldCgpCisgICAgcHl3ZWJzb2NrZXQgPSBQeVdlYlNv
Y2tldChwb3J0X29iaiwgdGVtcGZpbGUuZ2V0dGVtcGRpcigpLCAqKmt3ZHMpCiAKICAgICBpZiAn
c3RhcnQnID09IG9wdGlvbnMuc2VydmVyOgogICAgICAgICBweXdlYnNvY2tldC5zdGFydCgpCg==
</data>
<flag name="review"
          id="32289"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>