<?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>100780</bug_id>
          
          <creation_ts>2012-10-30 12:22:10 -0700</creation_ts>
          <short_desc>test-webkitpy: fix import of coverage so that it works in a clean install</short_desc>
          <delta_ts>2012-10-30 16:17:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100787</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>754575</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 12:22:10 -0700</bug_when>
    <thetext>test-webkitpy: fix import of coverage so that it works in a clean install</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754578</commentid>
    <comment_count>1</comment_count>
      <attachid>171499</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 12:23:08 -0700</bug_when>
    <thetext>Created attachment 171499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754579</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 12:24:14 -0700</bug_when>
    <thetext>I&apos;m not actually sure if this is the best way to fix this, or if it would be better to move coverage down a directory and put webkitpy/thirdparty/autoinstalled/coverage into sys.path, to minimize other potential conflicts. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754655</commentid>
    <comment_count>3</comment_count>
      <attachid>171499</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 14:21:14 -0700</bug_when>
    <thetext>Comment on attachment 171499
Patch

reworking a bit ... hang on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754659</commentid>
    <comment_count>4</comment_count>
      <attachid>171519</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 14:33:10 -0700</bug_when>
    <thetext>Created attachment 171519
refactor tests a bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754669</commentid>
    <comment_count>5</comment_count>
      <attachid>171519</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-30 14:39:38 -0700</bug_when>
    <thetext>Comment on attachment 171519
refactor tests a bit

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

&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:130
&gt; +        installed_something = installer.install(url=&quot;http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24&quot;, url_subpath=&quot;coverage-3.5.1/coverage&quot;)

installed_something?  Ah it&apos;s a bool?

&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:132
&gt; +        if not _AUTOINSTALLED_DIR in sys.path:
&gt; +            sys.path.append(_AUTOINSTALLED_DIR)

Wow.  Nasty.  You might want to document this hack with a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754681</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 14:55:00 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 171519 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171519&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:130
&gt; &gt; +        installed_something = installer.install(url=&quot;http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24&quot;, url_subpath=&quot;coverage-3.5.1/coverage&quot;)
&gt; 
&gt; installed_something?  Ah it&apos;s a bool?
&gt; 

Yes. This tracks whether installer.install() actually did work, and is used by autoinstall_everything() in test-webkitpy to see if we need to run the unit tests serial to get around some really weird bugs I hit a few months ago.

&gt; &gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:132
&gt; &gt; +        if not _AUTOINSTALLED_DIR in sys.path:
&gt; &gt; +            sys.path.append(_AUTOINSTALLED_DIR)
&gt; 
&gt; Wow.  Nasty.  You might want to document this hack with a comment.

Sure, can do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754693</commentid>
    <comment_count>7</comment_count>
      <attachid>171519</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-30 15:07:50 -0700</bug_when>
    <thetext>Comment on attachment 171519
refactor tests a bit

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:130
&gt;&gt;&gt; +        installed_something = installer.install(url=&quot;http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24&quot;, url_subpath=&quot;coverage-3.5.1/coverage&quot;)
&gt;&gt; 
&gt;&gt; installed_something?  Ah it&apos;s a bool?
&gt; 
&gt; Yes. This tracks whether installer.install() actually did work, and is used by autoinstall_everything() in test-webkitpy to see if we need to run the unit tests serial to get around some really weird bugs I hit a few months ago.

I think Eric is saying the naming is confusing.  Maybe call it successfully_installed or has_successfully_installed_coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754698</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 15:10:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 171519 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171519&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:130
&gt; &gt;&gt;&gt; +        installed_something = installer.install(url=&quot;http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24&quot;, url_subpath=&quot;coverage-3.5.1/coverage&quot;)
&gt; &gt;&gt; 
&gt; &gt;&gt; installed_something?  Ah it&apos;s a bool?
&gt; &gt; 
&gt; &gt; Yes. This tracks whether installer.install() actually did work, and is used by autoinstall_everything() in test-webkitpy to see if we need to run the unit tests serial to get around some really weird bugs I hit a few months ago.
&gt; 
&gt; I think Eric is saying the naming is confusing.  Maybe call it successfully_installed or has_successfully_installed_coverage.

Neither of those names is very good IMO because the routine returns False if the package is already installed (and also, we use the same variable name throughout the file for consistency, so I wouldn&apos;t want to necessarily make it specific to the package name).  I could rename it to has_installed_something or did_install_something ... WDYT of those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754704</commentid>
    <comment_count>9</comment_count>
      <attachid>171519</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-30 15:17:13 -0700</bug_when>
    <thetext>Comment on attachment 171519
refactor tests a bit

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

&gt;&gt;&gt;&gt;&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:130
&gt;&gt;&gt;&gt;&gt; +        installed_something = installer.install(url=&quot;http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24&quot;, url_subpath=&quot;coverage-3.5.1/coverage&quot;)
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; installed_something?  Ah it&apos;s a bool?
&gt;&gt;&gt; 
&gt;&gt;&gt; Yes. This tracks whether installer.install() actually did work, and is used by autoinstall_everything() in test-webkitpy to see if we need to run the unit tests serial to get around some really weird bugs I hit a few months ago.
&gt;&gt; 
&gt;&gt; I think Eric is saying the naming is confusing.  Maybe call it successfully_installed or has_successfully_installed_coverage.
&gt; 
&gt; Neither of those names is very good IMO because the routine returns False if the package is already installed (and also, we use the same variable name throughout the file for consistency, so I wouldn&apos;t want to necessarily make it specific to the package name).  I could rename it to has_installed_something or did_install_something ... WDYT of those?

