<?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>38775</bug_id>
          
          <creation_ts>2010-05-07 14:20:37 -0700</creation_ts>
          <short_desc>rebaseline-chromium-webkit-tests doesn&apos;t do diffs right with a Git checkout of WebKit</short_desc>
          <delta_ts>2010-07-01 01:15:33 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>morrita</cc>
    
    <cc>victorw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>222611</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 14:20:37 -0700</bug_when>
    <thetext>if you run rebaseline-chromium-webkit-tests using a Git checkout of WebKit, it can&apos;t produce the correct results.html file to show the diffs - it assumes you can do an &apos;svn cat&apos; of the old -expected file.

See

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py#L697

in particular around line 719.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222663</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-07 15:47:13 -0700</bug_when>
    <thetext>This script should use scm.py to abstract away the differences between svn and git to avoid this entire class of bugs instead of re-inventing scmy.py as it does now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222668</commentid>
    <comment_count>2</comment_count>
      <attachid>55425</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 15:53:16 -0700</bug_when>
    <thetext>Created attachment 55425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222670</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 15:55:04 -0700</bug_when>
    <thetext>here&apos;s a minimal patch to make things work in Git; we should really abstract all the SCM stuff out though. There&apos;s probably code already written to do this.

Also, we should diff the two files directly rather using the port routines rather than using svn diff. Haven&apos;t made that change yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222671</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 15:55:29 -0700</bug_when>
    <thetext>whoops; didn&apos;t see Adam&apos;s comment, but I agree completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222684</commentid>
    <comment_count>5</comment_count>
    <who name="Victor Wang">victorw</who>
    <bug_when>2010-05-07 16:04:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; whoops; didn&apos;t see Adam&apos;s comment, but I agree completely.

Agreed. There are a couple of things I like to refactor the rebaseline tool after it has been upstreamed. Working with git (the tool only works with svn when it was written last year) is one item on the list, other items like better summarized messages, better working with the upstream infrastructure (port, multiple test_expectations etc). I have some other tasks on my Q2 list, but should be able to get into this in later Q2 or earlier Q3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243629</commentid>
    <comment_count>6</comment_count>
      <attachid>59887</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-28 02:11:40 -0700</bug_when>
    <thetext>Created attachment 59887
patch v0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243630</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-28 02:13:25 -0700</bug_when>
    <thetext>As we introduce SCM abstraction to rebaseline_chromium_webkit_test,
now we can replace diff and cat with them. Here is an attempt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243712</commentid>
    <comment_count>8</comment_count>
      <attachid>59887</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2010-06-28 08:42:08 -0700</bug_when>
    <thetext>Comment on attachment 59887
patch v0

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:441
 +              self._bogus_dir = os.path.join(parent_dir, &quot;temp_svn_config&quot;)
Should _bogus_dir be created for win?

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:462
 +              return self.run([&apos;svn&apos;, &apos;diff&apos;, path])
Missing &quot;--config-dir&quot;?

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:467
 +          return self.run([&apos;svn&apos;, &apos;cat&apos;, path])
Add &quot;-r BASE&quot; to svn cat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244093</commentid>
    <comment_count>9</comment_count>
      <attachid>59986</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-28 22:13:10 -0700</bug_when>
    <thetext>Created attachment 59986
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244102</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-28 22:24:45 -0700</bug_when>
    <thetext>Hi Victor, thank you for reviewing!
I updated the patch.