has_installed_something or has_installed_coverage would be fine with me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754734</commentid>
    <comment_count>10</comment_count>
      <attachid>171536</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 15:40:18 -0700</bug_when>
    <thetext>Created attachment 171536
update w/ review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754751</commentid>
    <comment_count>11</comment_count>
      <attachid>171536</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-30 15:57:35 -0700</bug_when>
    <thetext>Comment on attachment 171536
update w/ review feedback

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

&gt; Tools/Scripts/webkitpy/test/main_unittest.py:81
&gt; +        out, err = proc.communicate()

Nit: err -&gt; _ since it&apos;s not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754763</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 16:14:12 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 171536 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171536&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/test/main_unittest.py:81
&gt; &gt; +        out, err = proc.communicate()
&gt; 
&gt; Nit: err -&gt; _ since it&apos;s not used.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754768</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-30 16:17:51 -0700</bug_when>
    <thetext>Committed r132955: &lt;http://trac.webkit.org/changeset/132955&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171499</attachid>
            <date>2012-10-30 12:23:08 -0700</date>
            <delta_ts>2012-10-30 14:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100780-20121030122133.patch</filename>
            <type>text/plain</type>
            <size>3874</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzgyMzhmNzE3Y2QwMDNlNzM4Njg3Mzg5ODZmZTM2ZTk2
NjYyOWMxZi4uNTE2ODIzN2NhNjkzMjE5MTE4MmU1ZTE0OTcwN2Q4ZGVlNzEwZGM3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEyLTEwLTMwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHRlc3Qtd2Via2l0cHk6IGZpeCBpbXBvcnQgb2YgY292ZXJhZ2Ugc28gdGhhdCBpdCB3
b3JrcyBpbiBhIGNsZWFuIGluc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBjb3ZlcmFnZSBtb2R1bGUgaXMgd3JpdHRlbiBzbyB0aGF0IHRo
ZSBwYXJlbnQgZGlyZWN0b3J5IG5lZWRzCisgICAgICAgIHRvIGJlIGluIFBZVEhPTlBBVEg7IHdv
cmsgYXJvdW5kIHRoYXQgLi4uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RlclRlc3QudGVzdF9lbXB0eSk6CisgICAgICAg
IChUZXN0ZXJUZXN0LnRlc3RfaW5kaXZpZHVhbF9uYW1lc19hcmVfbm90X3J1bl90d2ljZSk6Cisg
ICAgICAgIChUZXN0ZXJUZXN0KToKKyAgICAgICAgKFRlc3RlclRlc3QuaW50ZWdyYXRpb25fdGVz
dF9jb3ZlcmFnZV93b3Jrcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5
L19faW5pdF9fLnB5OgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX2Nv
dmVyYWdlKToKKwogMjAxMi0xMC0yOSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICB3ZWJraXRweTogY2hhbmdlIG5vbi12ZXJib3NlIGxvZyBmb3JtYXQgZm9y
IHdlYmtpdC1wYXRjaApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21h
aW5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVz
dC5weQppbmRleCAyMDIwZjViNjAwOTA0MmE3MWY0OWJjZjNiMWYzZGFjNGFiODFkNjQxLi42NTkx
YTU5ZWFiYzBiNzEzYzUwMjkxNmQwNjJmZWIzYzliNjNjNzg0IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVzdC5weQpAQCAtMjEsMTUgKzIxLDIxIEBACiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QK
IGltcG9ydCBTdHJpbmdJTwogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3Rl
bSBpbXBvcnQgRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgRXhlY3V0aXZlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2Fw
dHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50ZXN0Lm1haW4gaW1wb3J0
IFRlc3RlciwgX0xvYWRlcgogCiAKIGNsYXNzIFRlc3RlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogCisgICAgZGVmIHRlc3RfZW1wdHkoc2VsZik6CisgICAgICAgIHBhc3MKKwogICAgIGRlZiB0
ZXN0X25vX3Rlc3RzX2ZvdW5kKHNlbGYpOgogICAgICAgICB0ZXN0ZXIgPSBUZXN0ZXIoKQogICAg
ICAgICBlcnJvcnMgPSBTdHJpbmdJTy5TdHJpbmdJTygpCkBAIC01OSwzICs2NSwxNSBAQCBjbGFz
cyBUZXN0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcGFyYWxsZWxfdGVzdHMs
IHNlcmlhbF90ZXN0cyA9IHRlc3Rlci5fdGVzdF9uYW1lcyhfTG9hZGVyKCksIGFyZ3MpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFsbGVsX3Rlc3RzLCBhcmdzKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzZXJpYWxfdGVzdHMsIFtdKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rl
c3RfY292ZXJhZ2Vfd29ya3Moc2VsZik6CisgICAgICAgIGZpbGVzeXN0ZW0gPSBGaWxlU3lzdGVt
KCkKKyAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgbW9kdWxlX3BhdGgg
PSBmaWxlc3lzdGVtLnBhdGhfdG9fbW9kdWxlKHNlbGYuX19tb2R1bGVfXykKKyAgICAgICAgc2Ny
aXB0X2RpciA9IG1vZHVsZV9wYXRoWzA6bW9kdWxlX3BhdGguZmluZCgnd2Via2l0cHknKSAtIDFd
CisgICAgICAgIHByb2MgPSBleGVjdXRpdmUucG9wZW4oW3N5cy5leGVjdXRhYmxlLCBmaWxlc3lz
dGVtLmpvaW4oc2NyaXB0X2RpciwgJ3Rlc3Qtd2Via2l0cHknKSwgJy1jJywgJ3dlYmtpdHB5LnRl
c3QubWFpbl91bml0dGVzdC5UZXN0ZXJUZXN0LnRlc3RfZW1wdHknXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGRvdXQ9ZXhlY3V0aXZlLlBJUEUsIHN0ZGVycj1leGVjdXRpdmUu
UElQRSkKKyAgICAgICAgb3V0LCBlcnIgPSBwcm9jLmNvbW11bmljYXRlKCkKKyAgICAgICAgcmV0
Y29kZSA9IHByb2MucmV0dXJuY29kZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXRjb2Rl
LCAwKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0NvdmVyJyBpbiBvdXQpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKaW5kZXggMTdhZTYyYTA3ZWI3
NGMxYzdmZmY1ODkyMWZhYzBlYWVlZjkyOWRkYS4uNTY3ZTE2NTYxZjk5ODFkNzU5OGQ2NWE2NGQx
ZGNhOWYxZWQ0ZGJkYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBh
cnR5L19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9f
X2luaXRfXy5weQpAQCAtMTI3LDcgKzEyNywxMCBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhv
b2sob2JqZWN0KToKIAogICAgIGRlZiBfaW5zdGFsbF9jb3ZlcmFnZShzZWxmKToKICAgICAgICAg
aW5zdGFsbGVyID0gQXV0b0luc3RhbGxlcih0YXJnZXRfZGlyPV9BVVRPSU5TVEFMTEVEX0RJUikK
LSAgICAgICAgcmV0dXJuIGluc3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cDovL3B5cGkucHl0aG9u
Lm9yZy9wYWNrYWdlcy9zb3VyY2UvYy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1
PTQxMGQ0YzgxNTVhNGRhYjIyMmYyYmM1MTIxMmQ0YTI0IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdl
LTMuNS4xL2NvdmVyYWdlIikKKyAgICAgICAgaW5zdGFsbGVkX3NvbWV0aGluZyA9IGluc3RhbGxl
ci5pbnN0YWxsKHVybD0iaHR0cDovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvYy9j
b3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1PTQxMGQ0YzgxNTVhNGRhYjIyMmYyYmM1
MTIxMmQ0YTI0IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTMuNS4xL2NvdmVyYWdlIikKKyAgICAg
ICAgaWYgbm90IF9BVVRPSU5TVEFMTEVEX0RJUiBpbiBzeXMucGF0aDoKKyAgICAgICAgICAgIHN5
cy5wYXRoLmFwcGVuZChfQVVUT0lOU1RBTExFRF9ESVIpCisgICAgICAgIHJldHVybiBpbnN0YWxs
ZWRfc29tZXRoaW5nCiAKICAgICBkZWYgX2luc3RhbGxfZWxpemEoc2VsZik6CiAgICAgICAgIGlu
c3RhbGxlciA9IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171519</attachid>
            <date>2012-10-30 14:33:10 -0700</date>
            <delta_ts>2012-10-30 15:40:16 -0700</delta_ts>
            <desc>refactor tests a bit</desc>
            <filename>bug-100780-20121030143135.patch</filename>
            <type>text/plain</type>
            <size>3866</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzgyMzhmNzE3Y2QwMDNlNzM4Njg3Mzg5ODZmZTM2ZTk2