(In reply to comment #8)
&gt; (From update of attachment 59887 [details])
&gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:441
&gt;  +              self._bogus_dir = os.path.join(parent_dir, &quot;temp_svn_config&quot;)
&gt; Should _bogus_dir be created for win?
Fixed. (I broke the code during copying...)

&gt; 
&gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:462
&gt;  +              return self.run([&apos;svn&apos;, &apos;diff&apos;, path])
&gt; Missing &quot;--config-dir&quot;?
Fixed.

&gt; 
&gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:467
&gt;  +          return self.run([&apos;svn&apos;, &apos;cat&apos;, path])
&gt; Add &quot;-r BASE&quot; to svn cat?
Fixed, and added test for SVN.show_head()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244835</commentid>
    <comment_count>11</comment_count>
    <who name="Victor Wang">victorw</who>
    <bug_when>2010-06-30 10:34:43 -0700</bug_when>
    <thetext>Ok to me, you need a reviewer to review this.

(In reply to comment #10)
&gt; Hi Victor, thank you for reviewing!
&gt; I updated the patch.
&gt; 
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 59887 [details] [details])
&gt; &gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:441
&gt; &gt;  +              self._bogus_dir = os.path.join(parent_dir, &quot;temp_svn_config&quot;)
&gt; &gt; Should _bogus_dir be created for win?
&gt; Fixed. (I broke the code during copying...)
&gt; 
&gt; &gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:462
&gt; &gt;  +              return self.run([&apos;svn&apos;, &apos;diff&apos;, path])
&gt; &gt; Missing &quot;--config-dir&quot;?
&gt; Fixed.
&gt; 
&gt; &gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:467
&gt; &gt;  +          return self.run([&apos;svn&apos;, &apos;cat&apos;, path])
&gt; &gt; Add &quot;-r BASE&quot; to svn cat?
&gt; Fixed, and added test for SVN.show_head()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245056</commentid>
    <comment_count>12</comment_count>
      <attachid>59986</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-30 19:09:39 -0700</bug_when>
    <thetext>Comment on attachment 59986
patch v1

Cannot we test diff_for_file?

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:228
 +      def diff_for_file(self, path, optios={}):
Hmm... I&apos;d prefer using keyword arguments for all possible options.

def diff_for_file(self, use_bogus_dir=True, git_cached=True, ...)

so we won&apos;t make typo. I think this way is more consistent with other code in this file (see changed_file for example)

By the way, do we really need these options?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245102</commentid>
    <comment_count>13</comment_count>
      <attachid>60197</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-30 22:45:03 -0700</bug_when>
    <thetext>Created attachment 60197
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245105</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-30 22:47:10 -0700</bug_when>
    <thetext>Attachment 60197 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKitTools/Scripts/webkitpy/common/checkout/scm.py:433:  trailing whitespace  [pep8/W291] [5]
WebKitTools/Scripts/webkitpy/common/checkout/scm_unittest.py:1172:  trailing whitespace  [pep8/W291] [5]
WebKitTools/Scripts/webkitpy/common/checkout/scm_unittest.py:1187:  trailing whitespace  [pep8/W291] [5]
Total errors found: 3 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245106</commentid>
    <comment_count>15</comment_count>
      <attachid>60197</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-30 22:47:46 -0700</bug_when>
    <thetext>Comment on attachment 60197
patch v2

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:455
 +      def diff_for_file(self, path, use_bogus_dir=False, log=None, **kwargs):
Still this code allows typo. I&apos;d just remove kwargs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245109</commentid>
    <comment_count>16</comment_count>
      <attachid>60198</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-30 22:52:15 -0700</bug_when>
    <thetext>Created attachment 60198
patch v2.1; fixed style violation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245122</commentid>
    <comment_count>17</comment_count>
      <attachid>60202</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-30 23:20:26 -0700</bug_when>
    <thetext>Created attachment 60202
patch v3; removed redundant options</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245124</commentid>
    <comment_count>18</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-06-30 23:22:15 -0700</bug_when>
    <thetext>Hi Hamaji-san, thank you reviewing again.
I updated the patch.

&gt; Still this code allows typo. I&apos;d just remove kwargs.
Ah, I get what you meant to say.
And I removed options which can be altered by appropriate default behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245127</commentid>
    <comment_count>19</comment_count>
      <attachid>60202</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-30 23:23:26 -0700</bug_when>
    <thetext>Comment on attachment 60202
patch v3; removed redundant options

Looks good. Thanks for your update!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245187</commentid>
    <comment_count>20</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-01 01:15:33 -0700</bug_when>
    <thetext>Committed r62236: &lt;http://trac.webkit.org/changeset/62236&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55425</attachid>
            <date>2010-05-07 15:53:16 -0700</date>
            <delta_ts>2010-06-28 02:11:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38775-20100507155314.patch</filename>
            <type>text/plain</type>
            <size>1851</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3MGIxMGYwM2FmMDA4ODZhOGFlMzQyYmE4OGE1NTk2MjlkMWJmZmQ1Li5mNTQ3YjIy
M2RiZTc0M2MwNTllYWVkYTNmN2ZhODNjMmU3MTFmZDI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDUtMDcgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgLSBoYW5kbGUgZGlmZnMgY29ycmVjdGx5IHdpdGggYSBHaXQKKyAg
ICAgICAgY2hlY2tvdXQgb2YgV2ViS2l0IChvbmx5IHdvcmtlZCB3LyBTVk4gYmVmb3JlKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3NzUKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzLnB5OgorCiAyMDEwLTA1LTA3ICBDaHJpcyBKZXJkb25layAgPGNqZXJk
b25la0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFz
ZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5k
ZXggMjExY2U5MzIzNTQwOGNkY2ExNGM3ZjRiZTQ5MDM5Yjc1ZDM2YWZiNC4uNzZlNzJkZDBjNTcw
ZWRkNzhkYTU5YWI0OWJiOGY1Mzc5YWZiOTJiOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKQEAgLTcxNiw3ICs3MTYsMTIgQEAgY2xh
c3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lX2Z1bGxw
YXRoLCBuZXdfZmlsZSkKIAogICAgICAgICAjIEdldCB0aGUgb2xkIGJhc2VsaW5lIGZyb20gU1ZO
IGFuZCBzYXZlIHRvIHRoZSBodG1sIGRpcmVjdG9yeS4KLSAgICAgICAgb3V0cHV0ID0gcnVuX3No
ZWxsKFsnc3ZuJywgJ2NhdCcsICctcicsICdCQVNFJywgYmFzZWxpbmVfZnVsbHBhdGhdKQorICAg
ICAgICBpZiBzZWxmLl9yZXBvX3R5cGUgPT0gUkVQT19TVk46CisgICAgICAgICAgICBvdXRwdXQg
PSBydW5fc2hlbGwoWydzdm4nLCAnY2F0JywgJy1yJywgJ0JBU0UnLCBiYXNlbGluZV9mdWxscGF0
aF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbmZvID0gYmFzZWxpbmVfZnVsbHBhdGgu
ZmluZCgnTGF5b3V0VGVzdHMvJykKKyAgICAgICAgICAgIG91dHB1dCA9IHJ1bl9zaGVsbChbJ2dp
dCcsICdzaG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0hFQUQ6JyArIGJh
c2VsaW5lX2Z1bGxwYXRoW2luZm86XV0pCiAgICAgICAgIGlmIChub3Qgb3V0cHV0KSBvciAob3V0
cHV0LnVwcGVyKCkucnN0cmlwKCkuZW5kc3dpdGgoCiAgICAgICAgICAgICAnTk8gU1VDSCBGSUxF
IE9SIERJUkVDVE9SWScpKToKICAgICAgICAgICAgIF9sb2cuaW5mbygnICBObyBiYXNlIGZpbGU6
ICIlcyInLCBiYXNlbGluZV9mdWxscGF0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59887</attachid>
            <date>2010-06-28 02:11:40 -0700</date>
            <delta_ts>2010-06-28 22:13:04 -0700</delta_ts>
            <desc>patch v0</desc>
            <filename>bug-38775-20100628181137.patch</filename>
            <type>text/plain</type>
            <size>9856</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYmE0ZDU5NWRiODBjZTBmNzI0ZWRlOWYyMTZiNDcwZTk2NmJjOGUyLi44ODViMmNj
Y2Q1Yjc1M2Q5YmMxMGIxMzlmZDEzNjU4YzNjNmY2YjE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDYtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgZG9lc24ndCBkbyBkaWZmcyByaWdodCB3aXRoIGEgR2l0IGNoZWNr
b3V0IG9mIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg3NzUKKworICAgICAgICAtIEludHJvZHVjZWQgU0NNLnNob3dfYmFzZSgpIGFuZCBT
Q00uZGlmZigpLgorICAgICAgICAtIFJlcGxhY2VkIGRpcmVjdCBzdm4gaW52b2NhdGlvbnMgd2l0
aCBzaG93X2Jhc2UoKSBhbmQgZGlmZigpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weToKKwogMjAxMC0w
Ni0yNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L3NjbS5weQppbmRleCBjNzYzZTdiMDE3MWZiZjIxODc5M2ZiZTIzZmVhMGRiNWRmZDE0
ODI3Li4zZTQ3NjZjMmE5MWM1YzY0NzQ3NjcxZWRkYTljYmIyMTg0NjI1YjNlIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CkBA
IC0zMSw2ICszMSw4IEBACiAKIGltcG9ydCBvcwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCitpbXBv
cnQgc2h1dGlsCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgpAQCAtMjIzLDYgKzIyNSwxMiBAQCBjbGFzcyBTQ006
CiAgICAgZGVmIGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgc2Vs
Zi5fc3ViY2xhc3NfbXVzdF9pbXBsZW1lbnQoKQogCisgICAgZGVmIGRpZmZfZm9yX2ZpbGUoc2Vs
ZiwgcGF0aCwgb3B0aW9zPXt9KToKKyAgICAgICAgc2VsZi5fc3ViY2xhc3NfbXVzdF9pbXBsZW1l
bnQoKQorCisgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKKyAgICAgICAgc2VsZi5fc3Vi
Y2xhc3NfbXVzdF9pbXBsZW1lbnQoKQorCiAgICAgZGVmIGFwcGx5X3JldmVyc2VfZGlmZihzZWxm
LCByZXZpc2lvbik6CiAgICAgICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKIApA
QCAtMjY4LDcgKzI3Niw4IEBAIGNsYXNzIFNWTihTQ00pOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBjd2QpOgogICAgICAgICBTQ00uX19pbml0X18oc2VsZiwgY3dkKQogICAgICAgICBzZWxmLmNh
Y2hlZF92ZXJzaW9uID0gTm9uZQotICAgIAorICAgICAgICBzZWxmLl9ib2d1c19kaXIgPSBOb25l
CisKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGluX3dvcmtpbmdfZGlyZWN0b3J5KHBhdGgp
OgogICAgICAgICByZXR1cm4gb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4ocGF0aCwgJy5zdm4n
KSkKQEAgLTQxNSw2ICs0MjQsNDggQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290CiAgICAgICAg
IHJldHVybiBzZWxmLnJ1bihbJ3N2bicsICdkaWZmJywgJy1jJywgcmV2aXNpb25dKQogCisgICAg
ZGVmIF9zZXR1cF9ib2d1c19kaXIoc2VsZiwgb3B0aW9ucyk6CisgICAgICAgIGlmIG5vdCBvcHRp
b25zLmdldCgndXNlX2JvZ3VzX2RpcicpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMg
SWYgdGhlIHVzZXIgc3BlY2lmaWVkIGEgY3VzdG9tIGRpZmYgY29tbWFuZCBpbiB0aGVpciBzdm4g
Y29uZmlnCisgICAgICAgICMgZmlsZSwgdGhlbiBpdCdsbCBiZSB1c2VkIHdoZW4gd2UgZG8gc3Zu
IGRpZmYsIHdoaWNoIHdlIGRvbid0IHdhbnQKKyAgICAgICAgIyB0byBoYXBwZW4gc2luY2Ugd2Ug
d2FudCB0aGUgdW5pZmllZCBkaWZmLiAgVXNpbmcgLS1kaWZmLWNtZD1kaWZmCisgICAgICAgICMg
ZG9lc24ndCBhbHdheXMgd29yaywgc2luY2UgdGhleSBjYW4gaGF2ZSBhbm90aGVyIGRpZmYgZXhl
Y3V0YWJsZQorICAgICAgICAjIGluIHRoZWlyIHBhdGggdGhhdCBnaXZlcyBkaWZmZXJlbnQgbGlu
ZSBlbmRpbmdzLiAgU28gd2UgdXNlIGEKKyAgICAgICAgIyBib2d1cyB0ZW1wIGRpcmVjdG9yeSBh
cyB0aGUgY29uZmlnIGRpcmVjdG9yeSwgd2hpY2ggZ2V0cworICAgICAgICAjIGFyb3VuZCB0aGVz
ZSBwcm9ibGVtcy4KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpOgor
ICAgICAgICAgICAgcGFyZW50X2RpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcGFyZW50X2RpciA9IHN5cy5wYXRoWzBdICAjIHRlbXBkaXIgaXMg
bm90IHNlY3VyZS4KKyAgICAgICAgICAgIHNlbGYuX2JvZ3VzX2RpciA9IG9zLnBhdGguam9pbihw
YXJlbnRfZGlyLCAidGVtcF9zdm5fY29uZmlnIikKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKHNlbGYuX2JvZ3VzX2Rpcik6CisgICAgICAgICAgICBvcy5ta2RpcihzZWxmLl9ib2d1c19k
aXIpCisgICAgICAgICAgICBzZWxmLl9kZWxldGVfYm9ndXNfZGlyID0gVHJ1ZQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpciA9IEZhbHNlCisgICAgICAg
IGlmIG9wdGlvbnMuZ2V0KCdsb2cnKToKKyAgICAgICAgICAgIG9wdGlvbnNbJ2xvZyddLmRlYnVn
KCcgIEh0bWw6IHRlbXAgY29uZmlnIGRpcjogIiVzIi4nLCBzZWxmLl9ib2d1c19kaXIpCisKKyAg
ICBkZWYgX3RlYXJkb3duX2JvZ3VzX2RpcihzZWxmLCBvcHRpb25zKToKKyAgICAgICAgaWYgbm90
IG9wdGlvbnMuZ2V0KCd1c2VfYm9ndXNfZGlyJyk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgaWYgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpcjoKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUo
c2VsZi5fYm9ndXNfZGlyLCBUcnVlKQorICAgICAgICAgICAgaWYgb3B0aW9ucy5nZXQoJ2xvZycp
OgorICAgICAgICAgICAgICAgIG9wdGlvbnNbJ2xvZyddLmRlYnVnKCcgIEh0bWw6IHJlbW92ZWQg
dGVtcCBjb25maWcgZGlyOiAiJXMiLicsIHNlbGYuX2JvZ3VzX2RpcikKKyAgICAgICAgc2VsZi5f
Ym9ndXNfZGlyID0gTm9uZQorCisgICAgZGVmIGRpZmZfZm9yX2ZpbGUoc2VsZiwgcGF0aCwgb3B0
aW9ucz17fSk6CisgICAgICAgIHNlbGYuX3NldHVwX2JvZ3VzX2RpcihvcHRpb25zKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydzdm4nLCAnZGlmZicsIHBhdGhd
KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fdGVhcmRvd25fYm9ndXNfZGly
KG9wdGlvbnMpCisKKyAgICBkZWYgc2hvd19oZWFkKHNlbGYsIHBhdGgpOgorICAgICAgICByZXR1
cm4gc2VsZi5ydW4oWydzdm4nLCAnY2F0JywgcGF0aF0pCisKICAgICBkZWYgX3JlcG9zaXRvcnlf
dXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi52YWx1ZV9mcm9tX3N2bl9pbmZvKHNlbGYu
Y2hlY2tvdXRfcm9vdCwgJ1VSTCcpCiAKQEAgLTQ4Niw2ICs1MzcsMTEgQEAgY2xhc3MgR2l0KFND
TSk6CiAgICAgICAgIHJldHVybiBjaGVja291dF9yb290CiAKICAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgdG9fb2JqZWN0X25hbWUoY2xzLCBmaWxlcGF0aCk6CisgICAgICAgIHJvb3RfZW5kX3dp
dGhfc2xhc2ggPSBvcy5wYXRoLmpvaW4oY2xzLmZpbmRfY2hlY2tvdXRfcm9vdChvcy5wYXRoLmRp
cm5hbWUoZmlsZXBhdGgpKSwgJycpCisgICAgICAgIHJldHVybiBmaWxlcGF0aC5yZXBsYWNlKHJv
b3RfZW5kX3dpdGhfc2xhc2gsICcnKQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHJlYWRf
Z2l0X2NvbmZpZyhjbHMsIGtleSk6CiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHByb2Jh
Ymx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290LgogICAgICAgICByZXR1cm4gcnVuX2NvbW1h
bmQoWyJnaXQiLCAiY29uZmlnIiwga2V5XSwKQEAgLTYwNiw2ICs2NjIsMTcgQEAgY2xhc3MgR2l0
KFNDTSk6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJvbV9zdm5fcmV2
aXNpb24ocmV2aXNpb24pCiAgICAgICAgIHJldHVybiBzZWxmLmNyZWF0ZV9wYXRjaChnaXRfY29t
bWl0KQogCisgICAgZGVmIGRpZmZfZm9yX2ZpbGUoc2VsZiwgcGF0aCwgb3B0aW9ucz17fSk6Cisg
ICAgICAgIHByaW50ICJkaWZmIiwgcGF0aCwgb3MuZ2V0Y3dkKCkKKyAgICAgICAgYXJncyA9IFsn
Z2l0JywgJ2RpZmYnXQorICAgICAgICBpZiBvcHRpb25zLmdldCgnZ2l0X2NhY2hlZCcpOgorICAg
ICAgICAgICAgYXJncy5hcHBlbmQoIi0tY2FjaGVkIikKKyAgICAgICAgYXJncy5hcHBlbmQocGF0
aCkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKGFyZ3MpCisKKyAgICBkZWYgc2hvd19oZWFkKHNl
bGYsIHBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQnLCAnc2hvdycsICdIRUFE
OicgKyBzZWxmLnRvX29iamVjdF9uYW1lKHBhdGgpXSkKKwogICAgIGRlZiBjb21taXR0ZXJfZW1h
aWxfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9IHNl
bGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKICAgICAgICAgY29tbWl0
dGVyX2VtYWlsID0gc2VsZi5ydW4oWyJnaXQiLCAibG9nIiwgIi0xIiwgIi0tcHJldHR5PWZvcm1h
dDolY2UiLCBnaXRfY29tbWl0XSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weQppbmRleCA1Nzc4NmM5
OGYxM2NlMWNhNDBmYzljNzFiYzI0NzkwNmQ4NGZjMzNkLi5mMjc0YjRmNzc0NDc3MmQzYjQ3MGY5
ZDA2Nzc4MGE4NWRkYTg2YTkzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY21fdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5CkBAIC0xMTI0LDYg
KzExMjQsMTUgQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKICAgICAgICAgc2VsZi5zY20u
ZGVsZXRlKCd0ZXN0X2ZpbGVfY29tbWl0MScpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgidGVz
dF9maWxlX2NvbW1pdDEiIGluIHNlbGYuc2NtLmRlbGV0ZWRfZmlsZXMoKSkKIAorICAgIGRlZiB0
ZXN0X3RvX29iamVjdF9uYW1lKHNlbGYpOgorICAgICAgICByZWxwYXRoID0gJ3Rlc3RfZmlsZV9j
b21taXQxJworICAgICAgICBmdWxscGF0aCA9IG9zLnBhdGguam9pbihzZWxmLmdpdF9jaGVja291
dF9wYXRoLCByZWxwYXRoKQorICAgICAgICBzZWxmLl90d29fbG9jYWxfY29tbWl0cygpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVscGF0aCwgc2VsZi5zY20udG9fb2JqZWN0X25hbWUoZnVs
bHBhdGgpKQorCisgICAgZGVmIHRlc3Rfc2hvd19oZWFkKHNlbGYpOgorICAgICAgICBzZWxmLl90
d29fbG9jYWxfY29tbWl0cygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIm1vcmUgdGVzdCBj
b250ZW50Iiwgc2VsZi5zY20uc2hvd19oZWFkKCd0ZXN0X2ZpbGVfY29tbWl0MScpKQogCiBpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAwOWQzNWFj
YjU1ODg3MTk2ZWY5OTY1YTEyN2IyNzU1NDBiYTUxMmM1Li5hZjMyNDgzZjkxMmFjOTdhMmQzZTc5
ZDdmMmE0NDQ4MDNmZDNlMGU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2No
cm9taXVtX3dlYmtpdF90ZXN0cy5weQpAQCAtNTgsNyArNTgsNyBAQCBpbXBvcnQgdXJsbGliCiBp
bXBvcnQgd2ViYnJvd3NlcgogaW1wb3J0IHppcGZpbGUKIAotZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgcnVuX2NvbW1hbmQKK2Zyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IHJ1bl9jb21tYW5kLCBTY3JpcHRFcnJvcgogZnJvbSB3
ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQogaW1w
b3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gYXMgc2NtCiAKQEAgLTYxOSw4ICs2MTks
MTMgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgX2xvZy5pbmZvKCcgIEh0
bWw6IGNvcGllZCBuZXcgYmFzZWxpbmUgZmlsZSBmcm9tICIlcyIgdG8gIiVzIi4nLAogICAgICAg
ICAgICAgICAgICAgYmFzZWxpbmVfZnVsbHBhdGgsIG5ld19maWxlKQogCi0gICAgICAgICMgR2V0
IHRoZSBvbGQgYmFzZWxpbmUgZnJvbSBTVk4gYW5kIHNhdmUgdG8gdGhlIGh0bWwgZGlyZWN0b3J5
LgotICAgICAgICBvdXRwdXQgPSBydW5fc2hlbGwoWydzdm4nLCAnY2F0JywgJy1yJywgJ0JBU0Un
LCBiYXNlbGluZV9mdWxscGF0aF0pCisgICAgICAgICMgR2V0IHRoZSBvbGQgYmFzZWxpbmUgZnJv
bSB0aGUgcmVwb3NpdG9yeSBhbmQgc2F2ZSB0byB0aGUgaHRtbCBkaXJlY3RvcnkuCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3NjbS5zaG93X2hlYWQoYmFzZWxpbmVf
ZnVsbHBhdGgpCisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgIF9s
b2cuaW5mbyhlKQorICAgICAgICAgICAgb3V0cHV0ID0gIiIKKwogICAgICAgICBpZiAobm90IG91
dHB1dCkgb3IgKG91dHB1dC51cHBlcigpLnJzdHJpcCgpLmVuZHN3aXRoKAogICAgICAgICAgICAg
J05PIFNVQ0ggRklMRSBPUiBESVJFQ1RPUlknKSk6CiAgICAgICAgICAgICBfbG9nLmluZm8oJyAg
Tm8gYmFzZSBmaWxlOiAiJXMiJywgYmFzZWxpbmVfZnVsbHBhdGgpCkBAIC02MzcsMjcgKzY0Miw3
IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAKICAgICAgICAgIyBHZXQgdGhlIGRpZmYg
YmV0d2VlbiBvbGQgYW5kIG5ldyBiYXNlbGluZXMgYW5kIHNhdmUgdG8gdGhlIGh0bWwgZGlyLgog
ICAgICAgICBpZiBiYXNlbGluZV9maWxlbmFtZS51cHBlcigpLmVuZHN3aXRoKCcuVFhUJyk6Ci0g
ICAgICAgICAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhIGN1c3RvbSBkaWZmIGNvbW1hbmQg
aW4gdGhlaXIgc3ZuIGNvbmZpZwotICAgICAgICAgICAgIyBmaWxlLCB0aGVuIGl0J2xsIGJlIHVz
ZWQgd2hlbiB3ZSBkbyBzdm4gZGlmZiwgd2hpY2ggd2UgZG9uJ3Qgd2FudAotICAgICAgICAgICAg
IyB0byBoYXBwZW4gc2luY2Ugd2Ugd2FudCB0aGUgdW5pZmllZCBkaWZmLiAgVXNpbmcgLS1kaWZm
LWNtZD1kaWZmCi0gICAgICAgICAgICAjIGRvZXNuJ3QgYWx3YXlzIHdvcmssIHNpbmNlIHRoZXkg
Y2FuIGhhdmUgYW5vdGhlciBkaWZmIGV4ZWN1dGFibGUKLSAgICAgICAgICAgICMgaW4gdGhlaXIg
cGF0aCB0aGF0IGdpdmVzIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MuICBTbyB3ZSB1c2UgYQotICAg
ICAgICAgICAgIyBib2d1cyB0ZW1wIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGRpcmVjdG9yeSwg
d2hpY2ggZ2V0cwotICAgICAgICAgICAgIyBhcm91bmQgdGhlc2UgcHJvYmxlbXMuCi0gICAgICAg
ICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIik6Ci0gICAgICAgICAgICAgICAg
cGFyZW50X2RpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBwYXJlbnRfZGlyID0gc3lzLnBhdGhbMF0gICMgdGVtcGRpciBpcyBub3Qg
c2VjdXJlLgotICAgICAgICAgICAgYm9ndXNfZGlyID0gb3MucGF0aC5qb2luKHBhcmVudF9kaXIs
ICJ0ZW1wX3N2bl9jb25maWciKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnICBIdG1sOiB0ZW1w
IGNvbmZpZyBkaXI6ICIlcyIuJywgYm9ndXNfZGlyKQotICAgICAgICAgICAgaWYgbm90IG9zLnBh
dGguZXhpc3RzKGJvZ3VzX2Rpcik6Ci0gICAgICAgICAgICAgICAgb3MubWtkaXIoYm9ndXNfZGly
KQotICAgICAgICAgICAgICAgIGRlbGV0ZV9ib2d1c19kaXIgPSBUcnVlCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGRlbGV0ZV9ib2d1c19kaXIgPSBGYWxzZQotCi0gICAgICAg
ICAgICBvdXRwdXQgPSBydW5fc2hlbGwoWyJzdm4iLCAiZGlmZiIsICItLWNvbmZpZy1kaXIiLCBi
b2d1c19kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmVfZnVsbHBh
dGhdKQorICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fc2NtLmRpZmZfZm9yX2ZpbGUoYmFzZWxp
bmVfZnVsbHBhdGgsIG9wdGlvbnM9eyd1c2VfYm9ndXNfZGlyJzogVHJ1ZSwgJ2xvZyc6IF9sb2cs
ICdnaXRfY2FjaGVkJzogVHJ1ZX0pCiAgICAgICAgICAgICBpZiBvdXRwdXQ6CiAgICAgICAgICAg
ICAgICAgZGlmZl9maWxlID0gZ2V0X3Jlc3VsdF9maWxlX2Z1bGxwYXRoKAogICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLmh0bWxfZGlyZWN0b3J5LCBiYXNlbGluZV9maWxlbmFtZSwK
QEAgLTY2OCwxMSArNjUzLDYgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBfbG9nLmluZm8oJyAgSHRtbDogY3JlYXRlZCBiYXNlbGluZSBkaWZmIGZpbGU6ICIl
cyIuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9maWxlKQogCi0gICAgICAgICAg
ICBpZiBkZWxldGVfYm9ndXNfZGlyOgotICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoYm9n
dXNfZGlyLCBUcnVlKQotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgSHRtbDogcmVtb3Zl
ZCB0ZW1wIGNvbmZpZyBkaXI6ICIlcyIuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
Z3VzX2RpcikKLQogY2xhc3MgSHRtbEdlbmVyYXRvcihvYmplY3QpOgogICAgICIiIkNsYXNzIHRv
IGdlbmVyYXRlIHJlYmFzZWxpbmluZyByZXN1bHQgY29tcGFyaXNvbiBodG1sLiIiIgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59986</attachid>
            <date>2010-06-28 22:13:10 -0700</date>
            <delta_ts>2010-06-30 22:44:57 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>bug-38775-20100629141308.patch</filename>
            <type>text/plain</type>
            <size>10523</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYmE0ZDU5NWRiODBjZTBmNzI0ZWRlOWYyMTZiNDcwZTk2NmJjOGUyLi44ODViMmNj
Y2Q1Yjc1M2Q5YmMxMGIxMzlmZDEzNjU4YzNjNmY2YjE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDYtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgZG9lc24ndCBkbyBkaWZmcyByaWdodCB3aXRoIGEgR2l0IGNoZWNr
b3V0IG9mIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg3NzUKKworICAgICAgICAtIEludHJvZHVjZWQgU0NNLnNob3dfYmFzZSgpIGFuZCBT
Q00uZGlmZigpLgorICAgICAgICAtIFJlcGxhY2VkIGRpcmVjdCBzdm4gaW52b2NhdGlvbnMgd2l0
aCBzaG93X2Jhc2UoKSBhbmQgZGlmZigpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weToKKwogMjAxMC0w
Ni0yNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L3NjbS5weQppbmRleCBjNzYzZTdiMDE3MWZiZjIxODc5M2ZiZTIzZmVhMGRiNWRmZDE0
ODI3Li40ZWZkN2JmYTlmOWI2ZWNjZDUwN2E4NWUyOGNhZDI0ZGQyZWNmZDQwIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CkBA
IC0zMSw2ICszMSw4IEBACiAKIGltcG9ydCBvcwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCitpbXBv
cnQgc2h1dGlsCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgpAQCAtMjIzLDYgKzIyNSwxMiBAQCBjbGFzcyBTQ006
CiAgICAgZGVmIGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgc2Vs
Zi5fc3ViY2xhc3NfbXVzdF9pbXBsZW1lbnQoKQogCisgICAgZGVmIGRpZmZfZm9yX2ZpbGUoc2Vs
ZiwgcGF0aCwgb3B0aW9zPXt9KToKKyAgICAgICAgc2VsZi5fc3ViY2xhc3NfbXVzdF9pbXBsZW1l
bnQoKQorCisgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKKyAgICAgICAgc2VsZi5fc3Vi
Y2xhc3NfbXVzdF9pbXBsZW1lbnQoKQorCiAgICAgZGVmIGFwcGx5X3JldmVyc2VfZGlmZihzZWxm
LCByZXZpc2lvbik6CiAgICAgICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKIApA
QCAtMjY4LDcgKzI3Niw4IEBAIGNsYXNzIFNWTihTQ00pOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBjd2QpOgogICAgICAgICBTQ00uX19pbml0X18oc2VsZiwgY3dkKQogICAgICAgICBzZWxmLmNh
Y2hlZF92ZXJzaW9uID0gTm9uZQotICAgIAorICAgICAgICBzZWxmLl9ib2d1c19kaXIgPSBOb25l
CisKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGluX3dvcmtpbmdfZGlyZWN0b3J5KHBhdGgp
OgogICAgICAgICByZXR1cm4gb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4ocGF0aCwgJy5zdm4n
KSkKQEAgLTQxNSw2ICs0MjQsNTMgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290CiAgICAgICAg
IHJldHVybiBzZWxmLnJ1bihbJ3N2bicsICdkaWZmJywgJy1jJywgcmV2aXNpb25dKQogCisgICAg
ZGVmIF9zZXR1cF9ib2d1c19kaXIoc2VsZiwgb3B0aW9ucyk6CisgICAgICAgIGlmIG5vdCBvcHRp
b25zLmdldCgndXNlX2JvZ3VzX2RpcicpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMg
SWYgdGhlIHVzZXIgc3BlY2lmaWVkIGEgY3VzdG9tIGRpZmYgY29tbWFuZCBpbiB0aGVpciBzdm4g
Y29uZmlnCisgICAgICAgICMgZmlsZSwgdGhlbiBpdCdsbCBiZSB1c2VkIHdoZW4gd2UgZG8gc3Zu
IGRpZmYsIHdoaWNoIHdlIGRvbid0IHdhbnQKKyAgICAgICAgIyB0byBoYXBwZW4gc2luY2Ugd2Ug
d2FudCB0aGUgdW5pZmllZCBkaWZmLiAgVXNpbmcgLS1kaWZmLWNtZD1kaWZmCisgICAgICAgICMg
ZG9lc24ndCBhbHdheXMgd29yaywgc2luY2UgdGhleSBjYW4gaGF2ZSBhbm90aGVyIGRpZmYgZXhl
Y3V0YWJsZQorICAgICAgICAjIGluIHRoZWlyIHBhdGggdGhhdCBnaXZlcyBkaWZmZXJlbnQgbGlu
ZSBlbmRpbmdzLiAgU28gd2UgdXNlIGEKKyAgICAgICAgIyBib2d1cyB0ZW1wIGRpcmVjdG9yeSBh
cyB0aGUgY29uZmlnIGRpcmVjdG9yeSwgd2hpY2ggZ2V0cworICAgICAgICAjIGFyb3VuZCB0aGVz
ZSBwcm9ibGVtcy4KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpOgor
ICAgICAgICAgICAgcGFyZW50X2RpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcGFyZW50X2RpciA9IHN5cy5wYXRoWzBdICAjIHRlbXBkaXIgaXMg
bm90IHNlY3VyZS4KKworICAgICAgICBzZWxmLl9ib2d1c19kaXIgPSBvcy5wYXRoLmpvaW4ocGFy
ZW50X2RpciwgInRlbXBfc3ZuX2NvbmZpZyIpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhzZWxmLl9ib2d1c19kaXIpOgorICAgICAgICAgICAgb3MubWtkaXIoc2VsZi5fYm9ndXNfZGly
KQorICAgICAgICAgICAgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpciA9IFRydWUKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXIgPSBGYWxzZQorICAgICAgICBp
ZiBvcHRpb25zLmdldCgnbG9nJyk6CisgICAgICAgICAgICBvcHRpb25zWydsb2cnXS5kZWJ1Zygn
ICBIdG1sOiB0ZW1wIGNvbmZpZyBkaXI6ICIlcyIuJywgc2VsZi5fYm9ndXNfZGlyKQorCisgICAg
ZGVmIF90ZWFyZG93bl9ib2d1c19kaXIoc2VsZiwgb3B0aW9ucyk6CisgICAgICAgIGlmIG5vdCBv
cHRpb25zLmdldCgndXNlX2JvZ3VzX2RpcicpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IGlmIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXI6CisgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNl
bGYuX2JvZ3VzX2RpciwgVHJ1ZSkKKyAgICAgICAgICAgIGlmIG9wdGlvbnMuZ2V0KCdsb2cnKToK
KyAgICAgICAgICAgICAgICBvcHRpb25zWydsb2cnXS5kZWJ1ZygnICBIdG1sOiByZW1vdmVkIHRl
bXAgY29uZmlnIGRpcjogIiVzIi4nLCBzZWxmLl9ib2d1c19kaXIpCisgICAgICAgIHNlbGYuX2Jv
Z3VzX2RpciA9IE5vbmUKKworICAgIGRlZiBkaWZmX2Zvcl9maWxlKHNlbGYsIHBhdGgsIG9wdGlv
bnM9e30pOgorICAgICAgICBzZWxmLl9zZXR1cF9ib2d1c19kaXIob3B0aW9ucykKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgYXJncyA9IFsnc3ZuJywgJ2RpZmYnXQorICAgICAgICAgICAgaWYg
c2VsZi5fYm9ndXNfZGlyOgorICAgICAgICAgICAgICAgIGFyZ3MgKz0gWyctLWNvbmZpZy1kaXIn
LCBzZWxmLl9ib2d1c19kaXJdCisgICAgICAgICAgICBhcmdzLmFwcGVuZChwYXRoKQorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYucnVuKGFyZ3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBzZWxmLl90ZWFyZG93bl9ib2d1c19kaXIob3B0aW9ucykKKworICAgIGRlZiBzaG93X2hlYWQo
c2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLnJ1bihbJ3N2bicsICdjYXQnLCAnLXIn
LCAnQkFTRScsIHBhdGhdKQorCiAgICAgZGVmIF9yZXBvc2l0b3J5X3VybChzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYudmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNrb3V0X3Jvb3QsICdV
UkwnKQogCkBAIC00ODYsNiArNTQyLDExIEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICByZXR1
cm4gY2hlY2tvdXRfcm9vdAogCiAgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRvX29iamVjdF9u
YW1lKGNscywgZmlsZXBhdGgpOgorICAgICAgICByb290X2VuZF93aXRoX3NsYXNoID0gb3MucGF0
aC5qb2luKGNscy5maW5kX2NoZWNrb3V0X3Jvb3Qob3MucGF0aC5kaXJuYW1lKGZpbGVwYXRoKSks
ICcnKQorICAgICAgICByZXR1cm4gZmlsZXBhdGgucmVwbGFjZShyb290X2VuZF93aXRoX3NsYXNo
LCAnJykKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiByZWFkX2dpdF9jb25maWcoY2xzLCBr
ZXkpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYu
Y2hlY2tvdXRfcm9vdC4KICAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsiZ2l0IiwgImNvbmZp
ZyIsIGtleV0sCkBAIC02MDYsNiArNjY3LDE3IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICBn
aXRfY29tbWl0ID0gc2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQog
ICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVfcGF0Y2goZ2l0X2NvbW1pdCkKIAorICAgIGRlZiBk
aWZmX2Zvcl9maWxlKHNlbGYsIHBhdGgsIG9wdGlvbnM9e30pOgorICAgICAgICBwcmludCAiZGlm
ZiIsIHBhdGgsIG9zLmdldGN3ZCgpCisgICAgICAgIGFyZ3MgPSBbJ2dpdCcsICdkaWZmJ10KKyAg
ICAgICAgaWYgb3B0aW9ucy5nZXQoJ2dpdF9jYWNoZWQnKToKKyAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLWNhY2hlZCIpCisgICAgICAgIGFyZ3MuYXBwZW5kKHBhdGgpCisgICAgICAgIHJldHVy
biBzZWxmLnJ1bihhcmdzKQorCisgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYucnVuKFsnZ2l0JywgJ3Nob3cnLCAnSEVBRDonICsgc2VsZi50b19vYmpl
Y3RfbmFtZShwYXRoKV0pCisKICAgICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbihz
ZWxmLCByZXZpc2lvbik6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJv
bV9zdm5fcmV2aXNpb24ocmV2aXNpb24pCiAgICAgICAgIGNvbW1pdHRlcl9lbWFpbCA9IHNlbGYu
cnVuKFsiZ2l0IiwgImxvZyIsICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNlIiwgZ2l0X2NvbW1p
dF0pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY21fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY21fdW5pdHRlc3QucHkKaW5kZXggNTc3ODZjOThmMTNjZTFjYTQwZmM5Yzcx
YmMyNDc5MDZkODRmYzMzZC4uOGMzYWRmZGVlZmMxZWQzM2Y3ZjY4ODhjNjUzYzY1NzJlMzhmNGFm
MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weQpAQCAtNjUxLDYgKzY1MSwxMSBAQCBRMWRUQngw
QUFBQjQyaXRnNEdsZ1lKakd3TUREeU9ETXhNRHczNEdCZ1FFQUpQUURKQT09CiAgICAgICAgIHNl
bGYuc2NtLnByb3BzZXQoInN2bjptaW1lLXR5cGUiLCBleHBlY3RlZF9taW1lX3R5cGUsIGZpbGVw
YXRoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX21pbWVfdHlwZSwgc2VsZi5z
Y20ucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIGZpbGVwYXRoKSkKIAorICAgIGRlZiB0ZXN0X3No
b3dfaGVhZChzZWxmKToKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmls
ZSIsIHUiSGVsbG8hIiwgInV0Zi04IikKKyAgICAgICAgU1ZOVGVzdFJlcG9zaXRvcnkuX3N2bl9j
b21taXQoImZvdXJ0aCBjb21taXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJIZWxsbyEi
LCBzZWxmLnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZScpKQorCiBjbGFzcyBHaXRUZXN0KFNDTVRl
c3QpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtMTEyNCw2ICsxMTI5LDE1IEBAIGNsYXNz
IEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNlbGYuc2NtLmRlbGV0ZSgndGVzdF9maWxl
X2NvbW1pdDEnKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoInRlc3RfZmlsZV9jb21taXQxIiBp
biBzZWxmLnNjbS5kZWxldGVkX2ZpbGVzKCkpCiAKKyAgICBkZWYgdGVzdF90b19vYmplY3RfbmFt
ZShzZWxmKToKKyAgICAgICAgcmVscGF0aCA9ICd0ZXN0X2ZpbGVfY29tbWl0MScKKyAgICAgICAg
ZnVsbHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRfY2hlY2tvdXRfcGF0aCwgcmVscGF0aCkK
KyAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlbHBhdGgsIHNlbGYuc2NtLnRvX29iamVjdF9uYW1lKGZ1bGxwYXRoKSkKKworICAgIGRl
ZiB0ZXN0X3Nob3dfaGVhZChzZWxmKToKKyAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMo
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJtb3JlIHRlc3QgY29udGVudCIsIHNlbGYuc2Nt
LnNob3dfaGVhZCgndGVzdF9maWxlX2NvbW1pdDEnKSkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5kZXggMDlkMzVhY2I1NTg4NzE5NmVmOTk2NWEx
MjdiMjc1NTQwYmE1MTJjNS4uYWYzMjQ4M2Y5MTJhYzk3YTJkM2U3OWQ3ZjJhNDQ0ODAzZmQzZTBl
NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMucHkKQEAgLTU4LDcgKzU4LDcgQEAgaW1wb3J0IHVybGxpYgogaW1wb3J0IHdlYmJyb3dzZXIK
IGltcG9ydCB6aXBmaWxlCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUg
aW1wb3J0IHJ1bl9jb21tYW5kCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KIGltcG9ydCB3ZWJraXRweS5jb21t
b24uY2hlY2tvdXQuc2NtIGFzIHNjbQogCkBAIC02MTksOCArNjE5LDEzIEBAIGNsYXNzIFJlYmFz
ZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIF9sb2cuaW5mbygnICBIdG1sOiBjb3BpZWQgbmV3IGJh
c2VsaW5lIGZpbGUgZnJvbSAiJXMiIHRvICIlcyIuJywKICAgICAgICAgICAgICAgICAgIGJhc2Vs
aW5lX2Z1bGxwYXRoLCBuZXdfZmlsZSkKIAotICAgICAgICAjIEdldCB0aGUgb2xkIGJhc2VsaW5l
IGZyb20gU1ZOIGFuZCBzYXZlIHRvIHRoZSBodG1sIGRpcmVjdG9yeS4KLSAgICAgICAgb3V0cHV0
ID0gcnVuX3NoZWxsKFsnc3ZuJywgJ2NhdCcsICctcicsICdCQVNFJywgYmFzZWxpbmVfZnVsbHBh
dGhdKQorICAgICAgICAjIEdldCB0aGUgb2xkIGJhc2VsaW5lIGZyb20gdGhlIHJlcG9zaXRvcnkg
YW5kIHNhdmUgdG8gdGhlIGh0bWwgZGlyZWN0b3J5LgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBvdXRwdXQgPSBzZWxmLl9zY20uc2hvd19oZWFkKGJhc2VsaW5lX2Z1bGxwYXRoKQorICAgICAg
ICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAgICAgICBfbG9nLmluZm8oZSkKKyAgICAg
ICAgICAgIG91dHB1dCA9ICIiCisKICAgICAgICAgaWYgKG5vdCBvdXRwdXQpIG9yIChvdXRwdXQu
dXBwZXIoKS5yc3RyaXAoKS5lbmRzd2l0aCgKICAgICAgICAgICAgICdOTyBTVUNIIEZJTEUgT1Ig
RElSRUNUT1JZJykpOgogICAgICAgICAgICAgX2xvZy5pbmZvKCcgIE5vIGJhc2UgZmlsZTogIiVz
IicsIGJhc2VsaW5lX2Z1bGxwYXRoKQpAQCAtNjM3LDI3ICs2NDIsNyBAQCBjbGFzcyBSZWJhc2Vs
aW5lcihvYmplY3QpOgogCiAgICAgICAgICMgR2V0IHRoZSBkaWZmIGJldHdlZW4gb2xkIGFuZCBu
ZXcgYmFzZWxpbmVzIGFuZCBzYXZlIHRvIHRoZSBodG1sIGRpci4KICAgICAgICAgaWYgYmFzZWxp
bmVfZmlsZW5hbWUudXBwZXIoKS5lbmRzd2l0aCgnLlRYVCcpOgotICAgICAgICAgICAgIyBJZiB0
aGUgdXNlciBzcGVjaWZpZWQgYSBjdXN0b20gZGlmZiBjb21tYW5kIGluIHRoZWlyIHN2biBjb25m
aWcKLSAgICAgICAgICAgICMgZmlsZSwgdGhlbiBpdCdsbCBiZSB1c2VkIHdoZW4gd2UgZG8gc3Zu
IGRpZmYsIHdoaWNoIHdlIGRvbid0IHdhbnQKLSAgICAgICAgICAgICMgdG8gaGFwcGVuIHNpbmNl
IHdlIHdhbnQgdGhlIHVuaWZpZWQgZGlmZi4gIFVzaW5nIC0tZGlmZi1jbWQ9ZGlmZgotICAgICAg
ICAgICAgIyBkb2Vzbid0IGFsd2F5cyB3b3JrLCBzaW5jZSB0aGV5IGNhbiBoYXZlIGFub3RoZXIg
ZGlmZiBleGVjdXRhYmxlCi0gICAgICAgICAgICAjIGluIHRoZWlyIHBhdGggdGhhdCBnaXZlcyBk
aWZmZXJlbnQgbGluZSBlbmRpbmdzLiAgU28gd2UgdXNlIGEKLSAgICAgICAgICAgICMgYm9ndXMg
dGVtcCBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBkaXJlY3RvcnksIHdoaWNoIGdldHMKLSAgICAg
ICAgICAgICMgYXJvdW5kIHRoZXNlIHByb2JsZW1zLgotICAgICAgICAgICAgaWYgc3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoIndpbiIpOgotICAgICAgICAgICAgICAgIHBhcmVudF9kaXIgPSB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFy
ZW50X2RpciA9IHN5cy5wYXRoWzBdICAjIHRlbXBkaXIgaXMgbm90IHNlY3VyZS4KLSAgICAgICAg
ICAgIGJvZ3VzX2RpciA9IG9zLnBhdGguam9pbihwYXJlbnRfZGlyLCAidGVtcF9zdm5fY29uZmln
IikKLSAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgSHRtbDogdGVtcCBjb25maWcgZGlyOiAiJXMi
LicsIGJvZ3VzX2RpcikKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhib2d1c19k
aXIpOgotICAgICAgICAgICAgICAgIG9zLm1rZGlyKGJvZ3VzX2RpcikKLSAgICAgICAgICAgICAg
ICBkZWxldGVfYm9ndXNfZGlyID0gVHJ1ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBkZWxldGVfYm9ndXNfZGlyID0gRmFsc2UKLQotICAgICAgICAgICAgb3V0cHV0ID0gcnVu
X3NoZWxsKFsic3ZuIiwgImRpZmYiLCAiLS1jb25maWctZGlyIiwgYm9ndXNfZGlyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lX2Z1bGxwYXRoXSkKKyAgICAgICAgICAg
IG91dHB1dCA9IHNlbGYuX3NjbS5kaWZmX2Zvcl9maWxlKGJhc2VsaW5lX2Z1bGxwYXRoLCBvcHRp
b25zPXsndXNlX2JvZ3VzX2Rpcic6IFRydWUsICdsb2cnOiBfbG9nLCAnZ2l0X2NhY2hlZCc6IFRy
dWV9KQogICAgICAgICAgICAgaWYgb3V0cHV0OgogICAgICAgICAgICAgICAgIGRpZmZfZmlsZSA9
IGdldF9yZXN1bHRfZmlsZV9mdWxscGF0aCgKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5odG1sX2RpcmVjdG9yeSwgYmFzZWxpbmVfZmlsZW5hbWUsCkBAIC02NjgsMTEgKzY1Myw2
IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgX2xvZy5pbmZv
KCcgIEh0bWw6IGNyZWF0ZWQgYmFzZWxpbmUgZGlmZiBmaWxlOiAiJXMiLicsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZmZfZmlsZSkKIAotICAgICAgICAgICAgaWYgZGVsZXRlX2JvZ3Vz
X2RpcjoKLSAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGJvZ3VzX2RpciwgVHJ1ZSkKLSAg
ICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgIEh0bWw6IHJlbW92ZWQgdGVtcCBjb25maWcgZGly
OiAiJXMiLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib2d1c19kaXIpCi0KIGNsYXNz
IEh0bWxHZW5lcmF0b3Iob2JqZWN0KToKICAgICAiIiJDbGFzcyB0byBnZW5lcmF0ZSByZWJhc2Vs
aW5pbmcgcmVzdWx0IGNvbXBhcmlzb24gaHRtbC4iIiIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60197</attachid>
            <date>2010-06-30 22:45:03 -0700</date>
            <delta_ts>2010-06-30 22:52:08 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug-38775-20100701144501.patch</filename>
            <type>text/plain</type>
            <size>11993</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYmE0ZDU5NWRiODBjZTBmNzI0ZWRlOWYyMTZiNDcwZTk2NmJjOGUyLi5jZTBhNjUw
ODA4YzM3ZmExMTgyYTEzZDBjM2MwYTUwMTFlZTZmNWRhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDYtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgZG9lc24ndCBkbyBkaWZmcyByaWdodCB3aXRoIGEgR2l0IGNoZWNr
b3V0IG9mIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg3NzUKKworICAgICAgICAtIEludHJvZHVjZWQgU0NNLnNob3dfaGVhZCgpIGFuZCBT
Q00uZGlmZl9mb3JfZmlsZSgpLgorICAgICAgICAtIFJlcGxhY2VkIGRpcmVjdCBzdm4gaW52b2Nh
dGlvbnMgd2l0aCBuZXdseSBpbXBsZW1lbnQgU0NNIG1ldGhvZHMuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDEwLTA2LTI3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CmluZGV4IGM3NjNlN2IwMTcxZmJmMjE4NzkzZmJl
MjNmZWEwZGI1ZGZkMTQ4MjcuLmEyZDc5ZGZhMzM0MjE3OTFmMjllMDA0ZmJiNGZmOTgzZDM0Zjll
ZWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20ucHkKQEAgLTMxLDYgKzMxLDggQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgcmUKK2lt
cG9ydCBzeXMKK2ltcG9ydCBzaHV0aWwKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyIGltcG9ydCBVc2VyCkBAIC0yMjMsNiArMjI1LDEy
IEBAIGNsYXNzIFNDTToKICAgICBkZWYgZGlmZl9mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24p
OgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2ltcGxlbWVudCgpCiAKKyAgICBkZWYgZGlm
Zl9mb3JfZmlsZShzZWxmLCBwYXRoLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX3N1YmNsYXNz
X211c3RfaW1wbGVtZW50KCkKKworICAgIGRlZiBzaG93X2hlYWQoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKKwogICAgIGRlZiBhcHBseV9yZXZl
cnNlX2RpZmYoc2VsZiwgcmV2aXNpb24pOgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2lt
cGxlbWVudCgpCiAKQEAgLTI2OCw3ICsyNzYsOCBAQCBjbGFzcyBTVk4oU0NNKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgY3dkKToKICAgICAgICAgU0NNLl9faW5pdF9fKHNlbGYsIGN3ZCkKICAg
ICAgICAgc2VsZi5jYWNoZWRfdmVyc2lvbiA9IE5vbmUKLSAgICAKKyAgICAgICAgc2VsZi5fYm9n
dXNfZGlyID0gTm9uZQorCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2Rp
cmVjdG9yeShwYXRoKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2lu
KHBhdGgsICcuc3ZuJykpCkBAIC00MTUsNiArNDI0LDQ4IEBAIGNsYXNzIFNWTihTQ00pOgogICAg
ICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRf
cm9vdAogICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydzdm4nLCAnZGlmZicsICctYycsIHJldmlz
aW9uXSkKIAorICAgIGRlZiBfYm9ndXNfZGlyX25hbWUoc2VsZik6CisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKKyAgICAgICAgICAgIHBhcmVudF9kaXIgPSB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhcmVudF9kaXIg
PSBzeXMucGF0aFswXSAgIyB0ZW1wZGlyIGlzIG5vdCBzZWN1cmUuCisgICAgICAgIHJldHVybiBv
cy5wYXRoLmpvaW4ocGFyZW50X2RpciwgInRlbXBfc3ZuX2NvbmZpZyIpCisgICAgICAgIAorICAg
IGRlZiBfc2V0dXBfYm9ndXNfZGlyKHNlbGYsIHVzZV9ib2d1c19kaXIsIGxvZyk6CisgICAgICAg
IGlmIG5vdCB1c2VfYm9ndXNfZGlyOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYu
X2JvZ3VzX2RpciA9IHNlbGYuX2JvZ3VzX2Rpcl9uYW1lKCkKKyAgICAgICAgaWYgbm90IG9zLnBh
dGguZXhpc3RzKHNlbGYuX2JvZ3VzX2Rpcik6CisgICAgICAgICAgICBvcy5ta2RpcihzZWxmLl9i
b2d1c19kaXIpCisgICAgICAgICAgICBzZWxmLl9kZWxldGVfYm9ndXNfZGlyID0gVHJ1ZQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpciA9IEZhbHNlCisg
ICAgICAgIGlmIGxvZzoKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygnICBIdG1sOiB0ZW1wIGNvbmZp
ZyBkaXI6ICIlcyIuJywgc2VsZi5fYm9ndXNfZGlyKQorCisgICAgZGVmIF90ZWFyZG93bl9ib2d1
c19kaXIoc2VsZiwgdXNlX2JvZ3VzX2RpciwgbG9nKToKKyAgICAgICAgaWYgbm90IHVzZV9ib2d1
c19kaXI6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgc2VsZi5fZGVsZXRlX2JvZ3Vz
X2RpcjoKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5fYm9ndXNfZGlyLCBUcnVlKQor
ICAgICAgICAgICAgaWYgbG9nOgorICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygnICBIdG1sOiBy
ZW1vdmVkIHRlbXAgY29uZmlnIGRpcjogIiVzIi4nLCBzZWxmLl9ib2d1c19kaXIpCisgICAgICAg
IHNlbGYuX2JvZ3VzX2RpciA9IE5vbmUKKworICAgIGRlZiBkaWZmX2Zvcl9maWxlKHNlbGYsIHBh
dGgsIHVzZV9ib2d1c19kaXI9RmFsc2UsIGxvZz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNl
bGYuX3NldHVwX2JvZ3VzX2Rpcih1c2VfYm9ndXNfZGlyLCBsb2cpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGFyZ3MgPSBbJ3N2bicsICdkaWZmJ10KKyAgICAgICAgICAgIGlmIHNlbGYuX2Jv
Z3VzX2RpcjoKKyAgICAgICAgICAgICAgICBhcmdzICs9IFsnLS1jb25maWctZGlyJywgc2VsZi5f
Ym9ndXNfZGlyXQorICAgICAgICAgICAgYXJncy5hcHBlbmQocGF0aCkKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLnJ1bihhcmdzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5f
dGVhcmRvd25fYm9ndXNfZGlyKHVzZV9ib2d1c19kaXIsIGxvZykKKworICAgIGRlZiBzaG93X2hl
YWQoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLnJ1bihbJ3N2bicsICdjYXQnLCAn
LXInLCAnQkFTRScsIHBhdGhdKQorCiAgICAgZGVmIF9yZXBvc2l0b3J5X3VybChzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYudmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNrb3V0X3Jvb3Qs
ICdVUkwnKQogCkBAIC00ODYsNiArNTM3LDExIEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICBy
ZXR1cm4gY2hlY2tvdXRfcm9vdAogCiAgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRvX29iamVj
dF9uYW1lKGNscywgZmlsZXBhdGgpOgorICAgICAgICByb290X2VuZF93aXRoX3NsYXNoID0gb3Mu
cGF0aC5qb2luKGNscy5maW5kX2NoZWNrb3V0X3Jvb3Qob3MucGF0aC5kaXJuYW1lKGZpbGVwYXRo
KSksICcnKQorICAgICAgICByZXR1cm4gZmlsZXBhdGgucmVwbGFjZShyb290X2VuZF93aXRoX3Ns
YXNoLCAnJykKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiByZWFkX2dpdF9jb25maWcoY2xz
LCBrZXkpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNl
bGYuY2hlY2tvdXRfcm9vdC4KICAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsiZ2l0IiwgImNv
bmZpZyIsIGtleV0sCkBAIC02MDYsNiArNjYyLDE3IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAg
ICBnaXRfY29tbWl0ID0gc2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9u
KQogICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVfcGF0Y2goZ2l0X2NvbW1pdCkKIAorICAgIGRl
ZiBkaWZmX2Zvcl9maWxlKHNlbGYsIHBhdGgsIGdpdF9jYWNoZT1GYWxzZSwgKiprd2FyZ3MpOgor
ICAgICAgICBwcmludCAiZGlmZiIsIHBhdGgsIG9zLmdldGN3ZCgpCisgICAgICAgIGFyZ3MgPSBb
J2dpdCcsICdkaWZmJ10KKyAgICAgICAgaWYgZ2l0X2NhY2hlOgorICAgICAgICAgICAgYXJncy5h
cHBlbmQoIi0tY2FjaGVkIikKKyAgICAgICAgYXJncy5hcHBlbmQocGF0aCkKKyAgICAgICAgcmV0
dXJuIHNlbGYucnVuKGFyZ3MpCisKKyAgICBkZWYgc2hvd19oZWFkKHNlbGYsIHBhdGgpOgorICAg
ICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQnLCAnc2hvdycsICdIRUFEOicgKyBzZWxmLnRvX29i
amVjdF9uYW1lKHBhdGgpXSkKKwogICAgIGRlZiBjb21taXR0ZXJfZW1haWxfZm9yX3JldmlzaW9u
KHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9IHNlbGYuZ2l0X2NvbW1pdF9m
cm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKICAgICAgICAgY29tbWl0dGVyX2VtYWlsID0gc2Vs
Zi5ydW4oWyJnaXQiLCAibG9nIiwgIi0xIiwgIi0tcHJldHR5PWZvcm1hdDolY2UiLCBnaXRfY29t
bWl0XSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L3NjbV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weQppbmRleCA1Nzc4NmM5OGYxM2NlMWNhNDBmYzlj
NzFiYzI0NzkwNmQ4NGZjMzNkLi5jODhiZDI3ODMyMzcyMDFiYzk4NDE4OWZkY2ExODQ3MGU2NzBh
MzBmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY21fdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5CkBAIC02NTEsNiArNjUxLDM5IEBAIFExZFRC
eDBBQUFCNDJpdGc0R2xnWUpqR3dNRER5T0RNeE1EdzM0R0JnUUVBSlBRREpBPT0KICAgICAgICAg
c2VsZi5zY20ucHJvcHNldCgic3ZuOm1pbWUtdHlwZSIsIGV4cGVjdGVkX21pbWVfdHlwZSwgZmls
ZXBhdGgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbWltZV90eXBlLCBzZWxm
LnNjbS5wcm9wZ2V0KCJzdm46bWltZS10eXBlIiwgZmlsZXBhdGgpKQogCisgICAgZGVmIHRlc3Rf
c2hvd19oZWFkKHNlbGYpOgorICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgidGVzdF9m
aWxlIiwgdSJIZWxsbyEiLCAidXRmLTgiKQorICAgICAgICBTVk5UZXN0UmVwb3NpdG9yeS5fc3Zu
X2NvbW1pdCgiZm91cnRoIGNvbW1pdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkhlbGxv
ISIsIHNlbGYuc2NtLnNob3dfaGVhZCgndGVzdF9maWxlJykpCisKKyAgICBkZWYgZG9fdGVzdF9k
aWZmX2Zvcl9maWxlKHNlbGYsIHVzZV9ib2d1c19kaXIpOgorICAgICAgICB3cml0ZV9pbnRvX2Zp
bGVfYXRfcGF0aCgndGVzdF9maWxlJywgJ3NvbWUgY29udGVudCcpCisgICAgICAgIHNlbGYuc2Nt
LmNvbW1pdF93aXRoX21lc3NhZ2UoImEgdGVzdCBjb21taXQiKQorICAgICAgICBkaWZmID0gc2Vs
Zi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9maWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkaWZmLCAiIikKKworICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgidGVzdF9maWxl
IiwgImNoYW5nZWQgY29udGVudCIpCisgICAgICAgIGRpZmYgPSBzZWxmLnNjbS5kaWZmX2Zvcl9m
aWxlKCd0ZXN0X2ZpbGUnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoIi1zb21lIGNvbnRlbnQi
IGluIGRpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiK2NoYW5nZWQgY29udGVudCIgaW4g
ZGlmZikKKworICAgIGRlZiB0ZXN0X2RpZmZfZm9yX2ZpbGUoc2VsZik6CisgICAgICAgIHNlbGYu
ZG9fdGVzdF9kaWZmX2Zvcl9maWxlKEZhbHNlKQorCisgICAgZGVmIHRlc3RfZGlmZl9mb3JfZmls
ZV93aXRoX2V4aXN0aW5nX2JvZ3VzX2RpcihzZWxmKToKKyAgICAgICAgYm9ndXNfZGlyID0gc2Vs
Zi5zY20uX2JvZ3VzX2Rpcl9uYW1lKCkKKyAgICAgICAgb3Mucm1kaXIoYm9ndXNfZGlyKQorICAg
ICAgICBvcy5ta2Rpcihib2d1c19kaXIpCisgICAgICAgIHNlbGYuZG9fdGVzdF9kaWZmX2Zvcl9m
aWxlKFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhib2d1c19k
aXIpKQorCisgICAgZGVmIHRlc3RfZGlmZl9mb3JfZmlsZV93aXRoX21pc3NpbmdfYm9ndXNfZGly
KHNlbGYpOgorICAgICAgICBib2d1c19kaXIgPSBzZWxmLnNjbS5fYm9ndXNfZGlyX25hbWUoKQor
ICAgICAgICBvcy5ybWRpcihib2d1c19kaXIpCisgICAgICAgIHNlbGYuZG9fdGVzdF9kaWZmX2Zv
cl9maWxlKFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHMoYm9n
dXNfZGlyKSkKKworCiBjbGFzcyBHaXRUZXN0KFNDTVRlc3QpOgogCiAgICAgZGVmIHNldFVwKHNl
bGYpOgpAQCAtMTEyNCw2ICsxMTU3LDMzIEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAg
ICAgICAgIHNlbGYuc2NtLmRlbGV0ZSgndGVzdF9maWxlX2NvbW1pdDEnKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUoInRlc3RfZmlsZV9jb21taXQxIiBpbiBzZWxmLnNjbS5kZWxldGVkX2ZpbGVz
KCkpCiAKKyAgICBkZWYgdGVzdF90b19vYmplY3RfbmFtZShzZWxmKToKKyAgICAgICAgcmVscGF0
aCA9ICd0ZXN0X2ZpbGVfY29tbWl0MScKKyAgICAgICAgZnVsbHBhdGggPSBvcy5wYXRoLmpvaW4o
c2VsZi5naXRfY2hlY2tvdXRfcGF0aCwgcmVscGF0aCkKKyAgICAgICAgc2VsZi5fdHdvX2xvY2Fs
X2NvbW1pdHMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlbHBhdGgsIHNlbGYuc2NtLnRv
X29iamVjdF9uYW1lKGZ1bGxwYXRoKSkKKworICAgIGRlZiB0ZXN0X3Nob3dfaGVhZChzZWxmKToK
KyAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCJtb3JlIHRlc3QgY29udGVudCIsIHNlbGYuc2NtLnNob3dfaGVhZCgndGVzdF9maWxlX2Nv
bW1pdDEnKSkKIAorICAgIGRlZiB0ZXN0X2RpZmZfZm9yX2ZpbGUoc2VsZik6CisgICAgICAgIHNl
bGYuX3R3b19sb2NhbF9jb21taXRzKCkKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgo
J3Rlc3RfZmlsZV9jb21taXQxJywgIlVwZGF0ZWQiLCBlbmNvZGluZz1Ob25lKSAgICAgICAgCisK
KyAgICAgICAgZGlmZiA9IHNlbGYuc2NtLmRpZmZfZm9yX2ZpbGUoJ3Rlc3RfZmlsZV9jb21taXQx
JywgZ2l0X2NhY2hlPUZhbHNlKQorICAgICAgICBjYWNoZWRfZGlmZiA9IHNlbGYuc2NtLmRpZmZf
Zm9yX2ZpbGUoJ3Rlc3RfZmlsZV9jb21taXQxJywgZ2l0X2NhY2hlPVRydWUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoIiIsIGNhY2hlZF9kaWZmKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
IitVcGRhdGVkIiBpbiBkaWZmKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoIi1tb3JlIHRlc3Qg
Y29udGVudCIgaW4gZGlmZikKKworICAgICAgICBzZWxmLnNjbS5hZGQoJ3Rlc3RfZmlsZV9jb21t
aXQxJykKKworICAgICAgICBkaWZmID0gc2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9maWxl
X2NvbW1pdDEnLCBnaXRfY2FjaGU9RmFsc2UpCisgICAgICAgIGNhY2hlZF9kaWZmID0gc2VsZi5z
Y20uZGlmZl9mb3JfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnLCBnaXRfY2FjaGU9VHJ1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiIiwgZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCIrVXBkYXRlZCIgaW4gY2FjaGVkX2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiLW1v
cmUgdGVzdCBjb250ZW50IiBpbiBjYWNoZWRfZGlmZikKKyAgICAgICAgCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJr
aXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
ZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAwOWQzNWFjYjU1ODg3MTk2
ZWY5OTY1YTEyN2IyNzU1NDBiYTUxMmM1Li5kY2Y3OTIwMDljMDg3MTM4YTUzYTdlZTdmMDk4MDIy
ZWNiYzYxYjRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0cy5weQpAQCAtNTgsNyArNTgsNyBAQCBpbXBvcnQgdXJsbGliCiBpbXBvcnQgd2Vi
YnJvd3NlcgogaW1wb3J0IHppcGZpbGUKIAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgcnVuX2NvbW1hbmQKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5l
eGVjdXRpdmUgaW1wb3J0IHJ1bl9jb21tYW5kLCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5j
b21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQogaW1wb3J0IHdlYmtp
dHB5LmNvbW1vbi5jaGVja291dC5zY20gYXMgc2NtCiAKQEAgLTYxOSw4ICs2MTksMTMgQEAgY2xh
c3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgX2xvZy5pbmZvKCcgIEh0bWw6IGNvcGll
ZCBuZXcgYmFzZWxpbmUgZmlsZSBmcm9tICIlcyIgdG8gIiVzIi4nLAogICAgICAgICAgICAgICAg
ICAgYmFzZWxpbmVfZnVsbHBhdGgsIG5ld19maWxlKQogCi0gICAgICAgICMgR2V0IHRoZSBvbGQg
YmFzZWxpbmUgZnJvbSBTVk4gYW5kIHNhdmUgdG8gdGhlIGh0bWwgZGlyZWN0b3J5LgotICAgICAg
ICBvdXRwdXQgPSBydW5fc2hlbGwoWydzdm4nLCAnY2F0JywgJy1yJywgJ0JBU0UnLCBiYXNlbGlu
ZV9mdWxscGF0aF0pCisgICAgICAgICMgR2V0IHRoZSBvbGQgYmFzZWxpbmUgZnJvbSB0aGUgcmVw
b3NpdG9yeSBhbmQgc2F2ZSB0byB0aGUgaHRtbCBkaXJlY3RvcnkuCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3NjbS5zaG93X2hlYWQoYmFzZWxpbmVfZnVsbHBhdGgp
CisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgIF9sb2cuaW5mbyhl
KQorICAgICAgICAgICAgb3V0cHV0ID0gIiIKKwogICAgICAgICBpZiAobm90IG91dHB1dCkgb3Ig
KG91dHB1dC51cHBlcigpLnJzdHJpcCgpLmVuZHN3aXRoKAogICAgICAgICAgICAgJ05PIFNVQ0gg
RklMRSBPUiBESVJFQ1RPUlknKSk6CiAgICAgICAgICAgICBfbG9nLmluZm8oJyAgTm8gYmFzZSBm
aWxlOiAiJXMiJywgYmFzZWxpbmVfZnVsbHBhdGgpCkBAIC02MzcsMjcgKzY0Miw3IEBAIGNsYXNz
IFJlYmFzZWxpbmVyKG9iamVjdCk6CiAKICAgICAgICAgIyBHZXQgdGhlIGRpZmYgYmV0d2VlbiBv
bGQgYW5kIG5ldyBiYXNlbGluZXMgYW5kIHNhdmUgdG8gdGhlIGh0bWwgZGlyLgogICAgICAgICBp
ZiBiYXNlbGluZV9maWxlbmFtZS51cHBlcigpLmVuZHN3aXRoKCcuVFhUJyk6Ci0gICAgICAgICAg
ICAjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhIGN1c3RvbSBkaWZmIGNvbW1hbmQgaW4gdGhlaXIg
c3ZuIGNvbmZpZwotICAgICAgICAgICAgIyBmaWxlLCB0aGVuIGl0J2xsIGJlIHVzZWQgd2hlbiB3
ZSBkbyBzdm4gZGlmZiwgd2hpY2ggd2UgZG9uJ3Qgd2FudAotICAgICAgICAgICAgIyB0byBoYXBw
ZW4gc2luY2Ugd2Ugd2FudCB0aGUgdW5pZmllZCBkaWZmLiAgVXNpbmcgLS1kaWZmLWNtZD1kaWZm
Ci0gICAgICAgICAgICAjIGRvZXNuJ3QgYWx3YXlzIHdvcmssIHNpbmNlIHRoZXkgY2FuIGhhdmUg
YW5vdGhlciBkaWZmIGV4ZWN1dGFibGUKLSAgICAgICAgICAgICMgaW4gdGhlaXIgcGF0aCB0aGF0
IGdpdmVzIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MuICBTbyB3ZSB1c2UgYQotICAgICAgICAgICAg
IyBib2d1cyB0ZW1wIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGRpcmVjdG9yeSwgd2hpY2ggZ2V0
cwotICAgICAgICAgICAgIyBhcm91bmQgdGhlc2UgcHJvYmxlbXMuCi0gICAgICAgICAgICBpZiBz
eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIik6Ci0gICAgICAgICAgICAgICAgcGFyZW50X2Rp
ciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBwYXJlbnRfZGlyID0gc3lzLnBhdGhbMF0gICMgdGVtcGRpciBpcyBub3Qgc2VjdXJlLgot
ICAgICAgICAgICAgYm9ndXNfZGlyID0gb3MucGF0aC5qb2luKHBhcmVudF9kaXIsICJ0ZW1wX3N2
bl9jb25maWciKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnICBIdG1sOiB0ZW1wIGNvbmZpZyBk
aXI6ICIlcyIuJywgYm9ndXNfZGlyKQotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3Rz
KGJvZ3VzX2Rpcik6Ci0gICAgICAgICAgICAgICAgb3MubWtkaXIoYm9ndXNfZGlyKQotICAgICAg
ICAgICAgICAgIGRlbGV0ZV9ib2d1c19kaXIgPSBUcnVlCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIGRlbGV0ZV9ib2d1c19kaXIgPSBGYWxzZQotCi0gICAgICAgICAgICBvdXRw
dXQgPSBydW5fc2hlbGwoWyJzdm4iLCAiZGlmZiIsICItLWNvbmZpZy1kaXIiLCBib2d1c19kaXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmVfZnVsbHBhdGhdKQorICAg
ICAgICAgICAgb3V0cHV0ID0gc2VsZi5fc2NtLmRpZmZfZm9yX2ZpbGUoYmFzZWxpbmVfZnVsbHBh
dGgsIHVzZV9ib2d1c19kaXI9VHJ1ZSwgbG9nPV9sb2csIGdpdF9jYWNoZT1UcnVlKQogICAgICAg
ICAgICAgaWYgb3V0cHV0OgogICAgICAgICAgICAgICAgIGRpZmZfZmlsZSA9IGdldF9yZXN1bHRf
ZmlsZV9mdWxscGF0aCgKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5odG1sX2Rp
cmVjdG9yeSwgYmFzZWxpbmVfZmlsZW5hbWUsCkBAIC02NjgsMTEgKzY1Myw2IEBAIGNsYXNzIFJl
YmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCcgIEh0bWw6IGNy
ZWF0ZWQgYmFzZWxpbmUgZGlmZiBmaWxlOiAiJXMiLicsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZmZfZmlsZSkKIAotICAgICAgICAgICAgaWYgZGVsZXRlX2JvZ3VzX2RpcjoKLSAgICAg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKGJvZ3VzX2RpciwgVHJ1ZSkKLSAgICAgICAgICAgICAg
ICBfbG9nLmRlYnVnKCcgIEh0bWw6IHJlbW92ZWQgdGVtcCBjb25maWcgZGlyOiAiJXMiLicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBib2d1c19kaXIpCi0KIGNsYXNzIEh0bWxHZW5lcmF0
b3Iob2JqZWN0KToKICAgICAiIiJDbGFzcyB0byBnZW5lcmF0ZSByZWJhc2VsaW5pbmcgcmVzdWx0
IGNvbXBhcmlzb24gaHRtbC4iIiIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60198</attachid>
            <date>2010-06-30 22:52:15 -0700</date>
            <delta_ts>2010-06-30 23:20:20 -0700</delta_ts>
            <desc>patch v2.1; fixed style violation</desc>
            <filename>bug-38775-20100701145212.patch</filename>
            <type>text/plain</type>
            <size>11969</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYmE0ZDU5NWRiODBjZTBmNzI0ZWRlOWYyMTZiNDcwZTk2NmJjOGUyLi5jZTBhNjUw
ODA4YzM3ZmExMTgyYTEzZDBjM2MwYTUwMTFlZTZmNWRhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDYtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgZG9lc24ndCBkbyBkaWZmcyByaWdodCB3aXRoIGEgR2l0IGNoZWNr
b3V0IG9mIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg3NzUKKworICAgICAgICAtIEludHJvZHVjZWQgU0NNLnNob3dfaGVhZCgpIGFuZCBT
Q00uZGlmZl9mb3JfZmlsZSgpLgorICAgICAgICAtIFJlcGxhY2VkIGRpcmVjdCBzdm4gaW52b2Nh
dGlvbnMgd2l0aCBuZXdseSBpbXBsZW1lbnQgU0NNIG1ldGhvZHMuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDEwLTA2LTI3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CmluZGV4IGM3NjNlN2IwMTcxZmJmMjE4NzkzZmJl
MjNmZWEwZGI1ZGZkMTQ4MjcuLjkzNzIzMmZiZjFhYTNkYjBlZDY4NWVmZmNkNDNhOTk0YzljYjNl
MTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20ucHkKQEAgLTMxLDYgKzMxLDggQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgcmUKK2lt
cG9ydCBzeXMKK2ltcG9ydCBzaHV0aWwKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyIGltcG9ydCBVc2VyCkBAIC0yMjMsNiArMjI1LDEy
IEBAIGNsYXNzIFNDTToKICAgICBkZWYgZGlmZl9mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24p
OgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2ltcGxlbWVudCgpCiAKKyAgICBkZWYgZGlm
Zl9mb3JfZmlsZShzZWxmLCBwYXRoLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX3N1YmNsYXNz
X211c3RfaW1wbGVtZW50KCkKKworICAgIGRlZiBzaG93X2hlYWQoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKKwogICAgIGRlZiBhcHBseV9yZXZl
cnNlX2RpZmYoc2VsZiwgcmV2aXNpb24pOgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2lt
cGxlbWVudCgpCiAKQEAgLTI2OCw3ICsyNzYsOCBAQCBjbGFzcyBTVk4oU0NNKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgY3dkKToKICAgICAgICAgU0NNLl9faW5pdF9fKHNlbGYsIGN3ZCkKICAg
ICAgICAgc2VsZi5jYWNoZWRfdmVyc2lvbiA9IE5vbmUKLSAgICAKKyAgICAgICAgc2VsZi5fYm9n
dXNfZGlyID0gTm9uZQorCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2Rp
cmVjdG9yeShwYXRoKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2lu
KHBhdGgsICcuc3ZuJykpCkBAIC00MTUsNiArNDI0LDQ4IEBAIGNsYXNzIFNWTihTQ00pOgogICAg
ICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRf
cm9vdAogICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydzdm4nLCAnZGlmZicsICctYycsIHJldmlz
aW9uXSkKIAorICAgIGRlZiBfYm9ndXNfZGlyX25hbWUoc2VsZik6CisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKKyAgICAgICAgICAgIHBhcmVudF9kaXIgPSB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhcmVudF9kaXIg
PSBzeXMucGF0aFswXSAgIyB0ZW1wZGlyIGlzIG5vdCBzZWN1cmUuCisgICAgICAgIHJldHVybiBv
cy5wYXRoLmpvaW4ocGFyZW50X2RpciwgInRlbXBfc3ZuX2NvbmZpZyIpCisKKyAgICBkZWYgX3Nl
dHVwX2JvZ3VzX2RpcihzZWxmLCB1c2VfYm9ndXNfZGlyLCBsb2cpOgorICAgICAgICBpZiBub3Qg
dXNlX2JvZ3VzX2RpcjoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9ib2d1c19k
aXIgPSBzZWxmLl9ib2d1c19kaXJfbmFtZSgpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhzZWxmLl9ib2d1c19kaXIpOgorICAgICAgICAgICAgb3MubWtkaXIoc2VsZi5fYm9ndXNfZGly
KQorICAgICAgICAgICAgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpciA9IFRydWUKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXIgPSBGYWxzZQorICAgICAgICBp
ZiBsb2c6CisgICAgICAgICAgICBsb2cuZGVidWcoJyAgSHRtbDogdGVtcCBjb25maWcgZGlyOiAi
JXMiLicsIHNlbGYuX2JvZ3VzX2RpcikKKworICAgIGRlZiBfdGVhcmRvd25fYm9ndXNfZGlyKHNl
bGYsIHVzZV9ib2d1c19kaXIsIGxvZyk6CisgICAgICAgIGlmIG5vdCB1c2VfYm9ndXNfZGlyOgor
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXI6Cisg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuX2JvZ3VzX2RpciwgVHJ1ZSkKKyAgICAgICAg
ICAgIGlmIGxvZzoKKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoJyAgSHRtbDogcmVtb3ZlZCB0
ZW1wIGNvbmZpZyBkaXI6ICIlcyIuJywgc2VsZi5fYm9ndXNfZGlyKQorICAgICAgICBzZWxmLl9i
b2d1c19kaXIgPSBOb25lCisKKyAgICBkZWYgZGlmZl9mb3JfZmlsZShzZWxmLCBwYXRoLCB1c2Vf
Ym9ndXNfZGlyPUZhbHNlLCBsb2c9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9zZXR1
cF9ib2d1c19kaXIodXNlX2JvZ3VzX2RpciwgbG9nKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBhcmdzID0gWydzdm4nLCAnZGlmZiddCisgICAgICAgICAgICBpZiBzZWxmLl9ib2d1c19kaXI6
CisgICAgICAgICAgICAgICAgYXJncyArPSBbJy0tY29uZmlnLWRpcicsIHNlbGYuX2JvZ3VzX2Rp
cl0KKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHBhdGgpCisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5ydW4oYXJncykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX3RlYXJkb3du
X2JvZ3VzX2Rpcih1c2VfYm9ndXNfZGlyLCBsb2cpCisKKyAgICBkZWYgc2hvd19oZWFkKHNlbGYs
IHBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydzdm4nLCAnY2F0JywgJy1yJywgJ0JB
U0UnLCBwYXRoXSkKKwogICAgIGRlZiBfcmVwb3NpdG9yeV91cmwoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLnZhbHVlX2Zyb21fc3ZuX2luZm8oc2VsZi5jaGVja291dF9yb290LCAnVVJMJykK
IApAQCAtNDg2LDYgKzUzNywxMSBAQCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgcmV0dXJuIGNo
ZWNrb3V0X3Jvb3QKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0b19vYmplY3RfbmFtZShj
bHMsIGZpbGVwYXRoKToKKyAgICAgICAgcm9vdF9lbmRfd2l0aF9zbGFzaCA9IG9zLnBhdGguam9p
bihjbHMuZmluZF9jaGVja291dF9yb290KG9zLnBhdGguZGlybmFtZShmaWxlcGF0aCkpLCAnJykK
KyAgICAgICAgcmV0dXJuIGZpbGVwYXRoLnJlcGxhY2Uocm9vdF9lbmRfd2l0aF9zbGFzaCwgJycp
CisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgcmVhZF9naXRfY29uZmlnKGNscywga2V5KToK
ICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgdXNlIGN3ZD1zZWxmLmNoZWNr
b3V0X3Jvb3QuCiAgICAgICAgIHJldHVybiBydW5fY29tbWFuZChbImdpdCIsICJjb25maWciLCBr
ZXldLApAQCAtNjA2LDYgKzY2MiwxNyBAQCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgZ2l0X2Nv
bW1pdCA9IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKICAgICAg
ICAgcmV0dXJuIHNlbGYuY3JlYXRlX3BhdGNoKGdpdF9jb21taXQpCiAKKyAgICBkZWYgZGlmZl9m
b3JfZmlsZShzZWxmLCBwYXRoLCBnaXRfY2FjaGU9RmFsc2UsICoqa3dhcmdzKToKKyAgICAgICAg
cHJpbnQgImRpZmYiLCBwYXRoLCBvcy5nZXRjd2QoKQorICAgICAgICBhcmdzID0gWydnaXQnLCAn
ZGlmZiddCisgICAgICAgIGlmIGdpdF9jYWNoZToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCIt
LWNhY2hlZCIpCisgICAgICAgIGFyZ3MuYXBwZW5kKHBhdGgpCisgICAgICAgIHJldHVybiBzZWxm
LnJ1bihhcmdzKQorCisgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0
dXJuIHNlbGYucnVuKFsnZ2l0JywgJ3Nob3cnLCAnSEVBRDonICsgc2VsZi50b19vYmplY3RfbmFt
ZShwYXRoKV0pCisKICAgICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbihzZWxmLCBy
ZXZpc2lvbik6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJvbV9zdm5f
cmV2aXNpb24ocmV2aXNpb24pCiAgICAgICAgIGNvbW1pdHRlcl9lbWFpbCA9IHNlbGYucnVuKFsi
Z2l0IiwgImxvZyIsICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNlIiwgZ2l0X2NvbW1pdF0pCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y21fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY21fdW5pdHRlc3QucHkKaW5kZXggNTc3ODZjOThmMTNjZTFjYTQwZmM5YzcxYmMyNDc5
MDZkODRmYzMzZC4uMDQyNDM2MDU0M2Y1OGQyNmZkNmZkODRlOTQ3NTA3YjI4NDY5OTBmOSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2Nt
X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L3NjbV91bml0dGVzdC5weQpAQCAtNjUxLDYgKzY1MSwzOSBAQCBRMWRUQngwQUFBQjQy
aXRnNEdsZ1lKakd3TUREeU9ETXhNRHczNEdCZ1FFQUpQUURKQT09CiAgICAgICAgIHNlbGYuc2Nt
LnByb3BzZXQoInN2bjptaW1lLXR5cGUiLCBleHBlY3RlZF9taW1lX3R5cGUsIGZpbGVwYXRoKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX21pbWVfdHlwZSwgc2VsZi5zY20ucHJv
cGdldCgic3ZuOm1pbWUtdHlwZSIsIGZpbGVwYXRoKSkKIAorICAgIGRlZiB0ZXN0X3Nob3dfaGVh
ZChzZWxmKToKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZSIsIHUi
SGVsbG8hIiwgInV0Zi04IikKKyAgICAgICAgU1ZOVGVzdFJlcG9zaXRvcnkuX3N2bl9jb21taXQo
ImZvdXJ0aCBjb21taXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJIZWxsbyEiLCBzZWxm
LnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZScpKQorCisgICAgZGVmIGRvX3Rlc3RfZGlmZl9mb3Jf
ZmlsZShzZWxmLCB1c2VfYm9ndXNfZGlyKToKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3Bh
dGgoJ3Rlc3RfZmlsZScsICdzb21lIGNvbnRlbnQnKQorICAgICAgICBzZWxmLnNjbS5jb21taXRf
d2l0aF9tZXNzYWdlKCJhIHRlc3QgY29tbWl0IikKKyAgICAgICAgZGlmZiA9IHNlbGYuc2NtLmRp
ZmZfZm9yX2ZpbGUoJ3Rlc3RfZmlsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZiwg
IiIpCisKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZSIsICJjaGFu
Z2VkIGNvbnRlbnQiKQorICAgICAgICBkaWZmID0gc2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVz
dF9maWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCItc29tZSBjb250ZW50IiBpbiBkaWZm
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoIitjaGFuZ2VkIGNvbnRlbnQiIGluIGRpZmYpCisK
KyAgICBkZWYgdGVzdF9kaWZmX2Zvcl9maWxlKHNlbGYpOgorICAgICAgICBzZWxmLmRvX3Rlc3Rf
ZGlmZl9mb3JfZmlsZShGYWxzZSkKKworICAgIGRlZiB0ZXN0X2RpZmZfZm9yX2ZpbGVfd2l0aF9l
eGlzdGluZ19ib2d1c19kaXIoc2VsZik6CisgICAgICAgIGJvZ3VzX2RpciA9IHNlbGYuc2NtLl9i
b2d1c19kaXJfbmFtZSgpCisgICAgICAgIG9zLnJtZGlyKGJvZ3VzX2RpcikKKyAgICAgICAgb3Mu
bWtkaXIoYm9ndXNfZGlyKQorICAgICAgICBzZWxmLmRvX3Rlc3RfZGlmZl9mb3JfZmlsZShUcnVl
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoYm9ndXNfZGlyKSkKKwor
ICAgIGRlZiB0ZXN0X2RpZmZfZm9yX2ZpbGVfd2l0aF9taXNzaW5nX2JvZ3VzX2RpcihzZWxmKToK
KyAgICAgICAgYm9ndXNfZGlyID0gc2VsZi5zY20uX2JvZ3VzX2Rpcl9uYW1lKCkKKyAgICAgICAg
b3Mucm1kaXIoYm9ndXNfZGlyKQorICAgICAgICBzZWxmLmRvX3Rlc3RfZGlmZl9mb3JfZmlsZShU
cnVlKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGJvZ3VzX2Rpcikp
CisKKwogY2xhc3MgR2l0VGVzdChTQ01UZXN0KToKIAogICAgIGRlZiBzZXRVcChzZWxmKToKQEAg
LTExMjQsNiArMTE1NywzMyBAQCBjbGFzcyBHaXRTVk5UZXN0KFNDTVRlc3QpOgogICAgICAgICBz
ZWxmLnNjbS5kZWxldGUoJ3Rlc3RfZmlsZV9jb21taXQxJykKICAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKCJ0ZXN0X2ZpbGVfY29tbWl0MSIgaW4gc2VsZi5zY20uZGVsZXRlZF9maWxlcygpKQogCisg
ICAgZGVmIHRlc3RfdG9fb2JqZWN0X25hbWUoc2VsZik6CisgICAgICAgIHJlbHBhdGggPSAndGVz
dF9maWxlX2NvbW1pdDEnCisgICAgICAgIGZ1bGxwYXRoID0gb3MucGF0aC5qb2luKHNlbGYuZ2l0
X2NoZWNrb3V0X3BhdGgsIHJlbHBhdGgpCisgICAgICAgIHNlbGYuX3R3b19sb2NhbF9jb21taXRz
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWxwYXRoLCBzZWxmLnNjbS50b19vYmplY3Rf
bmFtZShmdWxscGF0aCkpCisKKyAgICBkZWYgdGVzdF9zaG93X2hlYWQoc2VsZik6CisgICAgICAg
IHNlbGYuX3R3b19sb2NhbF9jb21taXRzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgibW9y
ZSB0ZXN0IGNvbnRlbnQiLCBzZWxmLnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZV9jb21taXQxJykp
CisKKyAgICBkZWYgdGVzdF9kaWZmX2Zvcl9maWxlKHNlbGYpOgorICAgICAgICBzZWxmLl90d29f
bG9jYWxfY29tbWl0cygpCisgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCd0ZXN0X2Zp
bGVfY29tbWl0MScsICJVcGRhdGVkIiwgZW5jb2Rpbmc9Tm9uZSkKKworICAgICAgICBkaWZmID0g
c2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnLCBnaXRfY2FjaGU9RmFs
c2UpCisgICAgICAgIGNhY2hlZF9kaWZmID0gc2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9m
aWxlX2NvbW1pdDEnLCBnaXRfY2FjaGU9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
IiwgY2FjaGVkX2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiK1VwZGF0ZWQiIGluIGRp
ZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiLW1vcmUgdGVzdCBjb250ZW50IiBpbiBkaWZm
KQorCisgICAgICAgIHNlbGYuc2NtLmFkZCgndGVzdF9maWxlX2NvbW1pdDEnKQorCisgICAgICAg
IGRpZmYgPSBzZWxmLnNjbS5kaWZmX2Zvcl9maWxlKCd0ZXN0X2ZpbGVfY29tbWl0MScsIGdpdF9j
YWNoZT1GYWxzZSkKKyAgICAgICAgY2FjaGVkX2RpZmYgPSBzZWxmLnNjbS5kaWZmX2Zvcl9maWxl
KCd0ZXN0X2ZpbGVfY29tbWl0MScsIGdpdF9jYWNoZT1UcnVlKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCIiLCBkaWZmKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoIitVcGRhdGVkIiBpbiBj
YWNoZWRfZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCItbW9yZSB0ZXN0IGNvbnRlbnQi
IGluIGNhY2hlZF9kaWZmKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0
ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtp
dF90ZXN0cy5weQppbmRleCAwOWQzNWFjYjU1ODg3MTk2ZWY5OTY1YTEyN2IyNzU1NDBiYTUxMmM1
Li5kY2Y3OTIwMDljMDg3MTM4YTUzYTdlZTdmMDk4MDIyZWNiYzYxYjRmIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9t
aXVtX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQpAQCAtNTgsNyAr
NTgsNyBAQCBpbXBvcnQgdXJsbGliCiBpbXBvcnQgd2ViYnJvd3NlcgogaW1wb3J0IHppcGZpbGUK
IAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgcnVuX2NvbW1h
bmQKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IHJ1bl9jb21t
YW5kLCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGltcG9y
dCBkZXRlY3Rfc2NtX3N5c3RlbQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20g
YXMgc2NtCiAKQEAgLTYxOSw4ICs2MTksMTMgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToK
ICAgICAgICAgX2xvZy5pbmZvKCcgIEh0bWw6IGNvcGllZCBuZXcgYmFzZWxpbmUgZmlsZSBmcm9t
ICIlcyIgdG8gIiVzIi4nLAogICAgICAgICAgICAgICAgICAgYmFzZWxpbmVfZnVsbHBhdGgsIG5l
d19maWxlKQogCi0gICAgICAgICMgR2V0IHRoZSBvbGQgYmFzZWxpbmUgZnJvbSBTVk4gYW5kIHNh
dmUgdG8gdGhlIGh0bWwgZGlyZWN0b3J5LgotICAgICAgICBvdXRwdXQgPSBydW5fc2hlbGwoWydz
dm4nLCAnY2F0JywgJy1yJywgJ0JBU0UnLCBiYXNlbGluZV9mdWxscGF0aF0pCisgICAgICAgICMg
R2V0IHRoZSBvbGQgYmFzZWxpbmUgZnJvbSB0aGUgcmVwb3NpdG9yeSBhbmQgc2F2ZSB0byB0aGUg
aHRtbCBkaXJlY3RvcnkuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG91dHB1dCA9IHNlbGYu
X3NjbS5zaG93X2hlYWQoYmFzZWxpbmVfZnVsbHBhdGgpCisgICAgICAgIGV4Y2VwdCBTY3JpcHRF
cnJvciwgZToKKyAgICAgICAgICAgIF9sb2cuaW5mbyhlKQorICAgICAgICAgICAgb3V0cHV0ID0g
IiIKKwogICAgICAgICBpZiAobm90IG91dHB1dCkgb3IgKG91dHB1dC51cHBlcigpLnJzdHJpcCgp
LmVuZHN3aXRoKAogICAgICAgICAgICAgJ05PIFNVQ0ggRklMRSBPUiBESVJFQ1RPUlknKSk6CiAg
ICAgICAgICAgICBfbG9nLmluZm8oJyAgTm8gYmFzZSBmaWxlOiAiJXMiJywgYmFzZWxpbmVfZnVs
bHBhdGgpCkBAIC02MzcsMjcgKzY0Miw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAK
ICAgICAgICAgIyBHZXQgdGhlIGRpZmYgYmV0d2VlbiBvbGQgYW5kIG5ldyBiYXNlbGluZXMgYW5k
IHNhdmUgdG8gdGhlIGh0bWwgZGlyLgogICAgICAgICBpZiBiYXNlbGluZV9maWxlbmFtZS51cHBl
cigpLmVuZHN3aXRoKCcuVFhUJyk6Ci0gICAgICAgICAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmll
ZCBhIGN1c3RvbSBkaWZmIGNvbW1hbmQgaW4gdGhlaXIgc3ZuIGNvbmZpZwotICAgICAgICAgICAg
IyBmaWxlLCB0aGVuIGl0J2xsIGJlIHVzZWQgd2hlbiB3ZSBkbyBzdm4gZGlmZiwgd2hpY2ggd2Ug
ZG9uJ3Qgd2FudAotICAgICAgICAgICAgIyB0byBoYXBwZW4gc2luY2Ugd2Ugd2FudCB0aGUgdW5p
ZmllZCBkaWZmLiAgVXNpbmcgLS1kaWZmLWNtZD1kaWZmCi0gICAgICAgICAgICAjIGRvZXNuJ3Qg
YWx3YXlzIHdvcmssIHNpbmNlIHRoZXkgY2FuIGhhdmUgYW5vdGhlciBkaWZmIGV4ZWN1dGFibGUK
LSAgICAgICAgICAgICMgaW4gdGhlaXIgcGF0aCB0aGF0IGdpdmVzIGRpZmZlcmVudCBsaW5lIGVu
ZGluZ3MuICBTbyB3ZSB1c2UgYQotICAgICAgICAgICAgIyBib2d1cyB0ZW1wIGRpcmVjdG9yeSBh
cyB0aGUgY29uZmlnIGRpcmVjdG9yeSwgd2hpY2ggZ2V0cwotICAgICAgICAgICAgIyBhcm91bmQg
dGhlc2UgcHJvYmxlbXMuCi0gICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgi
d2luIik6Ci0gICAgICAgICAgICAgICAgcGFyZW50X2RpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIo
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwYXJlbnRfZGlyID0gc3lzLnBh
dGhbMF0gICMgdGVtcGRpciBpcyBub3Qgc2VjdXJlLgotICAgICAgICAgICAgYm9ndXNfZGlyID0g
b3MucGF0aC5qb2luKHBhcmVudF9kaXIsICJ0ZW1wX3N2bl9jb25maWciKQotICAgICAgICAgICAg
X2xvZy5kZWJ1ZygnICBIdG1sOiB0ZW1wIGNvbmZpZyBkaXI6ICIlcyIuJywgYm9ndXNfZGlyKQot
ICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGJvZ3VzX2Rpcik6Ci0gICAgICAgICAg
ICAgICAgb3MubWtkaXIoYm9ndXNfZGlyKQotICAgICAgICAgICAgICAgIGRlbGV0ZV9ib2d1c19k
aXIgPSBUcnVlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRlbGV0ZV9ib2d1
c19kaXIgPSBGYWxzZQotCi0gICAgICAgICAgICBvdXRwdXQgPSBydW5fc2hlbGwoWyJzdm4iLCAi
ZGlmZiIsICItLWNvbmZpZy1kaXIiLCBib2d1c19kaXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzZWxpbmVfZnVsbHBhdGhdKQorICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5f
c2NtLmRpZmZfZm9yX2ZpbGUoYmFzZWxpbmVfZnVsbHBhdGgsIHVzZV9ib2d1c19kaXI9VHJ1ZSwg
bG9nPV9sb2csIGdpdF9jYWNoZT1UcnVlKQogICAgICAgICAgICAgaWYgb3V0cHV0OgogICAgICAg
ICAgICAgICAgIGRpZmZfZmlsZSA9IGdldF9yZXN1bHRfZmlsZV9mdWxscGF0aCgKICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5odG1sX2RpcmVjdG9yeSwgYmFzZWxpbmVfZmlsZW5h
bWUsCkBAIC02NjgsMTEgKzY1Myw2IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgX2xvZy5pbmZvKCcgIEh0bWw6IGNyZWF0ZWQgYmFzZWxpbmUgZGlmZiBmaWxl
OiAiJXMiLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfZmlsZSkKIAotICAgICAg
ICAgICAgaWYgZGVsZXRlX2JvZ3VzX2RpcjoKLSAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVl
KGJvZ3VzX2RpciwgVHJ1ZSkKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgIEh0bWw6IHJl
bW92ZWQgdGVtcCBjb25maWcgZGlyOiAiJXMiLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBib2d1c19kaXIpCi0KIGNsYXNzIEh0bWxHZW5lcmF0b3Iob2JqZWN0KToKICAgICAiIiJDbGFz
cyB0byBnZW5lcmF0ZSByZWJhc2VsaW5pbmcgcmVzdWx0IGNvbXBhcmlzb24gaHRtbC4iIiIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60202</attachid>
            <date>2010-06-30 23:20:26 -0700</date>
            <delta_ts>2010-06-30 23:23:25 -0700</delta_ts>
            <desc>patch v3; removed redundant options</desc>
            <filename>bug-38775-20100701152024.patch</filename>
            <type>text/plain</type>
            <size>11604</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYmE0ZDU5NWRiODBjZTBmNzI0ZWRlOWYyMTZiNDcwZTk2NmJjOGUyLi5jZTBhNjUw
ODA4YzM3ZmExMTgyYTEzZDBjM2MwYTUwMTFlZTZmNWRhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDYtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1jaHJv
bWl1bS13ZWJraXQtdGVzdHMgZG9lc24ndCBkbyBkaWZmcyByaWdodCB3aXRoIGEgR2l0IGNoZWNr
b3V0IG9mIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg3NzUKKworICAgICAgICAtIEludHJvZHVjZWQgU0NNLnNob3dfaGVhZCgpIGFuZCBT
Q00uZGlmZl9mb3JfZmlsZSgpLgorICAgICAgICAtIFJlcGxhY2VkIGRpcmVjdCBzdm4gaW52b2Nh
dGlvbnMgd2l0aCBuZXdseSBpbXBsZW1lbnQgU0NNIG1ldGhvZHMuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDEwLTA2LTI3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CmluZGV4IGM3NjNlN2IwMTcxZmJmMjE4NzkzZmJl
MjNmZWEwZGI1ZGZkMTQ4MjcuLjcwMmUxYTBmZTkxNjA2Y2VmZGFiNzkzODI4NThjMzE3N2ViNzA3
MjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20ucHkKQEAgLTMxLDYgKzMxLDggQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgcmUKK2lt
cG9ydCBzeXMKK2ltcG9ydCBzaHV0aWwKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyIGltcG9ydCBVc2VyCkBAIC0yMjMsNiArMjI1LDEy
IEBAIGNsYXNzIFNDTToKICAgICBkZWYgZGlmZl9mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24p
OgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2ltcGxlbWVudCgpCiAKKyAgICBkZWYgZGlm
Zl9mb3JfZmlsZShzZWxmLCBwYXRoLCBsb2c9Tm9uZSk6CisgICAgICAgIHNlbGYuX3N1YmNsYXNz
X211c3RfaW1wbGVtZW50KCkKKworICAgIGRlZiBzaG93X2hlYWQoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKKwogICAgIGRlZiBhcHBseV9yZXZl
cnNlX2RpZmYoc2VsZiwgcmV2aXNpb24pOgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2lt
cGxlbWVudCgpCiAKQEAgLTI2OCw3ICsyNzYsOCBAQCBjbGFzcyBTVk4oU0NNKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgY3dkKToKICAgICAgICAgU0NNLl9faW5pdF9fKHNlbGYsIGN3ZCkKICAg
ICAgICAgc2VsZi5jYWNoZWRfdmVyc2lvbiA9IE5vbmUKLSAgICAKKyAgICAgICAgc2VsZi5fYm9n
dXNfZGlyID0gTm9uZQorCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2Rp
cmVjdG9yeShwYXRoKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2lu
KHBhdGgsICcuc3ZuJykpCkBAIC00MTUsNiArNDI0LDQ0IEBAIGNsYXNzIFNWTihTQ00pOgogICAg
ICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRf
cm9vdAogICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydzdm4nLCAnZGlmZicsICctYycsIHJldmlz
aW9uXSkKIAorICAgIGRlZiBfYm9ndXNfZGlyX25hbWUoc2VsZik6CisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKKyAgICAgICAgICAgIHBhcmVudF9kaXIgPSB0ZW1w
ZmlsZS5nZXR0ZW1wZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhcmVudF9kaXIg
PSBzeXMucGF0aFswXSAgIyB0ZW1wZGlyIGlzIG5vdCBzZWN1cmUuCisgICAgICAgIHJldHVybiBv
cy5wYXRoLmpvaW4ocGFyZW50X2RpciwgInRlbXBfc3ZuX2NvbmZpZyIpCisKKyAgICBkZWYgX3Nl
dHVwX2JvZ3VzX2RpcihzZWxmLCBsb2cpOgorICAgICAgICBzZWxmLl9ib2d1c19kaXIgPSBzZWxm
Ll9ib2d1c19kaXJfbmFtZSgpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLl9i
b2d1c19kaXIpOgorICAgICAgICAgICAgb3MubWtkaXIoc2VsZi5fYm9ndXNfZGlyKQorICAgICAg
ICAgICAgc2VsZi5fZGVsZXRlX2JvZ3VzX2RpciA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXIgPSBGYWxzZQorICAgICAgICBpZiBsb2c6Cisg
ICAgICAgICAgICBsb2cuZGVidWcoJyAgSHRtbDogdGVtcCBjb25maWcgZGlyOiAiJXMiLicsIHNl
bGYuX2JvZ3VzX2RpcikKKworICAgIGRlZiBfdGVhcmRvd25fYm9ndXNfZGlyKHNlbGYsIGxvZyk6
CisgICAgICAgIGlmIHNlbGYuX2RlbGV0ZV9ib2d1c19kaXI6CisgICAgICAgICAgICBzaHV0aWwu
cm10cmVlKHNlbGYuX2JvZ3VzX2RpciwgVHJ1ZSkKKyAgICAgICAgICAgIGlmIGxvZzoKKyAgICAg
ICAgICAgICAgICBsb2cuZGVidWcoJyAgSHRtbDogcmVtb3ZlZCB0ZW1wIGNvbmZpZyBkaXI6ICIl
cyIuJywgc2VsZi5fYm9ndXNfZGlyKQorICAgICAgICBzZWxmLl9ib2d1c19kaXIgPSBOb25lCisK
KyAgICBkZWYgZGlmZl9mb3JfZmlsZShzZWxmLCBwYXRoLCBsb2c9Tm9uZSk6CisgICAgICAgIHNl
bGYuX3NldHVwX2JvZ3VzX2Rpcihsb2cpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3Mg
PSBbJ3N2bicsICdkaWZmJ10KKyAgICAgICAgICAgIGlmIHNlbGYuX2JvZ3VzX2RpcjoKKyAgICAg
ICAgICAgICAgICBhcmdzICs9IFsnLS1jb25maWctZGlyJywgc2VsZi5fYm9ndXNfZGlyXQorICAg
ICAgICAgICAgYXJncy5hcHBlbmQocGF0aCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bihh
cmdzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fdGVhcmRvd25fYm9ndXNf
ZGlyKGxvZykKKworICAgIGRlZiBzaG93X2hlYWQoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVy
biBzZWxmLnJ1bihbJ3N2bicsICdjYXQnLCAnLXInLCAnQkFTRScsIHBhdGhdKQorCiAgICAgZGVm
IF9yZXBvc2l0b3J5X3VybChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYudmFsdWVfZnJvbV9z
dm5faW5mbyhzZWxmLmNoZWNrb3V0X3Jvb3QsICdVUkwnKQogCkBAIC00ODYsNiArNTMzLDExIEBA
IGNsYXNzIEdpdChTQ00pOgogICAgICAgICByZXR1cm4gY2hlY2tvdXRfcm9vdAogCiAgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIHRvX29iamVjdF9uYW1lKGNscywgZmlsZXBhdGgpOgorICAgICAg
ICByb290X2VuZF93aXRoX3NsYXNoID0gb3MucGF0aC5qb2luKGNscy5maW5kX2NoZWNrb3V0X3Jv
b3Qob3MucGF0aC5kaXJuYW1lKGZpbGVwYXRoKSksICcnKQorICAgICAgICByZXR1cm4gZmlsZXBh
dGgucmVwbGFjZShyb290X2VuZF93aXRoX3NsYXNoLCAnJykKKworICAgIEBjbGFzc21ldGhvZAog
ICAgIGRlZiByZWFkX2dpdF9jb25maWcoY2xzLCBrZXkpOgogICAgICAgICAjIEZJWE1FOiBUaGlz
IHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdC4KICAgICAgICAgcmV0
dXJuIHJ1bl9jb21tYW5kKFsiZ2l0IiwgImNvbmZpZyIsIGtleV0sCkBAIC02MDYsNiArNjU4LDEy
IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICBnaXRfY29tbWl0ID0gc2VsZi5naXRfY29tbWl0
X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQogICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVf
cGF0Y2goZ2l0X2NvbW1pdCkKIAorICAgIGRlZiBkaWZmX2Zvcl9maWxlKHNlbGYsIHBhdGgsIGxv
Zz1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsnZ2l0JywgJ2RpZmYnLCAnSEVBRCcs
ICctLScsIHBhdGhdKQorCisgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKKyAgICAgICAg
cmV0dXJuIHNlbGYucnVuKFsnZ2l0JywgJ3Nob3cnLCAnSEVBRDonICsgc2VsZi50b19vYmplY3Rf
bmFtZShwYXRoKV0pCisKICAgICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbihzZWxm
LCByZXZpc2lvbik6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJvbV9z
dm5fcmV2aXNpb24ocmV2aXNpb24pCiAgICAgICAgIGNvbW1pdHRlcl9lbWFpbCA9IHNlbGYucnVu
KFsiZ2l0IiwgImxvZyIsICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNlIiwgZ2l0X2NvbW1pdF0p
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY21fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY21fdW5pdHRlc3QucHkKaW5kZXggNTc3ODZjOThmMTNjZTFjYTQwZmM5YzcxYmMy
NDc5MDZkODRmYzMzZC4uZjc0NGUyYTQ0Y2ExNDFlZTg4YjQ1YjkwODFhNjc0NzU4Mjc4ZTBjYiAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
c2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbV91bml0dGVzdC5weQpAQCAtNDAsNiArNDAsNyBAQCBpbXBvcnQgc3VicHJv
Y2VzcwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCB1cmxsaWIKK2lt
cG9ydCBzaHV0aWwKIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZQogZnJvbSB3ZWJraXRweS5j
b21tb24uY2hlY2tvdXQuYXBpIGltcG9ydCBDaGVja291dApAQCAtNjUxLDYgKzY1Miw0MCBAQCBR
MWRUQngwQUFBQjQyaXRnNEdsZ1lKakd3TUREeU9ETXhNRHczNEdCZ1FFQUpQUURKQT09CiAgICAg
ICAgIHNlbGYuc2NtLnByb3BzZXQoInN2bjptaW1lLXR5cGUiLCBleHBlY3RlZF9taW1lX3R5cGUs
IGZpbGVwYXRoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX21pbWVfdHlwZSwg
c2VsZi5zY20ucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIGZpbGVwYXRoKSkKIAorICAgIGRlZiB0
ZXN0X3Nob3dfaGVhZChzZWxmKToKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRl
c3RfZmlsZSIsIHUiSGVsbG8hIiwgInV0Zi04IikKKyAgICAgICAgU1ZOVGVzdFJlcG9zaXRvcnku
X3N2bl9jb21taXQoImZvdXJ0aCBjb21taXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJI
ZWxsbyEiLCBzZWxmLnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZScpKQorCisgICAgZGVmIGRvX3Rl
c3RfZGlmZl9mb3JfZmlsZShzZWxmKToKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgo
J3Rlc3RfZmlsZScsICdzb21lIGNvbnRlbnQnKQorICAgICAgICBzZWxmLnNjbS5jb21taXRfd2l0
aF9tZXNzYWdlKCJhIHRlc3QgY29tbWl0IikKKyAgICAgICAgZGlmZiA9IHNlbGYuc2NtLmRpZmZf
Zm9yX2ZpbGUoJ3Rlc3RfZmlsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZiwgIiIp
CisKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZSIsICJjaGFuZ2Vk
IGNvbnRlbnQiKQorICAgICAgICBkaWZmID0gc2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9m
aWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCItc29tZSBjb250ZW50IiBpbiBkaWZmKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoIitjaGFuZ2VkIGNvbnRlbnQiIGluIGRpZmYpCisKKyAg
ICBkZWYgY2xlYW5fYm9ndXNfZGlyKHNlbGYpOgorICAgICAgICBzZWxmLmJvZ3VzX2RpciA9IHNl
bGYuc2NtLl9ib2d1c19kaXJfbmFtZSgpCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYu
Ym9ndXNfZGlyKToKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5ib2d1c19kaXIpCisK
KyAgICBkZWYgdGVzdF9kaWZmX2Zvcl9maWxlX3dpdGhfZXhpc3RpbmdfYm9ndXNfZGlyKHNlbGYp
OgorICAgICAgICBzZWxmLmNsZWFuX2JvZ3VzX2RpcigpCisgICAgICAgIG9zLm1rZGlyKHNlbGYu
Ym9ndXNfZGlyKQorICAgICAgICBzZWxmLmRvX3Rlc3RfZGlmZl9mb3JfZmlsZSgpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhzZWxmLmJvZ3VzX2RpcikpCisgICAgICAg
IHNodXRpbC5ybXRyZWUoc2VsZi5ib2d1c19kaXIpCisKKyAgICBkZWYgdGVzdF9kaWZmX2Zvcl9m
aWxlX3dpdGhfbWlzc2luZ19ib2d1c19kaXIoc2VsZik6CisgICAgICAgIHNlbGYuY2xlYW5fYm9n
dXNfZGlyKCkKKyAgICAgICAgc2VsZi5kb190ZXN0X2RpZmZfZm9yX2ZpbGUoKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKHNlbGYuYm9ndXNfZGlyKSkKKworCiBjbGFz
cyBHaXRUZXN0KFNDTVRlc3QpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtMTEyNCw2ICsx
MTU5LDMwIEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNlbGYuc2NtLmRl
bGV0ZSgndGVzdF9maWxlX2NvbW1pdDEnKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoInRlc3Rf
ZmlsZV9jb21taXQxIiBpbiBzZWxmLnNjbS5kZWxldGVkX2ZpbGVzKCkpCiAKKyAgICBkZWYgdGVz
dF90b19vYmplY3RfbmFtZShzZWxmKToKKyAgICAgICAgcmVscGF0aCA9ICd0ZXN0X2ZpbGVfY29t
bWl0MScKKyAgICAgICAgZnVsbHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRfY2hlY2tvdXRf
cGF0aCwgcmVscGF0aCkKKyAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlbHBhdGgsIHNlbGYuc2NtLnRvX29iamVjdF9uYW1lKGZ1bGxw
YXRoKSkKKworICAgIGRlZiB0ZXN0X3Nob3dfaGVhZChzZWxmKToKKyAgICAgICAgc2VsZi5fdHdv
X2xvY2FsX2NvbW1pdHMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJtb3JlIHRlc3QgY29u
dGVudCIsIHNlbGYuc2NtLnNob3dfaGVhZCgndGVzdF9maWxlX2NvbW1pdDEnKSkKKworICAgIGRl
ZiB0ZXN0X2RpZmZfZm9yX2ZpbGUoc2VsZik6CisgICAgICAgIHNlbGYuX3R3b19sb2NhbF9jb21t
aXRzKCkKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoJ3Rlc3RfZmlsZV9jb21taXQx
JywgIlVwZGF0ZWQiLCBlbmNvZGluZz1Ob25lKQorCisgICAgICAgIGRpZmYgPSBzZWxmLnNjbS5k
aWZmX2Zvcl9maWxlKCd0ZXN0X2ZpbGVfY29tbWl0MScpCisgICAgICAgIGNhY2hlZF9kaWZmID0g
c2VsZi5zY20uZGlmZl9mb3JfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoIitVcGRhdGVkIiBpbiBkaWZmKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
Ii1tb3JlIHRlc3QgY29udGVudCIgaW4gZGlmZikKKworICAgICAgICBzZWxmLnNjbS5hZGQoJ3Rl
c3RfZmlsZV9jb21taXQxJykKKworICAgICAgICBjYWNoZWRfZGlmZiA9IHNlbGYuc2NtLmRpZmZf
Zm9yX2ZpbGUoJ3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCIr
VXBkYXRlZCIgaW4gY2FjaGVkX2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiLW1vcmUg
dGVzdCBjb250ZW50IiBpbiBjYWNoZWRfZGlmZikKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9f
JzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9j
aHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5kZXggMDlkMzVhY2I1NTg4NzE5NmVmOTk2NWExMjdi
Mjc1NTQwYmE1MTJjNS4uMzVmMzJkNDdlZjdlMWVjNjhmN2VhNzVmM2YzMWVlOGNiZGJiY2M5NyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMu
cHkKQEAgLTU4LDcgKzU4LDcgQEAgaW1wb3J0IHVybGxpYgogaW1wb3J0IHdlYmJyb3dzZXIKIGlt
cG9ydCB6aXBmaWxlCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IHJ1bl9jb21tYW5kCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNr
b3V0LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KIGltcG9ydCB3ZWJraXRweS5jb21tb24u
Y2hlY2tvdXQuc2NtIGFzIHNjbQogCkBAIC02MTksOCArNjE5LDEzIEBAIGNsYXNzIFJlYmFzZWxp
bmVyKG9iamVjdCk6CiAgICAgICAgIF9sb2cuaW5mbygnICBIdG1sOiBjb3BpZWQgbmV3IGJhc2Vs
aW5lIGZpbGUgZnJvbSAiJXMiIHRvICIlcyIuJywKICAgICAgICAgICAgICAgICAgIGJhc2VsaW5l
X2Z1bGxwYXRoLCBuZXdfZmlsZSkKIAotICAgICAgICAjIEdldCB0aGUgb2xkIGJhc2VsaW5lIGZy
b20gU1ZOIGFuZCBzYXZlIHRvIHRoZSBodG1sIGRpcmVjdG9yeS4KLSAgICAgICAgb3V0cHV0ID0g
cnVuX3NoZWxsKFsnc3ZuJywgJ2NhdCcsICctcicsICdCQVNFJywgYmFzZWxpbmVfZnVsbHBhdGhd
KQorICAgICAgICAjIEdldCB0aGUgb2xkIGJhc2VsaW5lIGZyb20gdGhlIHJlcG9zaXRvcnkgYW5k
IHNhdmUgdG8gdGhlIGh0bWwgZGlyZWN0b3J5LgorICAgICAgICB0cnk6CisgICAgICAgICAgICBv
dXRwdXQgPSBzZWxmLl9zY20uc2hvd19oZWFkKGJhc2VsaW5lX2Z1bGxwYXRoKQorICAgICAgICBl
eGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAgICAgICBfbG9nLmluZm8oZSkKKyAgICAgICAg
ICAgIG91dHB1dCA9ICIiCisKICAgICAgICAgaWYgKG5vdCBvdXRwdXQpIG9yIChvdXRwdXQudXBw
ZXIoKS5yc3RyaXAoKS5lbmRzd2l0aCgKICAgICAgICAgICAgICdOTyBTVUNIIEZJTEUgT1IgRElS
RUNUT1JZJykpOgogICAgICAgICAgICAgX2xvZy5pbmZvKCcgIE5vIGJhc2UgZmlsZTogIiVzIics
IGJhc2VsaW5lX2Z1bGxwYXRoKQpAQCAtNjM3LDI3ICs2NDIsNyBAQCBjbGFzcyBSZWJhc2VsaW5l
cihvYmplY3QpOgogCiAgICAgICAgICMgR2V0IHRoZSBkaWZmIGJldHdlZW4gb2xkIGFuZCBuZXcg
YmFzZWxpbmVzIGFuZCBzYXZlIHRvIHRoZSBodG1sIGRpci4KICAgICAgICAgaWYgYmFzZWxpbmVf
ZmlsZW5hbWUudXBwZXIoKS5lbmRzd2l0aCgnLlRYVCcpOgotICAgICAgICAgICAgIyBJZiB0aGUg
dXNlciBzcGVjaWZpZWQgYSBjdXN0b20gZGlmZiBjb21tYW5kIGluIHRoZWlyIHN2biBjb25maWcK
LSAgICAgICAgICAgICMgZmlsZSwgdGhlbiBpdCdsbCBiZSB1c2VkIHdoZW4gd2UgZG8gc3ZuIGRp
ZmYsIHdoaWNoIHdlIGRvbid0IHdhbnQKLSAgICAgICAgICAgICMgdG8gaGFwcGVuIHNpbmNlIHdl
IHdhbnQgdGhlIHVuaWZpZWQgZGlmZi4gIFVzaW5nIC0tZGlmZi1jbWQ9ZGlmZgotICAgICAgICAg
ICAgIyBkb2Vzbid0IGFsd2F5cyB3b3JrLCBzaW5jZSB0aGV5IGNhbiBoYXZlIGFub3RoZXIgZGlm
ZiBleGVjdXRhYmxlCi0gICAgICAgICAgICAjIGluIHRoZWlyIHBhdGggdGhhdCBnaXZlcyBkaWZm
ZXJlbnQgbGluZSBlbmRpbmdzLiAgU28gd2UgdXNlIGEKLSAgICAgICAgICAgICMgYm9ndXMgdGVt
cCBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBkaXJlY3RvcnksIHdoaWNoIGdldHMKLSAgICAgICAg
ICAgICMgYXJvdW5kIHRoZXNlIHByb2JsZW1zLgotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoIndpbiIpOgotICAgICAgICAgICAgICAgIHBhcmVudF9kaXIgPSB0ZW1wZmls
ZS5nZXR0ZW1wZGlyKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFyZW50
X2RpciA9IHN5cy5wYXRoWzBdICAjIHRlbXBkaXIgaXMgbm90IHNlY3VyZS4KLSAgICAgICAgICAg
IGJvZ3VzX2RpciA9IG9zLnBhdGguam9pbihwYXJlbnRfZGlyLCAidGVtcF9zdm5fY29uZmlnIikK
LSAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgSHRtbDogdGVtcCBjb25maWcgZGlyOiAiJXMiLics
IGJvZ3VzX2RpcikKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhib2d1c19kaXIp
OgotICAgICAgICAgICAgICAgIG9zLm1rZGlyKGJvZ3VzX2RpcikKLSAgICAgICAgICAgICAgICBk
ZWxldGVfYm9ndXNfZGlyID0gVHJ1ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBkZWxldGVfYm9ndXNfZGlyID0gRmFsc2UKLQotICAgICAgICAgICAgb3V0cHV0ID0gcnVuX3No
ZWxsKFsic3ZuIiwgImRpZmYiLCAiLS1jb25maWctZGlyIiwgYm9ndXNfZGlyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lX2Z1bGxwYXRoXSkKKyAgICAgICAgICAgIG91
dHB1dCA9IHNlbGYuX3NjbS5kaWZmX2Zvcl9maWxlKGJhc2VsaW5lX2Z1bGxwYXRoLCBsb2c9X2xv
ZykKICAgICAgICAgICAgIGlmIG91dHB1dDoKICAgICAgICAgICAgICAgICBkaWZmX2ZpbGUgPSBn
ZXRfcmVzdWx0X2ZpbGVfZnVsbHBhdGgoCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMuaHRtbF9kaXJlY3RvcnksIGJhc2VsaW5lX2ZpbGVuYW1lLApAQCAtNjY4LDExICs2NTMsNiBA
QCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygn
ICBIdG1sOiBjcmVhdGVkIGJhc2VsaW5lIGRpZmYgZmlsZTogIiVzIi4nLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWZmX2ZpbGUpCiAKLSAgICAgICAgICAgIGlmIGRlbGV0ZV9ib2d1c19k
aXI6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShib2d1c19kaXIsIFRydWUpCi0gICAg
ICAgICAgICAgICAgX2xvZy5kZWJ1ZygnICBIdG1sOiByZW1vdmVkIHRlbXAgY29uZmlnIGRpcjog
IiVzIi4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9ndXNfZGlyKQotCiBjbGFzcyBI
dG1sR2VuZXJhdG9yKG9iamVjdCk6CiAgICAgIiIiQ2xhc3MgdG8gZ2VuZXJhdGUgcmViYXNlbGlu
aW5nIHJlc3VsdCBjb21wYXJpc29uIGh0bWwuIiIiCiAK
</data>
<flag name="review"
          id="47552"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>