NjYyOWMxZi4uNDk4YzA3ZjJiZWVjMmY4YTlhZGIxMWViNTQ0MjVhY2M1YzdkMmNiOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEyLTEwLTMwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHRlc3Qtd2Via2l0cHk6IGZpeCBpbXBvcnQgb2YgY292ZXJhZ2Ugc28gdGhhdCBpdCB3
b3JrcyBpbiBhIGNsZWFuIGluc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBjb3ZlcmFnZSBtb2R1bGUgaXMgd3JpdHRlbiBzbyB0aGF0IHRo
ZSBwYXJlbnQgZGlyZWN0b3J5IG5lZWRzCisgICAgICAgIHRvIGJlIGluIFBZVEhPTlBBVEg7IHdv
cmsgYXJvdW5kIHRoYXQgLi4uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RTdHVicy50ZXN0X2VtcHR5KToKKyAgICAgICAg
KFRlc3RlclRlc3QudGVzdF9pbmRpdmlkdWFsX25hbWVzX2FyZV9ub3RfcnVuX3R3aWNlKToKKyAg
ICAgICAgKFRlc3RlclRlc3QpOgorICAgICAgICAoVGVzdGVyVGVzdC5pbnRlZ3JhdGlvbl90ZXN0
X2NvdmVyYWdlX3dvcmtzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
X19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfY292
ZXJhZ2UpOgorCiAyMDEyLTEwLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIHdlYmtpdHB5OiBjaGFuZ2Ugbm9uLXZlcmJvc2UgbG9nIGZvcm1hdCBmb3Ig
d2Via2l0LXBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0
LnB5CmluZGV4IDIwMjBmNWI2MDA5MDQyYTcxZjQ5YmNmM2IxZjNkYWM0YWI4MWQ2NDEuLjc0Njcw
YjY3MWVmYTVmYzVhNWU2MTFkNGUxNTYzMWU1ZTJiMTgyNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CkBAIC0yMSwxMyArMjEsMjQgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAog
aW1wb3J0IFN0cmluZ0lPCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
IGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRlc3QubWFpbiBpbXBvcnQg
VGVzdGVyLCBfTG9hZGVyCiAKIAorU1RVQlNfQ0xBU1MgPSBfX25hbWVfXyArICIuVGVzdFN0dWJz
IgorCisKK2NsYXNzIFRlc3RTdHVicyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rf
ZW1wdHkoc2VsZik6CisgICAgICAgIHBhc3MKKworCiBjbGFzcyBUZXN0ZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X25vX3Rlc3RzX2ZvdW5kKHNlbGYpOgpAQCAtNTks
MyArNzAsMTUgQEAgY2xhc3MgVGVzdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHBhcmFsbGVsX3Rlc3RzLCBzZXJpYWxfdGVzdHMgPSB0ZXN0ZXIuX3Rlc3RfbmFtZXMoX0xvYWRl
cigpLCBhcmdzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbGxlbF90ZXN0cywgYXJn
cykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VyaWFsX3Rlc3RzLCBbXSkKKworICAgIGRl
ZiBpbnRlZ3JhdGlvbl90ZXN0X2NvdmVyYWdlX3dvcmtzKHNlbGYpOgorICAgICAgICBmaWxlc3lz
dGVtID0gRmlsZVN5c3RlbSgpCisgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCisgICAg
ICAgIG1vZHVsZV9wYXRoID0gZmlsZXN5c3RlbS5wYXRoX3RvX21vZHVsZShzZWxmLl9fbW9kdWxl
X18pCisgICAgICAgIHNjcmlwdF9kaXIgPSBtb2R1bGVfcGF0aFswOm1vZHVsZV9wYXRoLmZpbmQo
J3dlYmtpdHB5JykgLSAxXQorICAgICAgICBwcm9jID0gZXhlY3V0aXZlLnBvcGVuKFtzeXMuZXhl
Y3V0YWJsZSwgZmlsZXN5c3RlbS5qb2luKHNjcmlwdF9kaXIsICd0ZXN0LXdlYmtpdHB5JyksICct
YycsIFNUVUJTX0NMQVNTICsgJy50ZXN0X2VtcHR5J10sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PWV4ZWN1dGl2ZS5QSVBFLCBzdGRlcnI9ZXhlY3V0aXZlLlBJUEUpCisg
ICAgICAgIG91dCwgZXJyID0gcHJvYy5jb21tdW5pY2F0ZSgpCisgICAgICAgIHJldGNvZGUgPSBw
cm9jLnJldHVybmNvZGUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmV0Y29kZSwgMCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdDb3ZlcicgaW4gb3V0KQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CmluZGV4IDE3YWU2MmEwN2ViNzRjMWM3ZmZm
NTg5MjFmYWMwZWFlZWY5MjlkZGEuLjU2N2UxNjU2MWY5OTgxZDc1OThkNjVhNjRkMWRjYTlmMWVk
NGRiZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2lu
aXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18u
cHkKQEAgLTEyNyw3ICsxMjcsMTAgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVj
dCk6CiAKICAgICBkZWYgX2luc3RhbGxfY292ZXJhZ2Uoc2VsZik6CiAgICAgICAgIGluc3RhbGxl
ciA9IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCi0gICAgICAg
IHJldHVybiBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFj
a2FnZXMvc291cmNlL2MvY292ZXJhZ2UvY292ZXJhZ2UtMy41LjEudGFyLmd6I21kNT00MTBkNGM4
MTU1YTRkYWIyMjJmMmJjNTEyMTJkNGEyNCIsIHVybF9zdWJwYXRoPSJjb3ZlcmFnZS0zLjUuMS9j
b3ZlcmFnZSIpCisgICAgICAgIGluc3RhbGxlZF9zb21ldGhpbmcgPSBpbnN0YWxsZXIuaW5zdGFs
bCh1cmw9Imh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2MvY292ZXJhZ2Uv
Y292ZXJhZ2UtMy41LjEudGFyLmd6I21kNT00MTBkNGM4MTU1YTRkYWIyMjJmMmJjNTEyMTJkNGEy
NCIsIHVybF9zdWJwYXRoPSJjb3ZlcmFnZS0zLjUuMS9jb3ZlcmFnZSIpCisgICAgICAgIGlmIG5v
dCBfQVVUT0lOU1RBTExFRF9ESVIgaW4gc3lzLnBhdGg6CisgICAgICAgICAgICBzeXMucGF0aC5h
cHBlbmQoX0FVVE9JTlNUQUxMRURfRElSKQorICAgICAgICByZXR1cm4gaW5zdGFsbGVkX3NvbWV0
aGluZwogCiAgICAgZGVmIF9pbnN0YWxsX2VsaXphKHNlbGYpOgogICAgICAgICBpbnN0YWxsZXIg
PSBBdXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9X0FVVE9JTlNUQUxMRURfRElSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171536</attachid>
            <date>2012-10-30 15:40:18 -0700</date>
            <delta_ts>2012-10-30 15:57:35 -0700</delta_ts>
            <desc>update w/ review feedback</desc>
            <filename>bug-100780-20121030153843.patch</filename>
            <type>text/plain</type>
            <size>9227</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzgyMzhmNzE3Y2QwMDNlNzM4Njg3Mzg5ODZmZTM2ZTk2
NjYyOWMxZi4uNDk4YzA3ZjJiZWVjMmY4YTlhZGIxMWViNTQ0MjVhY2M1YzdkMmNiOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEyLTEwLTMwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHRlc3Qtd2Via2l0cHk6IGZpeCBpbXBvcnQgb2YgY292ZXJhZ2Ugc28gdGhhdCBpdCB3
b3JrcyBpbiBhIGNsZWFuIGluc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBjb3ZlcmFnZSBtb2R1bGUgaXMgd3JpdHRlbiBzbyB0aGF0IHRo
ZSBwYXJlbnQgZGlyZWN0b3J5IG5lZWRzCisgICAgICAgIHRvIGJlIGluIFBZVEhPTlBBVEg7IHdv
cmsgYXJvdW5kIHRoYXQgLi4uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RTdHVicy50ZXN0X2VtcHR5KToKKyAgICAgICAg
KFRlc3RlclRlc3QudGVzdF9pbmRpdmlkdWFsX25hbWVzX2FyZV9ub3RfcnVuX3R3aWNlKToKKyAg
ICAgICAgKFRlc3RlclRlc3QpOgorICAgICAgICAoVGVzdGVyVGVzdC5pbnRlZ3JhdGlvbl90ZXN0
X2NvdmVyYWdlX3dvcmtzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
X19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfY292
ZXJhZ2UpOgorCiAyMDEyLTEwLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIHdlYmtpdHB5OiBjaGFuZ2Ugbm9uLXZlcmJvc2UgbG9nIGZvcm1hdCBmb3Ig
d2Via2l0LXBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFp
bl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0
LnB5CmluZGV4IDIwMjBmNWI2MDA5MDQyYTcxZjQ5YmNmM2IxZjNkYWM0YWI4MWQ2NDEuLjc0Njcw
YjY3MWVmYTVmYzVhNWU2MTFkNGUxNTYzMWU1ZTJiMTgyNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CkBAIC0yMSwxMyArMjEsMjQgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAog
aW1wb3J0IFN0cmluZ0lPCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
IGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnRlc3QubWFpbiBpbXBvcnQg
VGVzdGVyLCBfTG9hZGVyCiAKIAorU1RVQlNfQ0xBU1MgPSBfX25hbWVfXyArICIuVGVzdFN0dWJz
IgorCisKK2NsYXNzIFRlc3RTdHVicyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rf
ZW1wdHkoc2VsZik6CisgICAgICAgIHBhc3MKKworCiBjbGFzcyBUZXN0ZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X25vX3Rlc3RzX2ZvdW5kKHNlbGYpOgpAQCAtNTks
MyArNzAsMTUgQEAgY2xhc3MgVGVzdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHBhcmFsbGVsX3Rlc3RzLCBzZXJpYWxfdGVzdHMgPSB0ZXN0ZXIuX3Rlc3RfbmFtZXMoX0xvYWRl
cigpLCBhcmdzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbGxlbF90ZXN0cywgYXJn
cykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VyaWFsX3Rlc3RzLCBbXSkKKworICAgIGRl
ZiBpbnRlZ3JhdGlvbl90ZXN0X2NvdmVyYWdlX3dvcmtzKHNlbGYpOgorICAgICAgICBmaWxlc3lz
dGVtID0gRmlsZVN5c3RlbSgpCisgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCisgICAg
ICAgIG1vZHVsZV9wYXRoID0gZmlsZXN5c3RlbS5wYXRoX3RvX21vZHVsZShzZWxmLl9fbW9kdWxl
X18pCisgICAgICAgIHNjcmlwdF9kaXIgPSBtb2R1bGVfcGF0aFswOm1vZHVsZV9wYXRoLmZpbmQo
J3dlYmtpdHB5JykgLSAxXQorICAgICAgICBwcm9jID0gZXhlY3V0aXZlLnBvcGVuKFtzeXMuZXhl
Y3V0YWJsZSwgZmlsZXN5c3RlbS5qb2luKHNjcmlwdF9kaXIsICd0ZXN0LXdlYmtpdHB5JyksICct
YycsIFNUVUJTX0NMQVNTICsgJy50ZXN0X2VtcHR5J10sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PWV4ZWN1dGl2ZS5QSVBFLCBzdGRlcnI9ZXhlY3V0aXZlLlBJUEUpCisg
ICAgICAgIG91dCwgZXJyID0gcHJvYy5jb21tdW5pY2F0ZSgpCisgICAgICAgIHJldGNvZGUgPSBw
cm9jLnJldHVybmNvZGUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmV0Y29kZSwgMCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdDb3ZlcicgaW4gb3V0KQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CmluZGV4IDE3YWU2MmEwN2ViNzRjMWM3ZmZm
NTg5MjFmYWMwZWFlZWY5MjlkZGEuLjQ2M2E4NjQwZTkwMTkzODY5YWVjNjM1M2U0NmYyNWU2MDVm
MjJiZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2lu
aXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18u
cHkKQEAgLTk4LDExICs5OCwxMSBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBlcDgtMC41LjAvcGVwOC5weSIpCiAK
ICAgICBkZWYgX2luc3RhbGxfcHlsaW50KHNlbGYpOgotICAgICAgICBpbnN0YWxsZWRfc29tZXRo
aW5nID0gRmFsc2UKKyAgICAgICAgZGlkX2luc3RhbGxfc29tZXRoaW5nID0gRmFsc2UKICAgICAg
ICAgaWYgbm90IHNlbGYuX2ZzLmV4aXN0cyhzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJ
UiwgInB5bGludCIpKToKLSAgICAgICAgICAgIGluc3RhbGxlZF9zb21ldGhpbmcgPSBzZWxmLl9p
bnN0YWxsKCdodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9wL3B5bGludC9w
eWxpbnQtMC4yNS4xLnRhci5neiNtZDU9NzI4YmJjMmIzMzliYzM3NDlhZjAxMzcwOWE3Zjg3YTUn
LCAncHlsaW50LTAuMjUuMScpCisgICAgICAgICAgICBkaWRfaW5zdGFsbF9zb21ldGhpbmcgPSBz
ZWxmLl9pbnN0YWxsKCdodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9wL3B5
bGludC9weWxpbnQtMC4yNS4xLnRhci5neiNtZDU9NzI4YmJjMmIzMzliYzM3NDlhZjAxMzcwOWE3
Zjg3YTUnLCAncHlsaW50LTAuMjUuMScpCiAgICAgICAgICAgICBzZWxmLl9mcy5tb3ZlKHNlbGYu
X2ZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAicHlsaW50LTAuMjUuMSIpLCBzZWxmLl9mcy5q
b2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgInB5bGludCIpKQotICAgICAgICByZXR1cm4gaW5zdGFs
bGVkX3NvbWV0aGluZworICAgICAgICByZXR1cm4gZGlkX2luc3RhbGxfc29tZXRoaW5nCiAKICAg
ICAjIGF1dG9pbnN0YWxsZWQuYnVpbGRib3QgaXMgdXNlZCBieSBCdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9tYXN0ZXJjZmdfdW5pdHRlc3QucHkKICAgICAjIGFuZCBz
aG91bGQgaWRlYWxseSBtYXRjaCB0aGUgdmVyc2lvbiBvZiBCdWlsZEJvdCB1c2VkIGF0IGJ1aWxk
LndlYmtpdC5vcmcuCkBAIC0xMTQsMjAgKzExNCwyNiBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9y
dEhvb2sob2JqZWN0KToKICAgICAgICAgIyB3aXRob3V0IGluY2x1ZGluZyBvdGhlciBtb2R1bGVz
IGFzIGEgc2lkZSBlZmZlY3QuCiAgICAgICAgIGppbmphX2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FV
VE9JTlNUQUxMRURfRElSLCAiamluamEyIikKICAgICAgICAgaW5zdGFsbGVyID0gQXV0b0luc3Rh
bGxlcihhcHBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj1qaW5qYV9kaXIpCi0g
ICAgICAgIGluc3RhbGxlZF9zb21ldGhpbmcgPSBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHA6
Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL0ovSmluamEyL0ppbmphMi0yLjYudGFy
Lmd6I21kNT0xYzQ5YTg4MjVjOTkzYmZkY2Y1NWJiMzY4OTdkMjhhMiIsCisgICAgICAgIGRpZF9p
bnN0YWxsX3NvbWV0aGluZyA9IGluc3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cDovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvSi9KaW5qYTIvSmluamEyLTIuNi50YXIuZ3ojbWQ1PTFj
NDlhODgyNWM5OTNiZmRjZjU1YmIzNjg5N2QyOGEyIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9zdWJwYXRoPSJKaW5qYTItMi42L2ppbmphMiIp
CiAKICAgICAgICAgU1FMQWxjaGVteV9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVE
X0RJUiwgInNxbGFsY2hlbXkiKQogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVyKGFw
cGVuZF90b19zZWFyY2hfcGF0aD1UcnVlLCB0YXJnZXRfZGlyPVNRTEFsY2hlbXlfZGlyKQotICAg
ICAgICBpbnN0YWxsZWRfc29tZXRoaW5nIHw9IGluc3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cDov
L3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvUy9TUUxBbGNoZW15L1NRTEFsY2hlbXkt
MC43LjcudGFyLmd6I21kNT1kZGY2ZGY3ZTAxNGNlYTMxOGZhOTgxMzY0ZjNmOTNiOSIsCisgICAg
ICAgIGRpZF9pbnN0YWxsX3NvbWV0aGluZyB8PSBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHA6
Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL1MvU1FMQWxjaGVteS9TUUxBbGNoZW15
LTAuNy43LnRhci5neiNtZDU9ZGRmNmRmN2UwMTRjZWEzMThmYTk4MTM2NGYzZjkzYjkiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9zdWJwYXRo
PSJTUUxBbGNoZW15LTAuNy43L2xpYi9zcWxhbGNoZW15IikKIAotICAgICAgICBpbnN0YWxsZWRf
c29tZXRoaW5nIHw9IHNlbGYuX2luc3RhbGwoImh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2Fn
ZXMvc291cmNlL2IvYnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3ojbWQ1PWI2NzI3ZDI4
MTBjNjkyMDYyYzY1NzQ5MmJjYmVhYzZhIiwgImJ1aWxkYm90LTAuOC42cDEvYnVpbGRib3QiKQot
ICAgICAgICByZXR1cm4gaW5zdGFsbGVkX3NvbWV0aGluZworICAgICAgICBkaWRfaW5zdGFsbF9z
b21ldGhpbmcgfD0gc2VsZi5faW5zdGFsbCgiaHR0cDovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdl
cy9zb3VyY2UvYi9idWlsZGJvdC9idWlsZGJvdC0wLjguNnAxLnRhci5neiNtZDU9YjY3MjdkMjgx
MGM2OTIwNjJjNjU3NDkyYmNiZWFjNmEiLCAiYnVpbGRib3QtMC44LjZwMS9idWlsZGJvdCIpCisg
ICAgICAgIHJldHVybiBkaWRfaW5zdGFsbF9zb21ldGhpbmcKIAogICAgIGRlZiBfaW5zdGFsbF9j
b3ZlcmFnZShzZWxmKToKICAgICAgICAgaW5zdGFsbGVyID0gQXV0b0luc3RhbGxlcih0YXJnZXRf
ZGlyPV9BVVRPSU5TVEFMTEVEX0RJUikKLSAgICAgICAgcmV0dXJuIGluc3RhbGxlci5pbnN0YWxs
KHVybD0iaHR0cDovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvYy9jb3ZlcmFnZS9j
b3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1PTQxMGQ0YzgxNTVhNGRhYjIyMmYyYmM1MTIxMmQ0YTI0
IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTMuNS4xL2NvdmVyYWdlIikKKyAgICAgICAgZGlkX2lu
c3RhbGxfc29tZXRoaW5nID0gaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwOi8vcHlwaS5weXRo
b24ub3JnL3BhY2thZ2VzL3NvdXJjZS9jL2NvdmVyYWdlL2NvdmVyYWdlLTMuNS4xLnRhci5neiNt
ZDU9NDEwZDRjODE1NWE0ZGFiMjIyZjJiYzUxMjEyZDRhMjQiLCB1cmxfc3VicGF0aD0iY292ZXJh
Z2UtMy41LjEvY292ZXJhZ2UiKQorCisgICAgICAgICMgTm90ZSB0aGF0IGNvdmVyYWdlIG5lZWRz
IHRvIGJlIHVuZGVyIGEgZGlyZWN0b3J5IGFscmVhZHkgaW4gc3lzLnBhdGggZm9yIGl0cworICAg
ICAgICAjIGludGVybmFsIGltcG9ydHMgdG8gd29yayBjb3JyZWN0bHkgOiguCisgICAgICAgIGlm
IG5vdCBfQVVUT0lOU1RBTExFRF9ESVIgaW4gc3lzLnBhdGg6CisgICAgICAgICAgICBzeXMucGF0
aC5hcHBlbmQoX0FVVE9JTlNUQUxMRURfRElSKQorICAgICAgICByZXR1cm4gZGlkX2luc3RhbGxf
c29tZXRoaW5nCiAKICAgICBkZWYgX2luc3RhbGxfZWxpemEoc2VsZik6CiAgICAgICAgIGluc3Rh
bGxlciA9IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCkBAIC0x
MzksMjIgKzE0NSwyMiBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAg
ICAgICAgIyBvcmdhbml6YXRpb24gcHVycG9zZXMuCiAgICAgICAgIGlyY19kaXIgPSBzZWxmLl9m
cy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgImlyYyIpCiAgICAgICAgIGluc3RhbGxlciA9IEF1
dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1pcmNfZGlyKQotICAgICAgICBpbnN0YWxsZWRfc29tZXRo
aW5nID0gaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdl
Lm5ldC9wcm9qZWN0L3B5dGhvbi1pcmNsaWIvcHl0aG9uLWlyY2xpYi8wLjQuOC9weXRob24taXJj
bGliLTAuNC44LnppcCIsCisgICAgICAgIGRpZF9pbnN0YWxsX3NvbWV0aGluZyA9IGluc3RhbGxl
ci5pbnN0YWxsKHVybD0iaHR0cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9w
eXRob24taXJjbGliL3B5dGhvbi1pcmNsaWIvMC40LjgvcHl0aG9uLWlyY2xpYi0wLjQuOC56aXAi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX3N1
YnBhdGg9ImlyY2xpYi5weSIpCi0gICAgICAgIGluc3RhbGxlZF9zb21ldGhpbmcgfD0gaW5zdGFs
bGVyLmluc3RhbGwodXJsPSJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0
L3B5dGhvbi1pcmNsaWIvcHl0aG9uLWlyY2xpYi8wLjQuOC9weXRob24taXJjbGliLTAuNC44Lnpp
cCIsCisgICAgICAgIGRpZF9pbnN0YWxsX3NvbWV0aGluZyB8PSBpbnN0YWxsZXIuaW5zdGFsbCh1
cmw9Imh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3Byb2plY3QvcHl0aG9uLWlyY2xp
Yi9weXRob24taXJjbGliLzAuNC44L3B5dGhvbi1pcmNsaWItMC40LjguemlwIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9ImlyY2JvdC5weSIpCi0gICAgICAgIHJldHVy
biBpbnN0YWxsZWRfc29tZXRoaW5nCisgICAgICAgIHJldHVybiBkaWRfaW5zdGFsbF9zb21ldGhp
bmcKIAogICAgIGRlZiBfaW5zdGFsbF93ZWJwYWdlcmVwbGF5KHNlbGYpOgotICAgICAgICBpbnN0
YWxsZWRfc29tZXRoaW5nID0gRmFsc2UKKyAgICAgICAgZGlkX2luc3RhbGxfc29tZXRoaW5nID0g
RmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX2ZzLmV4aXN0cyhzZWxmLl9mcy5qb2luKF9BVVRP
SU5TVEFMTEVEX0RJUiwgIndlYnBhZ2VyZXBsYXkiKSk6Ci0gICAgICAgICAgICBpbnN0YWxsZWRf
c29tZXRoaW5nID0gc2VsZi5faW5zdGFsbCgiaHR0cDovL3dlYi1wYWdlLXJlcGxheS5nb29nbGVj
b2RlLmNvbS9maWxlcy93ZWJwYWdlcmVwbGF5LTEuMS4yLnRhci5neiIsICJ3ZWJwYWdlcmVwbGF5
LTEuMS4yIikKKyAgICAgICAgICAgIGRpZF9pbnN0YWxsX3NvbWV0aGluZyA9IHNlbGYuX2luc3Rh
bGwoImh0dHA6Ly93ZWItcGFnZS1yZXBsYXkuZ29vZ2xlY29kZS5jb20vZmlsZXMvd2VicGFnZXJl
cGxheS0xLjEuMi50YXIuZ3oiLCAid2VicGFnZXJlcGxheS0xLjEuMiIpCiAgICAgICAgICAgICBz
ZWxmLl9mcy5tb3ZlKHNlbGYuX2ZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAid2VicGFnZXJl
cGxheS0xLjEuMiIpLCBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgIndlYnBhZ2Vy
ZXBsYXkiKSkKIAogICAgICAgICBpbml0X3BhdGggPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFM
TEVEX0RJUiwgIndlYnBhZ2VyZXBsYXkiLCAiX19pbml0X18ucHkiKQogICAgICAgICBpZiBub3Qg
c2VsZi5fZnMuZXhpc3RzKGluaXRfcGF0aCk6CiAgICAgICAgICAgICBzZWxmLl9mcy53cml0ZV90
ZXh0X2ZpbGUoaW5pdF9wYXRoLCAiIikKLSAgICAgICAgcmV0dXJuIGluc3RhbGxlZF9zb21ldGhp
bmcKKyAgICAgICAgcmV0dXJuIGRpZF9pbnN0YWxsX3NvbWV0aGluZwogCiAgICAgZGVmIF9pbnN0
YWxsKHNlbGYsIHVybCwgdXJsX3N1YnBhdGgpOgogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5z
dGFsbGVyKHRhcmdldF9kaXI9X0FVVE9JTlNUQUxMRURfRElSKQpAQCAtMTY3LDcgKzE3Myw3IEBA
IHN5cy5tZXRhX3BhdGguYXBwZW5kKF9ob29rKQogCiBkZWYgYXV0b2luc3RhbGxfZXZlcnl0aGlu
ZygpOgogICAgIGluc3RhbGxfbWV0aG9kcyA9IFttZXRob2QgZm9yIG1ldGhvZCBpbiBkaXIoX2hv
b2suX19jbGFzc19fKSBpZiBtZXRob2Quc3RhcnRzd2l0aCgnX2luc3RhbGxfJyldCi0gICAgaW5z
dGFsbGVkX3NvbWV0aGluZyA9IEZhbHNlCisgICAgZGlkX2luc3RhbGxfc29tZXRoaW5nID0gRmFs
c2UKICAgICBmb3IgbWV0aG9kIGluIGluc3RhbGxfbWV0aG9kczoKLSAgICAgICAgaW5zdGFsbGVk
X3NvbWV0aGluZyB8PSBnZXRhdHRyKF9ob29rLCBtZXRob2QpKCkKLSAgICByZXR1cm4gaW5zdGFs
bGVkX3NvbWV0aGluZworICAgICAgICBkaWRfaW5zdGFsbF9zb21ldGhpbmcgfD0gZ2V0YXR0cihf
aG9vaywgbWV0aG9kKSgpCisgICAgcmV0dXJuIGRpZF9pbnN0YWxsX3NvbWV0aGluZwo=
</data>
<flag name="review"
          id="185498"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>