<?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>74358</bug_id>
          
          <creation_ts>2011-12-12 15:17:10 -0800</creation_ts>
          <short_desc>prepare-Changelog should support updating the list of changed files</short_desc>
          <delta_ts>2013-02-03 21:47:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>ToolsHitList</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>107478</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>jyasskin</cc>
    
    <cc>rniwa</cc>
    
    <cc>timloh</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519565</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-12 15:17:10 -0800</bug_when>
    <thetext>It&apos;s really annoying when the list of files in the ChangeLog entry changes and you need to delete the whole entry and start over. Am I doing it wrong?

Specifically, I&apos;d like the script to:
1. Update the one-line description if the bug description has changed.
2. Update the list of changed files.
3. Update the date in the log entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519577</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-12 15:25:34 -0800</bug_when>
    <thetext>It&apos;s presumable that we could write a smarter prepare-ChangeLog script now that our ChangeLog parsing in webkitpy is quite fancy (thanks to ryosuke), but I think that would be a relatively large endeavor.

The current recommended method is to just re-make the entry.  prepare-ChagneLog does not know how to parse its own output. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519586</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-12 15:31:25 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; 1. Update the one-line description if the bug description has changed.

This is new territory for prepare-ChangeLog, since currently it does not do anything with the description.

&gt; 2. Update the list of changed files.

I presume you mean both he changed files and functions.

If it did this, it would need to highlight the newly added items, for people like me who add comments to each function in the list. Otherwise, it would be easy to miss something.

&gt; 3. Update the date in the log entry.

Great idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519636</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-12 16:05:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; 1. Update the one-line description if the bug description has changed.
&gt; 
&gt; This is new territory for prepare-ChangeLog, since currently it does not do anything with the description.

Yes. I&apos;m also OK with it being a different script or a special command-line flag, or even just being part of &quot;webkit-patch upload&quot;.

&gt; &gt; 2. Update the list of changed files.
&gt; 
&gt; I presume you mean both he changed files and functions.

Yes.

&gt; If it did this, it would need to highlight the newly added items, for people like me who add comments to each function in the list. Otherwise, it would be easy to miss something.

Oh, that&apos;s a great idea. Not sure how to do that though. It would be important to keep old comments I think. Some ideas:
1. Add a * at the beginning of the line.
2. Add an [OOPS new changelog line] to the line
3. Instead of interleaving, when the list changes, just add both sets in their entirety (one above the other) and the let the developer resolve it.

1 and 2 seem awful. 3 actually doesn&apos;t seem that bad to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813686</commentid>
    <comment_count>4</comment_count>
      <attachid>184108</attachid>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-01-22 19:27:44 -0800</bug_when>
    <thetext>Created attachment 184108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813740</commentid>
    <comment_count>5</comment_count>
      <attachid>184108</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 20:43:49 -0800</bug_when>
    <thetext>Comment on attachment 184108
Patch

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

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:65
&gt; +    @staticmethod
&gt; +    def _resolve_existing_entry(changelog_path):

No need for statics.  We really don&apos;t use @staticmethod in webkitpy.  Maybe we should, but historically it&apos;s been a huge testing pain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813747</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-01-22 20:52:24 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 184108 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184108&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:65
&gt; &gt; +    @staticmethod
&gt; &gt; +    def _resolve_existing_entry(changelog_path):
&gt; 
&gt; No need for statics.  We really don&apos;t use @staticmethod in webkitpy.  Maybe we should, but historically it&apos;s been a huge testing pain.

Whoops, you&apos;d think I&apos;d remember after getting rid of some yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813749</commentid>
    <comment_count>7</comment_count>
      <attachid>184122</attachid>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-01-22 20:52:57 -0800</bug_when>
    <thetext>Created attachment 184122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813828</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 22:11:49 -0800</bug_when>
    <thetext>I should be clear that my prejudice against statics is just that.  If you have python documentation which says that staticmethods are awesome and we should use them (and explains how nicely to test/mock them) then great.  But my limited experiance in python has taught me to fear @staticmethod, and very very strongly prefer instance methods when possible.  Anytime I can&apos;t seem to avoid staticmethod, I consider making a single shared instance of a class and defining all its members as instances instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813831</commentid>
    <comment_count>9</comment_count>
      <attachid>184122</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 22:16:04 -0800</bug_when>
    <thetext>Comment on attachment 184122
Patch

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

This looks OK to me.  There are some small mentions below.

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:64
&gt; +    def _resolve_existing_entry(self, changelog_path):

This function is a bit long for my tastes.  I&apos;m not sure how I would break it up, possibly into _update_date_line and _update_description functions.

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:65
&gt; +        &quot;&quot;&quot;When this is called, the top entry in the ChangeLog has just been

It&apos;s better to assert instead of document via comment IMO.

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:74
&gt; +            entries_gen = ChangeLog.parse_entries_from_file(changelog_file)

self. will make this easier to mock/override when we finally make this class ues Filesystem and thus be more testable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813852</commentid>
    <comment_count>10</comment_count>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-01-22 22:41:37 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 184122 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184122&amp;action=review
&gt; 
&gt; This looks OK to me.  There are some small mentions below.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:64
&gt; &gt; +    def _resolve_existing_entry(self, changelog_path):
&gt; 
&gt; This function is a bit long for my tastes.  I&apos;m not sure how I would break it up, possibly into _update_date_line and _update_description functions.

I&apos;ll split this into reading/writing the ChangeLog and merging the entries.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:74
&gt; &gt; +            entries_gen = ChangeLog.parse_entries_from_file(changelog_file)
&gt; 
&gt; self. will make this easier to mock/override when we finally make this class ues Filesystem and thus be more testable.

We&apos;re in PrepareChangeLog here, not ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813859</commentid>
    <comment_count>11</comment_count>
      <attachid>184147</attachid>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-01-22 22:51:01 -0800</bug_when>
    <thetext>Created attachment 184147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813866</commentid>
    <comment_count>12</comment_count>
      <attachid>184147</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 22:56:27 -0800</bug_when>
    <thetext>Comment on attachment 184147
Patch

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

OK.

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:31
&gt; +import codecs
&gt;  import logging
&gt; +import os

codecs and os imports are always &quot;bad signs&quot; that code is un-mockable. :)

&gt; Tools/Scripts/webkitpy/tool/steps/preparechangelog.py:33
&gt;  import sys

So is sys!  Clearly this file pre-dates our good FileSystem/Executive mocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813890</commentid>
    <comment_count>13</comment_count>
      <attachid>184147</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 23:23:59 -0800</bug_when>
    <thetext>Comment on attachment 184147
Patch

Clearing flags on attachment: 184147

Committed r140511: &lt;http://trac.webkit.org/changeset/140511&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813891</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 23:24:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823054</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-01 11:41:13 -0800</bug_when>
    <thetext>Does this command run automatically on webkit-patch upload or webkit-patch land? If so, we need an option to disable it. I don&apos;t want these commands to do random stuff on my change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823149</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-01 12:47:50 -0800</bug_when>
    <thetext>That seems like a very conservative viewpoint.  I hear you saying &quot;I don&apos;t trust this code, I want it off.&quot;  An alternate view might be &quot;I don&apos;t want this code to break stuff, we better make sure it&apos;s correct/predictable/understandable&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823167</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-01 13:03:25 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; That seems like a very conservative viewpoint.  I hear you saying &quot;I don&apos;t trust this code, I want it off.&quot;  An alternate view might be &quot;I don&apos;t want this code to break stuff, we better make sure it&apos;s correct/predictable/understandable&quot; :)

I just don&apos;t want my change logs to get updated. There are times I apply someone&apos;s patch and upload that again so I need an option for the script not to mess with the change logs I already have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823891</commentid>
    <comment_count>18</comment_count>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-02-03 14:54:02 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Does this command run automatically on webkit-patch upload or webkit-patch land? If so, we need an option to disable it. I don&apos;t want these commands to do random stuff on my change log.

This runs on prepare, upload and land-cowboy.

(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; That seems like a very conservative viewpoint.  I hear you saying &quot;I don&apos;t trust this code, I want it off.&quot;  An alternate view might be &quot;I don&apos;t want this code to break stuff, we better make sure it&apos;s correct/predictable/understandable&quot; :)
&gt; 
&gt; I just don&apos;t want my change logs to get updated. There are times I apply someone&apos;s patch and upload that again so I need an option for the script not to mess with the change logs I already have.

I think the only thing this patch would make webkit-patch do that you won&apos;t want is replace the name/email with yours. The rest of the entry should stay the same unless the changed files/functions list or the bug description has changed. I didn&apos;t have your use case in mind here, so it doesn&apos;t quite do what you&apos;d like. Both adding an option and not replacing the name/email should be straightforward changes, so I guess it&apos;s up to what you&apos;d rather have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823930</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-03 16:55:44 -0800</bug_when>
    <thetext>I see.  Well, updating the author is perhaps a bit extreme, and probably suggests we should ask for confirmation.  It&apos;s very easy to do, and we just need to respect the --non-interactive bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823931</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-03 16:56:18 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; That seems like a very conservative viewpoint.  I hear you saying &quot;I don&apos;t trust this code, I want it off.&quot;  An alternate view might be &quot;I don&apos;t want this code to break stuff, we better make sure it&apos;s correct/predictable/understandable&quot; :)
&gt; &gt; 
&gt; &gt; I just don&apos;t want my change logs to get updated. There are times I apply someone&apos;s patch and upload that again so I need an option for the script not to mess with the change logs I already have.
&gt; 
&gt; I think the only thing this patch would make webkit-patch do that you won&apos;t want is replace the name/email with yours. The rest of the entry should stay the same unless the changed files/functions list or the bug description has changed. I didn&apos;t have your use case in mind here, so it doesn&apos;t quite do what you&apos;d like. Both adding an option and not replacing the name/email should be straightforward changes, so I guess it&apos;s up to what you&apos;d rather have.

Adding an option to not update the change log will be good. There are cases where you want to intentionally omit some files e.g. a patch to rebaseline thousands of expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823978</commentid>
    <comment_count>21</comment_count>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-02-03 19:11:03 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I see.  Well, updating the author is perhaps a bit extreme, and probably suggests we should ask for confirmation.  It&apos;s very easy to do, and we just need to respect the --non-interactive bit.

What&apos;s do you think is the right thing to do here if we are in non-interactive mode? I think leaving the author unchanged seems a reasonable default, but I&apos;m not sure it makes sense to call this with --non-interactive given the rest of the added behaviour in PrepareChangeLog (i.e. adding the changed list below).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824007</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-03 20:49:02 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #19)
&gt; &gt; I see.  Well, updating the author is perhaps a bit extreme, and probably suggests we should ask for confirmation.  It&apos;s very easy to do, and we just need to respect the --non-interactive bit.
&gt; 
&gt; What&apos;s do you think is the right thing to do here if we are in non-interactive mode? I think leaving the author unchanged seems a reasonable default, but I&apos;m not sure it makes sense to call this with --non-interactive given the rest of the added behaviour in PrepareChangeLog (i.e. adding the changed list below).

I see, my point was more to notify you of the existance of the --non-interactive option, which all commands need to be aware to avoid trying to prompt a user when no user exists. :)

It&apos;s fine to remove the update-the-author functionality all together, it seems unlikely to be wanted very often.

The date and the changed files seem useful.

If folks don&apos;t want the list of changed files to include all files when there are more than N of them, then we should might code those heuristics into prepare-ChangeLog.

I guess I don&apos;t feel particularly strongly about any of this.  It seems that udating the list of changed files is a good default for webkit-patch.  If rniwa wants an option to be able to disable it, it is possible add an option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824029</commentid>
    <comment_count>23</comment_count>
    <who name="Timothy Loh">timloh</who>
    <bug_when>2013-02-03 21:47:26 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; I see, my point was more to notify you of the existance of the --non-interactive option, which all commands need to be aware to avoid trying to prompt a user when no user exists. :)
&gt; 
&gt; It&apos;s fine to remove the update-the-author functionality all together, it seems unlikely to be wanted very often.
&gt; 
&gt; The date and the changed files seem useful.
&gt; 
&gt; If folks don&apos;t want the list of changed files to include all files when there are more than N of them, then we should might code those heuristics into prepare-ChangeLog.
&gt; 
&gt; I guess I don&apos;t feel particularly strongly about any of this.  It seems that udating the list of changed files is a good default for webkit-patch.  If rniwa wants an option to be able to disable it, it is possible add an option.

I&apos;ve created a patch for this over at Bug 108788.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184108</attachid>
            <date>2013-01-22 19:27:44 -0800</date>
            <delta_ts>2013-01-22 20:52:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74358-20130123142437.patch</filename>
            <type>text/plain</type>
            <size>10528</size>
            <attacher name="Timothy Loh">timloh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmY2MTY5Mzg0ZDhmODFkMWEzOTBiY2RhNWY0NTEwODRk
Y2E4MWYzMS4uYzhiZjY2NmU4ZWM5N2JhODc3YTMwNjIxYjI3MTNmN2MyOTA1YWQ2NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEzLTAxLTIyICBUaW1vdGh5IExvaCAgPHRpbWxvaEBjaHJvbWl1bS5jb20+CisKKyAg
ICAgICAgcHJlcGFyZS1DaGFuZ2Vsb2cgc2hvdWxkIHN1cHBvcnQgdXBkYXRpbmcgdGhlIGxpc3Qg
b2YgY2hhbmdlZCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOZWVkaW5nIHRvIHJlLW1ha2UgQ2hhbmdlTG9nIGVudHJpZXMgd2hlbiB0aGUgbGlz
dCBvZiBmaWxlcy9mdW5jdGlvbnMKKyAgICAgICAgY2hhbmdlcyBpcyBhIGJpdCBhbm5veWluZywg
aXQnZCBiZSBuaWNlIHRvIGhhdmUgdGhpcyBtb3JlIGF1dG9tYXRlZC4KKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBgd2Via2l0LXBhdGNoIHVwZGF0ZScgdXBkYXRlIHRoZSBkYXRlIGxpbmUgYW5k
IGJ1ZworICAgICAgICBkZXNjcmlwdGlvbiBpZiBuZWVkZWQsIGFuZCBpZiB0aGUgbGlzdCBvZiBj
aGFuZ2VkIGZpbGVzL2Z1bmN0aW9ucyBoYXMKKyAgICAgICAgY2hhbmdlZCwgZWl0aGVyIHVwZGF0
ZXMgdGhlIGxpc3QgKGlmIHRoZXJlIGFyZSBubyBhbm5vdGF0aW9ucyksIG9yCisgICAgICAgIG90
aGVyd2lzZSBhcHBlbmRzIHRoZSBuZXcgbGlzdCBiZWxvdy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFy
ZUNoYW5nZUxvZyk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nLl9yZXNvbHZlX2V4aXN0aW5n
X2VudHJ5KToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cucnVuKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ191bml0dGVzdC5weToKKyAg
ICAgICAgKFByZXBhcmVDaGFuZ2VMb2dUZXN0LnRlc3RfcmVzb2x2ZV9leGlzdGluZ19lbnRyeSk6
CisgICAgICAgIChtYWtlX2VudHJ5KToKKyAgICAgICAgKHRlc3RfZW5zdXJlX2J1Z191cmwpOgor
CiAyMDEzLTAxLTIyICBGcmFuayBGYXJ6YW4gIDxmcmFua2ZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEFkZCBBbmRyb2lkIGluc3RydW1lbnRhdGlvbiB0ZXN0cyBmcm9tIENocm9taXVtTGludXgg
d2F0ZXJmYWxsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cHJlcGFyZWNoYW5nZWxvZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9w
cmVwYXJlY2hhbmdlbG9nLnB5CmluZGV4IDliZDU1ZTdkYzhkNzBiZDRlN2I2ZTU5NDc0OWJjMzZj
NWYzZWY4Y2IuLjUzNTc3MmU2MjY2ODJhZWFiN2RmYzMzZGI2MGE1Nzk2MjFlMzc2NWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9n
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdl
bG9nLnB5CkBAIC0yNiw3ICsyNiwxMCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAoraW1wb3J0IGNvZGVjcwogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCiBp
bXBvcnQgc3lzCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5nZWxvZyBpbXBv
cnQgQ2hhbmdlTG9nCkBAIC01OCwxMCArNjEsNTggQEAgY2xhc3MgUHJlcGFyZUNoYW5nZUxvZyhB
YnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmNhY2hlZF9sb29rdXAoc3Rh
dGUsICJidWdfdGl0bGUiKSwKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5idWdzLmJ1
Z191cmxfZm9yX2J1Z19pZChidWdfaWQpKQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBf
cmVzb2x2ZV9leGlzdGluZ19lbnRyeShjaGFuZ2Vsb2dfcGF0aCk6CisgICAgICAgICIiIldoZW4g
dGhpcyBpcyBjYWxsZWQsIHRoZSB0b3AgZW50cnkgaW4gdGhlIENoYW5nZUxvZyBoYXMganVzdCBi
ZWVuCisgICAgICAgIGNyZWF0ZWQgYnkgcHJlcGFyZS1DaGFuZ2VMb2csIGFuZCB0aGUgZW50cnkg
YmVsb3cgd2FzIGFscmVhZHkgdGhlcmUuCisgICAgICAgIFdlIG1lcmdlIHRoZSB0d28gaW50byBh
IHNpbmdsZSBlbnRyeSBhcyBmb2xsb3dzOgorICAgICAgICAtIFVwZGF0ZSB0aGUgZGF0ZSBsaW5l
IGFuZCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgbmV3IGVudHJ5LgorICAgICAgICAtIElmIHRo
ZSBsaXN0IG9mIGNoYW5nZWQgZmlsZXMvZnVuY3Rpb25zIGlzIGNoYW5nZWQsIHRoZW46CisgICAg
ICAgICAgLSBJZiB3ZSBoYXZlIGFubm90YXRlZCB0aGUgbGlzdCwgYXBwZW5kIHRoZSBuZXcgbGlz
dCBiZWxvdworICAgICAgICAgIC0gRWxzZSwgcmVwbGFjZSB0aGUgbGlzdAorICAgICAgICAiIiIK
KyAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihjaGFuZ2Vsb2dfcGF0aCwgInIiLCAidXRmLTgiKSBh
cyBjaGFuZ2Vsb2dfZmlsZToKKyAgICAgICAgICAgIGVudHJpZXNfZ2VuID0gQ2hhbmdlTG9nLnBh
cnNlX2VudHJpZXNfZnJvbV9maWxlKGNoYW5nZWxvZ19maWxlKQorICAgICAgICAgICAgZW50cmll
cyA9IHppcChlbnRyaWVzX2dlbiwgcmFuZ2UoMikpCisKKyAgICAgICAgaWYgbm90IGxlbihlbnRy
aWVzKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXhwZWN0ZWQgdG8gZmluZCBhdCBs
ZWFzdCB0d28gQ2hhbmdlTG9nIGVudHJpZXMgaW4gJXMgYnV0IGZvdW5kIG5vbmUuIiAlIGNoYW5n
ZWxvZ19wYXRoKQorICAgICAgICBpZiBsZW4oZW50cmllcykgPT0gMToKKyAgICAgICAgICAgICMg
SWYgd2UgZ2V0IGhlcmUsIGl0IHByb2JhYmx5IG1lYW5zIHdlJ3ZlIGp1c3Qgcm9sbGVkIG92ZXIg
dG8gYQorICAgICAgICAgICAgIyBuZXcgQ0wgZmlsZSwgc28gd2UgZG9uJ3QgaGF2ZSBhbnl0aGlu
ZyB0byByZXNvbHZlLgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgKG5ld19lbnRyeSwg
XyksIChvbGRfZW50cnksIF8pID0gZW50cmllcworICAgICAgICBmaW5hbF9lbnRyeSA9IG9sZF9l
bnRyeS5jb250ZW50cygpCisKKyAgICAgICAgbmV3X2RhdGVfbGluZSA9IG5ld19lbnRyeS5kYXRl
X2xpbmUoKQorICAgICAgICBvbGRfZGF0ZV9saW5lID0gb2xkX2VudHJ5LmRhdGVfbGluZSgpCisg
ICAgICAgIGlmIG5ld19kYXRlX2xpbmUgIT0gb2xkX2RhdGVfbGluZToKKyAgICAgICAgICAgIGZp
bmFsX2VudHJ5ID0gZmluYWxfZW50cnkucmVwbGFjZShvbGRfZGF0ZV9saW5lLCBuZXdfZGF0ZV9s
aW5lKQorCisgICAgICAgIG5ld19idWdfZGVzYyA9IG5ld19lbnRyeS5idWdfZGVzY3JpcHRpb24o
KQorICAgICAgICBvbGRfYnVnX2Rlc2MgPSBvbGRfZW50cnkuYnVnX2Rlc2NyaXB0aW9uKCkKKyAg
ICAgICAgaWYgbmV3X2J1Z19kZXNjIGFuZCBvbGRfYnVnX2Rlc2MgYW5kIG5ld19idWdfZGVzYyAh
PSBvbGRfYnVnX2Rlc2M6CisgICAgICAgICAgICBmaW5hbF9lbnRyeSA9IGZpbmFsX2VudHJ5LnJl
cGxhY2Uob2xkX2J1Z19kZXNjLCBuZXdfYnVnX2Rlc2MpCisKKyAgICAgICAgbmV3X3RvdWNoZWQg
PSBuZXdfZW50cnkudG91Y2hlZF9mdW5jdGlvbnMoKQorICAgICAgICBvbGRfdG91Y2hlZCA9IG9s
ZF9lbnRyeS50b3VjaGVkX2Z1bmN0aW9ucygpCisgICAgICAgIGlmIG5ld190b3VjaGVkICE9IG9s
ZF90b3VjaGVkOgorICAgICAgICAgICAgaWYgb2xkX2VudHJ5LmlzX3RvdWNoZWRfZmlsZXNfdGV4
dF9jbGVhbigpOgorICAgICAgICAgICAgICAgIGZpbmFsX2VudHJ5ID0gZmluYWxfZW50cnkucmVw
bGFjZShvbGRfZW50cnkudG91Y2hlZF9maWxlc190ZXh0KCksIG5ld19lbnRyeS50b3VjaGVkX2Zp
bGVzX3RleHQoKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZmluYWxfZW50
cnkgKz0gIlxuIiArIG5ld19lbnRyeS50b3VjaGVkX2ZpbGVzX3RleHQoKQorCisgICAgICAgIGZp
bmFsX2VudHJ5ICs9ICJcbiIKKworICAgICAgICBjaGFuZ2Vsb2cgPSBDaGFuZ2VMb2coY2hhbmdl
bG9nX3BhdGgpCisgICAgICAgIGNoYW5nZWxvZy5kZWxldGVfZW50cmllcygyKQorICAgICAgICBj
aGFuZ2Vsb2cucHJlcGVuZF90ZXh0KGZpbmFsX2VudHJ5KQorCiAgICAgZGVmIHJ1bihzZWxmLCBz
dGF0ZSk6CiAgICAgICAgIGlmIHNlbGYuY2FjaGVkX2xvb2t1cChzdGF0ZSwgImNoYW5nZWxvZ3Mi
KToKICAgICAgICAgICAgIHNlbGYuX2Vuc3VyZV9idWdfdXJsKHN0YXRlKQotICAgICAgICAgICAg
cmV0dXJuCisKICAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucHJl
cGFyZV9jaGFuZ2Vsb2dfY29tbWFuZCgpCiAgICAgICAgIGlmIHN0YXRlLmdldCgiYnVnX2lkIik6
CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1idWc9JXMiICUgc3RhdGVbImJ1Z19pZCJdKQpA
QCAtNzUsOCArMTI2LDE1IEBAIGNsYXNzIFByZXBhcmVDaGFuZ2VMb2coQWJzdHJhY3RTdGVwKToK
ICAgICAgICAgYXJncy5leHRlbmQoc2VsZi5fY2hhbmdlZF9maWxlcyhzdGF0ZSkpCiAKICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19p
Zl9mYWlsKGFyZ3MsIHNlbGYuX29wdGlvbnMucXVpZXQsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl90b29sLmV4ZWN1dGl2ZS5y
dW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgc2VsZi5fb3B0aW9ucy5xdWlldCwgY3dkPXNlbGYu
X3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBl
OgogICAgICAgICAgICAgX2xvZy5lcnJvcigiVW5hYmxlIHRvIHByZXBhcmUgQ2hhbmdlTG9ncy4i
KQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgICAgICAjIFRoZXNlIGFyZSB0aGUgQ2hh
bmdlTG9nIGVudHJpZXMgYWRkZWQgYnkgcHJlcGFyZS1DaGFuZ2Vsb2cKKyAgICAgICAgY2hhbmdl
bG9ncyA9IHJlLmZpbmRhbGwocidFZGl0aW5nIHRoZSAoXFMqL0NoYW5nZUxvZykgZmlsZS4nLCBv
dXRwdXQpCisgICAgICAgIGNoYW5nZWxvZ3MgPSBzZXQob3MucGF0aC5qb2luKHNlbGYuX3Rvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCwgZikgZm9yIGYgaW4gY2hhbmdlbG9ncykKKyAgICAgICAgZm9y
IGNoYW5nZWxvZyBpbiBjaGFuZ2Vsb2dzICYgc2V0KHNlbGYuY2FjaGVkX2xvb2t1cChzdGF0ZSwg
ImNoYW5nZWxvZ3MiKSk6CisgICAgICAgICAgICBzZWxmLl9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5
KGNoYW5nZWxvZykKKwogICAgICAgICBzZWxmLmRpZF9tb2RpZnlfY2hlY2tvdXQoc3RhdGUpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5n
ZWxvZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVw
YXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IGZjMzFkMWZhOTZlM2Y0ZjhjYzU2YjM1YzZh
Y2JmZDQ4NTZiODNhMzAuLjllNzg5ODQ3MjhhNmZlY2Q4MWVhY2IxNzg2YTAzZDdjNjFlNzlmMjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hh
bmdlbG9nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CkBAIC0zNiwxMCArMzYsODAgQEAgZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUK
IGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29s
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMucHJlcGFyZWNoYW5nZWxvZyBpbXBvcnQgUHJlcGFy
ZUNoYW5nZUxvZwogCisjIEZJWE1FOiBUaGVzZSB0ZXN0cyBzaG91bGQgdXNlIGEgTW9ja0ZpbGVT
eXN0ZW0gaW5zdGVhZCBvZiBhIHJlYWwgZmlsZSBzeXN0ZW0sCisjIG9uY2UgY2hhbmdlbG9nLnB5
IGFuZCBwcmVwYXJlY2hhbmdlbG9nLnB5IGFyZSBGaWxlU3lzdGVtIGNvbXBhdGlibGUuCiAKIGNs
YXNzIFByZXBhcmVDaGFuZ2VMb2dUZXN0KGNoYW5nZWxvZ191bml0dGVzdC5DaGFuZ2VMb2dUZXN0
KToKKyAgICBkZWYgdGVzdF9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5KHNlbGYpOgorICAgICAgICBy
b2xsX292ZXIgPSAiPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTItMTAtMDIgPT0iCisK
KyAgICAgICAgaGVhZGVycyA9IFsiMjAxMy0wMS0xOCAgVGltb3RoeSBMb2ggIDx0aW1sb2hAY2hy
b21pdW0uY29tPlxuXG4iLAorICAgICAgICAgICAgICAgICAgICIyMDEzLTAxLTIwICBUaW1vdGh5
IExvaCAgPHRpbWxvaEBjaHJvbWl1bS5jb20+XG5cbiIsCisgICAgICAgICAgICAgICAgICB1IjIw
MDktMDgtMTcgIFRvciBBcm5lIFZlc3RiXHhmOCAgPHZlc3Rib0B3ZWJraXQub3JnPlxuXG4iLAor
ICAgICAgICAgICAgICAgICAgdSIyMDA5LTA4LTE4ICBUb3IgQXJuZSBWZXN0Ylx4ZjggIDx2ZXN0
Ym9Ad2Via2l0Lm9yZz5cblxuIiwKKyAgICAgICAgICAgICAgICAgIF0KKworICAgICAgICBidWdf
ZGVzY3MgPSBbIiAgICAgICAgcHJlcGFyZS1DaGFuZ2Vsb2cgc2hvdWxkIHN1cHBvcnQgdXBkYXRp
bmcgdGhlIGxpc3Qgb2YgY2hhbmdlZCBmaWxlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICIg
ICAgICAgIHdlYmtpdC1wYXRjaCB1cGxvYWQgc2hvdWxkIHN1cHBvcnQgdXBkYXRpbmcgdGhlIGxp
c3Qgb2YgY2hhbmdlZCBmaWxlc1xuIl0KKworICAgICAgICBidWdfdXJsID0gIiAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzU4XG5cbiIKKworICAgICAg
ICBkZXNjcmlwdGlvbnMgPSBbIiIsICIgICAgICAgIEEgZGVzY3JpcHRpb24gb2YgdGhlIGNoYW5n
ZXMuXG5cbiIsCisgICAgICAgICAgICAgICAgIiAgICAgICAgQSBkZXNjcmlwdGlvbi5cblxuICAg
ICAgICBXaXRoIHNvbWVcbiAgICAgICAgbGluZSBicmVha3NcblxuIl0KKworICAgICAgICBjaGFu
Z2VzID0gWworIiIiICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJl
Y2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZyk6CisgICAgICAgIChQcmVw
YXJlQ2hhbmdlTG9nLnJ1bik6XG5cbiIiIiwKKyIiIiAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VM
b2cuX3Jlc29sdmVfZXhpc3RpbmdfZW50cnkpOgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZyk6
CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nLnJ1bik6XG5cbiIiIiwKKyIiIiAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weToKKyAgICAgICAg
KFByZXBhcmVDaGFuZ2VMb2cpOiBTb21lIGFubm90YXRpb25zCisgICAgICAgIChQcmVwYXJlQ2hh
bmdlTG9nLnJ1bik6CisgICAgICAgICAgICBNb3JlIGFubm90YXRpb25zXG5cbiIiIiwKKyIiIiAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weToK
KyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cpOiBTb21lIGFubm90YXRpb25zCisgICAgICAgIChQ
cmVwYXJlQ2hhbmdlTG9nLnJ1bik6CisgICAgICAgICAgICBNb3JlIGFubm90YXRpb25zCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weToK
KyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cuX3Jlc29sdmVfZXhpc3RpbmdfZW50cnkpOgorICAg
ICAgICAoUHJlcGFyZUNoYW5nZUxvZyk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nLnJ1bik6
XG5cbiIiIiwKKyAgICAgICAgICAgIF0KKworICAgICAgICBkZWYgbWFrZV9lbnRyeShpbmRpY2Vz
KToKKyAgICAgICAgICAgIGEsIGIsIGMsIGQgPSBpbmRpY2VzCisgICAgICAgICAgICByZXR1cm4g
aGVhZGVyc1thXSArIGJ1Z19kZXNjc1tiXSArIGJ1Z191cmwgKyBkZXNjcmlwdGlvbnNbY10gKyBj
aGFuZ2VzW2RdCisKKyAgICAgICAgdGVzdF9jYXNlcyA9IFsoKDAsIDAsIDAsIDApLCAoMCwgMCwg
MCwgMCksICgwLCAwLCAwLCAwKSksCisgICAgICAgICAgICAgICAgICAgICAgKCgwLCAwLCAwLCAw
KSwgKDAsIDAsIDEsIDApLCAoMCwgMCwgMSwgMCkpLAorICAgICAgICAgICAgICAgICAgICAgICgo
MSwgMCwgMCwgMCksICgwLCAwLCAyLCAwKSwgKDEsIDAsIDIsIDApKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAoKDAsIDEsIDAsIDApLCAoMCwgMCwgMSwgMCksICgwLCAxLCAxLCAwKSksCisgICAg
ICAgICAgICAgICAgICAgICAgKCgwLCAwLCAwLCAxKSwgKDAsIDAsIDAsIDApLCAoMCwgMCwgMCwg
MSkpLAorICAgICAgICAgICAgICAgICAgICAgICgoMCwgMCwgMCwgMCksICgwLCAwLCAxLCAxKSwg
KDAsIDAsIDEsIDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAoKDAsIDAsIDAsIDApLCAoMCwg
MCwgMiwgMiksICgwLCAwLCAyLCAyKSksCisgICAgICAgICAgICAgICAgICAgICAgKCgwLCAwLCAw
LCAxKSwgKDAsIDAsIDEsIDIpLCAoMCwgMCwgMSwgMykpLAorICAgICAgICAgICAgICAgICAgICAg
ICgoMSwgMSwgMCwgMSksICgwLCAwLCAwLCAyKSwgKDEsIDEsIDAsIDMpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAoKDMsIDAsIDAsIDApLCAoMiwgMCwgMSwgMCksICgzLCAwLCAxLCAwKSksCisg
ICAgICAgIF0KKworICAgICAgICBmb3IgbmV3LCBvbGQsIGZpbmFsIGluIHRlc3RfY2FzZXM6Cisg
ICAgICAgICAgICBuZXdfZW50cnkgPSBtYWtlX2VudHJ5KG5ldykKKyAgICAgICAgICAgIG9sZF9l
bnRyeSA9IG1ha2VfZW50cnkob2xkKQorICAgICAgICAgICAgc3RhcnRfZmlsZSA9IG5ld19lbnRy
eSArIG9sZF9lbnRyeSArIHJvbGxfb3ZlcgorCisgICAgICAgICAgICBmaW5hbF9lbnRyeSA9IG1h
a2VfZW50cnkoZmluYWwpCisgICAgICAgICAgICBlbmRfZmlsZSA9IGZpbmFsX2VudHJ5ICsgcm9s
bF9vdmVyCisKKyAgICAgICAgICAgIHBhdGggPSBzZWxmLl93cml0ZV90bXBfZmlsZV93aXRoX2Nv
bnRlbnRzKHN0YXJ0X2ZpbGUuZW5jb2RlKCJ1dGYtOCIpKQorICAgICAgICAgICAgUHJlcGFyZUNo
YW5nZUxvZy5fcmVzb2x2ZV9leGlzdGluZ19lbnRyeShwYXRoKQorICAgICAgICAgICAgYWN0dWFs
X291dHB1dCA9IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhwYXRoLCAidXRmLTgiKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsX291dHB1dCwgZW5kX2ZpbGUpCisKICAgICBk
ZWYgdGVzdF9lbnN1cmVfYnVnX3VybChzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91
bGQgdXNlIGEgTW9ja0ZpbGVTeXN0ZW0gaW5zdGVhZCBvZiBhIHJlYWwgRmlsZVN5c3RlbS4KICAg
ICAgICAgY2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQogICAgICAgICBzdGVwID0gUHJlcGFyZUNo
YW5nZUxvZyhNb2NrVG9vbCgpLCBNb2NrT3B0aW9ucygpKQogICAgICAgICBjaGFuZ2Vsb2dfY29u
dGVudHMgPSB1IiVzXG4lcyIgJSAoc2VsZi5fbmV3X2VudHJ5X2JvaWxlcnBsYXRlLCBzZWxmLl9l
eGFtcGxlX2NoYW5nZWxvZykKQEAgLTQ5LDcgKzExOSw3IEBAIGNsYXNzIFByZXBhcmVDaGFuZ2VM
b2dUZXN0KGNoYW5nZWxvZ191bml0dGVzdC5DaGFuZ2VMb2dUZXN0KToKICAgICAgICAgICAgICJi
dWdfaWQiOiAxMjM0LAogICAgICAgICAgICAgImNoYW5nZWxvZ3MiOiBbY2hhbmdlbG9nX3BhdGhd
LAogICAgICAgICB9Ci0gICAgICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5y
dW4sIFtzdGF0ZV0pCisgICAgICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5f
ZW5zdXJlX2J1Z191cmwsIFtzdGF0ZV0pCiAgICAgICAgIGFjdHVhbF9jb250ZW50cyA9IHNlbGYu
X3JlYWRfZmlsZV9jb250ZW50cyhjaGFuZ2Vsb2dfcGF0aCwgInV0Zi04IikKICAgICAgICAgZXhw
ZWN0ZWRfbWVzc2FnZSA9ICJFeGFtcGxlIHRpdGxlXG4gICAgICAgIGh0dHA6Ly9leGFtcGxlLmNv
bS8xMjM0IgogICAgICAgICBleHBlY3RlZF9jb250ZW50cyA9IGNoYW5nZWxvZ19jb250ZW50cy5y
ZXBsYWNlKCJOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS5cbiAgICAgICAgTmVlZCB0
aGUgYnVnIFVSTCAoT09QUyEpLiIsIGV4cGVjdGVkX21lc3NhZ2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184122</attachid>
            <date>2013-01-22 20:52:57 -0800</date>
            <delta_ts>2013-01-22 22:50:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74358-20130123154950.patch</filename>
            <type>text/plain</type>
            <size>10536</size>
            <attacher name="Timothy Loh">timloh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmY2MTY5Mzg0ZDhmODFkMWEzOTBiY2RhNWY0NTEwODRk
Y2E4MWYzMS4uYzJmYmYwYjRhY2Y1MmZmYTYzNTM1ZWIwNWY4OTAzZGY0MmMzZGNjNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEzLTAxLTIyICBUaW1vdGh5IExvaCAgPHRpbWxvaEBjaHJvbWl1bS5jb20+CisKKyAg
ICAgICAgcHJlcGFyZS1DaGFuZ2Vsb2cgc2hvdWxkIHN1cHBvcnQgdXBkYXRpbmcgdGhlIGxpc3Qg
b2YgY2hhbmdlZCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOZWVkaW5nIHRvIHJlLW1ha2UgQ2hhbmdlTG9nIGVudHJpZXMgd2hlbiB0aGUgbGlz
dCBvZiBmaWxlcy9mdW5jdGlvbnMKKyAgICAgICAgY2hhbmdlcyBpcyBhIGJpdCBhbm5veWluZywg
aXQnZCBiZSBuaWNlIHRvIGhhdmUgdGhpcyBtb3JlIGF1dG9tYXRlZC4KKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBgd2Via2l0LXBhdGNoIHVwZGF0ZScgdXBkYXRlIHRoZSBkYXRlIGxpbmUgYW5k
IGJ1ZworICAgICAgICBkZXNjcmlwdGlvbiBpZiBuZWVkZWQsIGFuZCBpZiB0aGUgbGlzdCBvZiBj
aGFuZ2VkIGZpbGVzL2Z1bmN0aW9ucyBoYXMKKyAgICAgICAgY2hhbmdlZCwgZWl0aGVyIHVwZGF0
ZXMgdGhlIGxpc3QgKGlmIHRoZXJlIGFyZSBubyBhbm5vdGF0aW9ucyksIG9yCisgICAgICAgIG90
aGVyd2lzZSBhcHBlbmRzIHRoZSBuZXcgbGlzdCBiZWxvdy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFy
ZUNoYW5nZUxvZy5fcmVzb2x2ZV9leGlzdGluZ19lbnRyeSk6CisgICAgICAgIChQcmVwYXJlQ2hh
bmdlTG9nLnJ1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBh
cmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nVGVzdC50
ZXN0X3Jlc29sdmVfZXhpc3RpbmdfZW50cnkpOgorICAgICAgICAobWFrZV9lbnRyeSk6CisgICAg
ICAgICh0ZXN0X2Vuc3VyZV9idWdfdXJsKToKKwogMjAxMy0wMS0yMiAgRnJhbmsgRmFyemFuICA8
ZnJhbmtmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQW5kcm9pZCBpbnN0cnVtZW50YXRp
b24gdGVzdHMgZnJvbSBDaHJvbWl1bUxpbnV4IHdhdGVyZmFsbApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2cucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weQppbmRleCA5YmQ1
NWU3ZGM4ZDcwYmQ0ZTdiNmU1OTQ3NDliYzM2YzVmM2VmOGNiLi4zYjYyYWY1ZGZjODI1OTU5M2Nm
NDhmODkwNWU3YmU2NDJkMjRiMmZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weQpAQCAtMjYsNyArMjYsMTAgQEAKICMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBjb2RlY3MKIGltcG9ydCBsb2dn
aW5nCitpbXBvcnQgb3MKK2ltcG9ydCByZQogaW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5jaGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0IENoYW5nZUxvZwpAQCAtNTgsMTAgKzYxLDU3
IEBAIGNsYXNzIFByZXBhcmVDaGFuZ2VMb2coQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiYnVnX3RpdGxlIiksCiAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKSkKIAor
ICAgIGRlZiBfcmVzb2x2ZV9leGlzdGluZ19lbnRyeShzZWxmLCBjaGFuZ2Vsb2dfcGF0aCk6Cisg
ICAgICAgICIiIldoZW4gdGhpcyBpcyBjYWxsZWQsIHRoZSB0b3AgZW50cnkgaW4gdGhlIENoYW5n
ZUxvZyBoYXMganVzdCBiZWVuCisgICAgICAgIGNyZWF0ZWQgYnkgcHJlcGFyZS1DaGFuZ2VMb2cs
IGFuZCB0aGUgZW50cnkgYmVsb3cgd2FzIGFscmVhZHkgdGhlcmUuCisgICAgICAgIFdlIG1lcmdl
IHRoZSB0d28gaW50byBhIHNpbmdsZSBlbnRyeSBhcyBmb2xsb3dzOgorICAgICAgICAtIFVwZGF0
ZSB0aGUgZGF0ZSBsaW5lIGFuZCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgbmV3IGVudHJ5Lgor
ICAgICAgICAtIElmIHRoZSBsaXN0IG9mIGNoYW5nZWQgZmlsZXMvZnVuY3Rpb25zIGlzIGNoYW5n
ZWQsIHRoZW46CisgICAgICAgICAgLSBJZiB3ZSBoYXZlIGFubm90YXRlZCB0aGUgbGlzdCwgYXBw
ZW5kIHRoZSBuZXcgbGlzdCBiZWxvdworICAgICAgICAgIC0gRWxzZSwgcmVwbGFjZSB0aGUgbGlz
dAorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihjaGFuZ2Vsb2dfcGF0aCwg
InIiLCAidXRmLTgiKSBhcyBjaGFuZ2Vsb2dfZmlsZToKKyAgICAgICAgICAgIGVudHJpZXNfZ2Vu
ID0gQ2hhbmdlTG9nLnBhcnNlX2VudHJpZXNfZnJvbV9maWxlKGNoYW5nZWxvZ19maWxlKQorICAg
ICAgICAgICAgZW50cmllcyA9IHppcChlbnRyaWVzX2dlbiwgcmFuZ2UoMikpCisKKyAgICAgICAg
aWYgbm90IGxlbihlbnRyaWVzKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXhwZWN0
ZWQgdG8gZmluZCBhdCBsZWFzdCB0d28gQ2hhbmdlTG9nIGVudHJpZXMgaW4gJXMgYnV0IGZvdW5k
IG5vbmUuIiAlIGNoYW5nZWxvZ19wYXRoKQorICAgICAgICBpZiBsZW4oZW50cmllcykgPT0gMToK
KyAgICAgICAgICAgICMgSWYgd2UgZ2V0IGhlcmUsIGl0IHByb2JhYmx5IG1lYW5zIHdlJ3ZlIGp1
c3Qgcm9sbGVkIG92ZXIgdG8gYQorICAgICAgICAgICAgIyBuZXcgQ0wgZmlsZSwgc28gd2UgZG9u
J3QgaGF2ZSBhbnl0aGluZyB0byByZXNvbHZlLgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAg
ICAgKG5ld19lbnRyeSwgXyksIChvbGRfZW50cnksIF8pID0gZW50cmllcworICAgICAgICBmaW5h
bF9lbnRyeSA9IG9sZF9lbnRyeS5jb250ZW50cygpCisKKyAgICAgICAgbmV3X2RhdGVfbGluZSA9
IG5ld19lbnRyeS5kYXRlX2xpbmUoKQorICAgICAgICBvbGRfZGF0ZV9saW5lID0gb2xkX2VudHJ5
LmRhdGVfbGluZSgpCisgICAgICAgIGlmIG5ld19kYXRlX2xpbmUgIT0gb2xkX2RhdGVfbGluZToK
KyAgICAgICAgICAgIGZpbmFsX2VudHJ5ID0gZmluYWxfZW50cnkucmVwbGFjZShvbGRfZGF0ZV9s
aW5lLCBuZXdfZGF0ZV9saW5lKQorCisgICAgICAgIG5ld19idWdfZGVzYyA9IG5ld19lbnRyeS5i
dWdfZGVzY3JpcHRpb24oKQorICAgICAgICBvbGRfYnVnX2Rlc2MgPSBvbGRfZW50cnkuYnVnX2Rl
c2NyaXB0aW9uKCkKKyAgICAgICAgaWYgbmV3X2J1Z19kZXNjIGFuZCBvbGRfYnVnX2Rlc2MgYW5k
IG5ld19idWdfZGVzYyAhPSBvbGRfYnVnX2Rlc2M6CisgICAgICAgICAgICBmaW5hbF9lbnRyeSA9
IGZpbmFsX2VudHJ5LnJlcGxhY2Uob2xkX2J1Z19kZXNjLCBuZXdfYnVnX2Rlc2MpCisKKyAgICAg
ICAgbmV3X3RvdWNoZWQgPSBuZXdfZW50cnkudG91Y2hlZF9mdW5jdGlvbnMoKQorICAgICAgICBv
bGRfdG91Y2hlZCA9IG9sZF9lbnRyeS50b3VjaGVkX2Z1bmN0aW9ucygpCisgICAgICAgIGlmIG5l
d190b3VjaGVkICE9IG9sZF90b3VjaGVkOgorICAgICAgICAgICAgaWYgb2xkX2VudHJ5LmlzX3Rv
dWNoZWRfZmlsZXNfdGV4dF9jbGVhbigpOgorICAgICAgICAgICAgICAgIGZpbmFsX2VudHJ5ID0g
ZmluYWxfZW50cnkucmVwbGFjZShvbGRfZW50cnkudG91Y2hlZF9maWxlc190ZXh0KCksIG5ld19l
bnRyeS50b3VjaGVkX2ZpbGVzX3RleHQoKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgZmluYWxfZW50cnkgKz0gIlxuIiArIG5ld19lbnRyeS50b3VjaGVkX2ZpbGVzX3RleHQo
KQorCisgICAgICAgIGZpbmFsX2VudHJ5ICs9ICJcbiIKKworICAgICAgICBjaGFuZ2Vsb2cgPSBD
aGFuZ2VMb2coY2hhbmdlbG9nX3BhdGgpCisgICAgICAgIGNoYW5nZWxvZy5kZWxldGVfZW50cmll
cygyKQorICAgICAgICBjaGFuZ2Vsb2cucHJlcGVuZF90ZXh0KGZpbmFsX2VudHJ5KQorCiAgICAg
ZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlmIHNlbGYuY2FjaGVkX2xvb2t1cChzdGF0
ZSwgImNoYW5nZWxvZ3MiKToKICAgICAgICAgICAgIHNlbGYuX2Vuc3VyZV9idWdfdXJsKHN0YXRl
KQotICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVj
YXRlZF9wb3J0KCkucHJlcGFyZV9jaGFuZ2Vsb2dfY29tbWFuZCgpCiAgICAgICAgIGlmIHN0YXRl
LmdldCgiYnVnX2lkIik6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1idWc9JXMiICUgc3Rh
dGVbImJ1Z19pZCJdKQpAQCAtNzUsOCArMTI1LDE1IEBAIGNsYXNzIFByZXBhcmVDaGFuZ2VMb2co
QWJzdHJhY3RTdGVwKToKICAgICAgICAgYXJncy5leHRlbmQoc2VsZi5fY2hhbmdlZF9maWxlcyhz
dGF0ZSkpCiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUu
cnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIHNlbGYuX29wdGlvbnMucXVpZXQsIGN3ZD1zZWxm
Ll90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl90
b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgc2VsZi5fb3B0aW9ucy5x
dWlldCwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKICAgICAgICAgZXhjZXB0
IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAgX2xvZy5lcnJvcigiVW5hYmxlIHRvIHByZXBh
cmUgQ2hhbmdlTG9ncy4iKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgICAgICAjIFRo
ZXNlIGFyZSB0aGUgQ2hhbmdlTG9nIGVudHJpZXMgYWRkZWQgYnkgcHJlcGFyZS1DaGFuZ2Vsb2cK
KyAgICAgICAgY2hhbmdlbG9ncyA9IHJlLmZpbmRhbGwocidFZGl0aW5nIHRoZSAoXFMqL0NoYW5n
ZUxvZykgZmlsZS4nLCBvdXRwdXQpCisgICAgICAgIGNoYW5nZWxvZ3MgPSBzZXQob3MucGF0aC5q
b2luKHNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZikgZm9yIGYgaW4gY2hhbmdlbG9n
cykKKyAgICAgICAgZm9yIGNoYW5nZWxvZyBpbiBjaGFuZ2Vsb2dzICYgc2V0KHNlbGYuY2FjaGVk
X2xvb2t1cChzdGF0ZSwgImNoYW5nZWxvZ3MiKSk6CisgICAgICAgICAgICBzZWxmLl9yZXNvbHZl
X2V4aXN0aW5nX2VudHJ5KGNoYW5nZWxvZykKKwogICAgICAgICBzZWxmLmRpZF9tb2RpZnlfY2hl
Y2tvdXQoc3RhdGUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcHJlcGFyZWNoYW5nZWxvZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IGZjMzFkMWZhOTZl
M2Y0ZjhjYzU2YjM1YzZhY2JmZDQ4NTZiODNhMzAuLjQ1ZjMwMDkyMWFiMGU3NzcxODBkMGEzN2My
MjQzYWE5YmQyM2UyZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CkBAIC0zNiwxMCAr
MzYsODIgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0
IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09w
dGlvbnMsIE1vY2tUb29sCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMucHJlcGFyZWNoYW5nZWxv
ZyBpbXBvcnQgUHJlcGFyZUNoYW5nZUxvZwogCisjIEZJWE1FOiBUaGVzZSB0ZXN0cyBzaG91bGQg
dXNlIGEgTW9ja0ZpbGVTeXN0ZW0gaW5zdGVhZCBvZiBhIHJlYWwgZmlsZSBzeXN0ZW0sCisjIG9u
Y2UgY2hhbmdlbG9nLnB5IGFuZCBwcmVwYXJlY2hhbmdlbG9nLnB5IGFyZSBGaWxlU3lzdGVtIGNv
bXBhdGlibGUuCiAKIGNsYXNzIFByZXBhcmVDaGFuZ2VMb2dUZXN0KGNoYW5nZWxvZ191bml0dGVz
dC5DaGFuZ2VMb2dUZXN0KToKKyAgICBkZWYgdGVzdF9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5KHNl
bGYpOgorICAgICAgICBzdGVwID0gUHJlcGFyZUNoYW5nZUxvZyhNb2NrVG9vbCgpLCBNb2NrT3B0
aW9ucygpKQorCisgICAgICAgIHJvbGxfb3ZlciA9ICI9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VM
b2ctMjAxMi0xMC0wMiA9PSIKKworICAgICAgICBoZWFkZXJzID0gWyIyMDEzLTAxLTE4ICBUaW1v
dGh5IExvaCAgPHRpbWxvaEBjaHJvbWl1bS5jb20+XG5cbiIsCisgICAgICAgICAgICAgICAgICAg
IjIwMTMtMDEtMjAgIFRpbW90aHkgTG9oICA8dGltbG9oQGNocm9taXVtLmNvbT5cblxuIiwKKyAg
ICAgICAgICAgICAgICAgIHUiMjAwOS0wOC0xNyAgVG9yIEFybmUgVmVzdGJceGY4ICA8dmVzdGJv
QHdlYmtpdC5vcmc+XG5cbiIsCisgICAgICAgICAgICAgICAgICB1IjIwMDktMDgtMTggIFRvciBB
cm5lIFZlc3RiXHhmOCAgPHZlc3Rib0B3ZWJraXQub3JnPlxuXG4iLAorICAgICAgICAgICAgICAg
ICAgXQorCisgICAgICAgIGJ1Z19kZXNjcyA9IFsiICAgICAgICBwcmVwYXJlLUNoYW5nZWxvZyBz
aG91bGQgc3VwcG9ydCB1cGRhdGluZyB0aGUgbGlzdCBvZiBjaGFuZ2VkIGZpbGVzXG4iLAorICAg
ICAgICAgICAgICAgICAgICAgIiAgICAgICAgd2Via2l0LXBhdGNoIHVwbG9hZCBzaG91bGQgc3Vw
cG9ydCB1cGRhdGluZyB0aGUgbGlzdCBvZiBjaGFuZ2VkIGZpbGVzXG4iXQorCisgICAgICAgIGJ1
Z191cmwgPSAiICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQzNThcblxuIgorCisgICAgICAgIGRlc2NyaXB0aW9ucyA9IFsiIiwgIiAgICAgICAgQSBkZXNj
cmlwdGlvbiBvZiB0aGUgY2hhbmdlcy5cblxuIiwKKyAgICAgICAgICAgICAgICAiICAgICAgICBB
IGRlc2NyaXB0aW9uLlxuXG4gICAgICAgIFdpdGggc29tZVxuICAgICAgICBsaW5lIGJyZWFrc1xu
XG4iXQorCisgICAgICAgIGNoYW5nZXMgPSBbCisiIiIgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2cucHk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdl
TG9nKToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cucnVuKTpcblxuIiIiLAorIiIiICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5OgorICAg
ICAgICAoUHJlcGFyZUNoYW5nZUxvZy5fcmVzb2x2ZV9leGlzdGluZ19lbnRyeSk6CisgICAgICAg
IChQcmVwYXJlQ2hhbmdlTG9nKToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cucnVuKTpcblxu
IiIiLAorIiIiICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hh
bmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZyk6IFNvbWUgYW5ub3RhdGlvbnMK
KyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cucnVuKToKKyAgICAgICAgICAgIE1vcmUgYW5ub3Rh
dGlvbnNcblxuIiIiLAorIiIiICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9w
cmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZyk6IFNvbWUgYW5u
b3RhdGlvbnMKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cucnVuKToKKyAgICAgICAgICAgIE1v
cmUgYW5ub3RhdGlvbnMKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9w
cmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZy5fcmVzb2x2ZV9l
eGlzdGluZ19lbnRyeSk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nKToKKyAgICAgICAgKFBy
ZXBhcmVDaGFuZ2VMb2cucnVuKTpcblxuIiIiLAorICAgICAgICAgICAgXQorCisgICAgICAgIGRl
ZiBtYWtlX2VudHJ5KGluZGljZXMpOgorICAgICAgICAgICAgYSwgYiwgYywgZCA9IGluZGljZXMK
KyAgICAgICAgICAgIHJldHVybiBoZWFkZXJzW2FdICsgYnVnX2Rlc2NzW2JdICsgYnVnX3VybCAr
IGRlc2NyaXB0aW9uc1tjXSArIGNoYW5nZXNbZF0KKworICAgICAgICB0ZXN0X2Nhc2VzID0gWygo
MCwgMCwgMCwgMCksICgwLCAwLCAwLCAwKSwgKDAsIDAsIDAsIDApKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAoKDAsIDAsIDAsIDApLCAoMCwgMCwgMSwgMCksICgwLCAwLCAxLCAwKSksCisgICAg
ICAgICAgICAgICAgICAgICAgKCgxLCAwLCAwLCAwKSwgKDAsIDAsIDIsIDApLCAoMSwgMCwgMiwg
MCkpLAorICAgICAgICAgICAgICAgICAgICAgICgoMCwgMSwgMCwgMCksICgwLCAwLCAxLCAwKSwg
KDAsIDEsIDEsIDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAoKDAsIDAsIDAsIDEpLCAoMCwg
MCwgMCwgMCksICgwLCAwLCAwLCAxKSksCisgICAgICAgICAgICAgICAgICAgICAgKCgwLCAwLCAw
LCAwKSwgKDAsIDAsIDEsIDEpLCAoMCwgMCwgMSwgMCkpLAorICAgICAgICAgICAgICAgICAgICAg
ICgoMCwgMCwgMCwgMCksICgwLCAwLCAyLCAyKSwgKDAsIDAsIDIsIDIpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAoKDAsIDAsIDAsIDEpLCAoMCwgMCwgMSwgMiksICgwLCAwLCAxLCAzKSksCisg
ICAgICAgICAgICAgICAgICAgICAgKCgxLCAxLCAwLCAxKSwgKDAsIDAsIDAsIDIpLCAoMSwgMSwg
MCwgMykpLAorICAgICAgICAgICAgICAgICAgICAgICgoMywgMCwgMCwgMCksICgyLCAwLCAxLCAw
KSwgKDMsIDAsIDEsIDApKSwKKyAgICAgICAgXQorCisgICAgICAgIGZvciBuZXcsIG9sZCwgZmlu
YWwgaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIG5ld19lbnRyeSA9IG1ha2VfZW50cnkobmV3
KQorICAgICAgICAgICAgb2xkX2VudHJ5ID0gbWFrZV9lbnRyeShvbGQpCisgICAgICAgICAgICBz
dGFydF9maWxlID0gbmV3X2VudHJ5ICsgb2xkX2VudHJ5ICsgcm9sbF9vdmVyCisKKyAgICAgICAg
ICAgIGZpbmFsX2VudHJ5ID0gbWFrZV9lbnRyeShmaW5hbCkKKyAgICAgICAgICAgIGVuZF9maWxl
ID0gZmluYWxfZW50cnkgKyByb2xsX292ZXIKKworICAgICAgICAgICAgcGF0aCA9IHNlbGYuX3dy
aXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoc3RhcnRfZmlsZS5lbmNvZGUoInV0Zi04IikpCisg
ICAgICAgICAgICBzdGVwLl9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5KHBhdGgpCisgICAgICAgICAg
ICBhY3R1YWxfb3V0cHV0ID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHBhdGgsICJ1dGYtOCIp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWxfb3V0cHV0LCBlbmRfZmlsZSkK
KwogICAgIGRlZiB0ZXN0X2Vuc3VyZV9idWdfdXJsKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBU
aGlzIHNob3VsZCB1c2UgYSBNb2NrRmlsZVN5c3RlbSBpbnN0ZWFkIG9mIGEgcmVhbCBGaWxlU3lz
dGVtLgogICAgICAgICBjYXB0dXJlID0gT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIHN0ZXAgPSBQ
cmVwYXJlQ2hhbmdlTG9nKE1vY2tUb29sKCksIE1vY2tPcHRpb25zKCkpCiAgICAgICAgIGNoYW5n
ZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9uZXdfZW50cnlfYm9pbGVycGxhdGUs
IHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQpAQCAtNDksNyArMTIxLDcgQEAgY2xhc3MgUHJlcGFy
ZUNoYW5nZUxvZ1Rlc3QoY2hhbmdlbG9nX3VuaXR0ZXN0LkNoYW5nZUxvZ1Rlc3QpOgogICAgICAg
ICAgICAgImJ1Z19pZCI6IDEyMzQsCiAgICAgICAgICAgICAiY2hhbmdlbG9ncyI6IFtjaGFuZ2Vs
b2dfcGF0aF0sCiAgICAgICAgIH0KLSAgICAgICAgY2FwdHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLnJ1biwgW3N0YXRlXSkKKyAgICAgICAgY2FwdHVyZS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLl9lbnN1cmVfYnVnX3VybCwgW3N0YXRlXSkKICAgICAgICAgYWN0dWFsX2NvbnRlbnRz
ID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKGNoYW5nZWxvZ19wYXRoLCAidXRmLTgiKQogICAg
ICAgICBleHBlY3RlZF9tZXNzYWdlID0gIkV4YW1wbGUgdGl0bGVcbiAgICAgICAgaHR0cDovL2V4
YW1wbGUuY29tLzEyMzQiCiAgICAgICAgIGV4cGVjdGVkX2NvbnRlbnRzID0gY2hhbmdlbG9nX2Nv
bnRlbnRzLnJlcGxhY2UoIk5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLlxuICAgICAg
ICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuIiwgZXhwZWN0ZWRfbWVzc2FnZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184147</attachid>
            <date>2013-01-22 22:51:01 -0800</date>
            <delta_ts>2013-01-22 23:23:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74358-20130123174754.patch</filename>
            <type>text/plain</type>
            <size>10424</size>
            <attacher name="Timothy Loh">timloh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmY2MTY5Mzg0ZDhmODFkMWEzOTBiY2RhNWY0NTEwODRk
Y2E4MWYzMS4uOTkyODFjMGNkYmNjZjg0MzYyNjNjNWVlZTA4NmViNWJmYTRlZjcwNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEzLTAxLTIyICBUaW1vdGh5IExvaCAgPHRpbWxvaEBjaHJvbWl1bS5jb20+CisKKyAg
ICAgICAgcHJlcGFyZS1DaGFuZ2Vsb2cgc2hvdWxkIHN1cHBvcnQgdXBkYXRpbmcgdGhlIGxpc3Qg
b2YgY2hhbmdlZCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOZWVkaW5nIHRvIHJlLW1ha2UgQ2hhbmdlTG9nIGVudHJpZXMgd2hlbiB0aGUgbGlz
dCBvZiBmaWxlcy9mdW5jdGlvbnMKKyAgICAgICAgY2hhbmdlcyBpcyBhIGJpdCBhbm5veWluZywg
aXQnZCBiZSBuaWNlIHRvIGhhdmUgdGhpcyBtb3JlIGF1dG9tYXRlZC4KKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBgd2Via2l0LXBhdGNoIHVwZGF0ZScgdXBkYXRlIHRoZSBkYXRlIGxpbmUgYW5k
IGJ1ZworICAgICAgICBkZXNjcmlwdGlvbiBpZiBuZWVkZWQsIGFuZCBpZiB0aGUgbGlzdCBvZiBj
aGFuZ2VkIGZpbGVzL2Z1bmN0aW9ucyBoYXMKKyAgICAgICAgY2hhbmdlZCwgZWl0aGVyIHVwZGF0
ZXMgdGhlIGxpc3QgKGlmIHRoZXJlIGFyZSBubyBhbm5vdGF0aW9ucyksIG9yCisgICAgICAgIG90
aGVyd2lzZSBhcHBlbmRzIHRoZSBuZXcgbGlzdCBiZWxvdy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAoUHJlcGFy
ZUNoYW5nZUxvZy5fcmVzb2x2ZV9leGlzdGluZ19lbnRyeSk6CisgICAgICAgIChQcmVwYXJlQ2hh
bmdlTG9nKToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cuX21lcmdlX2VudHJpZXMpOgorICAg
ICAgICAoUHJlcGFyZUNoYW5nZUxvZy5ydW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUHJlcGFy
ZUNoYW5nZUxvZ1Rlc3QudGVzdF9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5KToKKyAgICAgICAgKG1h
a2VfZW50cnkpOgorICAgICAgICAodGVzdF9lbnN1cmVfYnVnX3VybCk6CisKIDIwMTMtMDEtMjIg
IEZyYW5rIEZhcnphbiAgPGZyYW5rZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIEFuZHJv
aWQgaW5zdHJ1bWVudGF0aW9uIHRlc3RzIGZyb20gQ2hyb21pdW1MaW51eCB3YXRlcmZhbGwKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdl
bG9nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vs
b2cucHkKaW5kZXggOWJkNTVlN2RjOGQ3MGJkNGU3YjZlNTk0NzQ5YmMzNmM1ZjNlZjhjYi4uMzZk
MmViMjg5YmQ0ZjhkNDEyYzM4ZDcxNzkzYWQ1Yzk3NWU0ZjQ1MSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2cucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2cucHkKQEAgLTI2
LDcgKzI2LDEwIEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgY29k
ZWNzCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKIGltcG9ydCBzeXMKIAog
ZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGltcG9ydCBDaGFuZ2VMb2cK
QEAgLTU4LDEwICs2MSw1NCBAQCBjbGFzcyBQcmVwYXJlQ2hhbmdlTG9nKEFic3RyYWN0U3RlcCk6
CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2FjaGVkX2xvb2t1cChzdGF0ZSwgImJ1Z190aXRs
ZSIpLAogICAgICAgICAgICAgICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYnVnX3VybF9mb3JfYnVn
X2lkKGJ1Z19pZCkpCiAKKyAgICBkZWYgX3Jlc29sdmVfZXhpc3RpbmdfZW50cnkoc2VsZiwgY2hh
bmdlbG9nX3BhdGgpOgorICAgICAgICAjIFdoZW4gdGhpcyBpcyBjYWxsZWQsIHRoZSB0b3AgZW50
cnkgaW4gdGhlIENoYW5nZUxvZyB3YXMganVzdCBjcmVhdGVkCisgICAgICAgICMgYnkgcHJlcGFy
ZS1DaGFuZ2VMb2csIGFzIGFuIGNsZWFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgb25lIGJlbG93
IGl0LgorICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKGNoYW5nZWxvZ19wYXRoLCAiciIsICJ1dGYt
OCIpIGFzIGNoYW5nZWxvZ19maWxlOgorICAgICAgICAgICAgZW50cmllc19nZW4gPSBDaGFuZ2VM
b2cucGFyc2VfZW50cmllc19mcm9tX2ZpbGUoY2hhbmdlbG9nX2ZpbGUpCisgICAgICAgICAgICBl
bnRyaWVzID0gemlwKGVudHJpZXNfZ2VuLCByYW5nZSgyKSkKKworICAgICAgICBpZiBub3QgbGVu
KGVudHJpZXMpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFeHBlY3RlZCB0byBmaW5k
IGF0IGxlYXN0IHR3byBDaGFuZ2VMb2cgZW50cmllcyBpbiAlcyBidXQgZm91bmQgbm9uZS4iICUg
Y2hhbmdlbG9nX3BhdGgpCisgICAgICAgIGlmIGxlbihlbnRyaWVzKSA9PSAxOgorICAgICAgICAg
ICAgIyBJZiB3ZSBnZXQgaGVyZSwgaXQgcHJvYmFibHkgbWVhbnMgd2UndmUganVzdCByb2xsZWQg
b3ZlciB0byBhCisgICAgICAgICAgICAjIG5ldyBDTCBmaWxlLCBzbyB3ZSBkb24ndCBoYXZlIGFu
eXRoaW5nIHRvIHJlc29sdmUuCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAobmV3X2Vu
dHJ5LCBfKSwgKG9sZF9lbnRyeSwgXykgPSBlbnRyaWVzCisgICAgICAgIGZpbmFsX2VudHJ5ID0g
c2VsZi5fbWVyZ2VfZW50cmllcyhvbGRfZW50cnksIG5ld19lbnRyeSkKKworICAgICAgICBjaGFu
Z2Vsb2cgPSBDaGFuZ2VMb2coY2hhbmdlbG9nX3BhdGgpCisgICAgICAgIGNoYW5nZWxvZy5kZWxl
dGVfZW50cmllcygyKQorICAgICAgICBjaGFuZ2Vsb2cucHJlcGVuZF90ZXh0KGZpbmFsX2VudHJ5
KQorCisgICAgZGVmIF9tZXJnZV9lbnRyaWVzKHNlbGYsIG9sZF9lbnRyeSwgbmV3X2VudHJ5KToK
KyAgICAgICAgZmluYWxfZW50cnkgPSBvbGRfZW50cnkuY29udGVudHMoKQorCisgICAgICAgIG5l
d19kYXRlX2xpbmUgPSBuZXdfZW50cnkuZGF0ZV9saW5lKCkKKyAgICAgICAgb2xkX2RhdGVfbGlu
ZSA9IG9sZF9lbnRyeS5kYXRlX2xpbmUoKQorICAgICAgICBpZiBuZXdfZGF0ZV9saW5lICE9IG9s
ZF9kYXRlX2xpbmU6CisgICAgICAgICAgICBmaW5hbF9lbnRyeSA9IGZpbmFsX2VudHJ5LnJlcGxh
Y2Uob2xkX2RhdGVfbGluZSwgbmV3X2RhdGVfbGluZSkKKworICAgICAgICBuZXdfYnVnX2Rlc2Mg
PSBuZXdfZW50cnkuYnVnX2Rlc2NyaXB0aW9uKCkKKyAgICAgICAgb2xkX2J1Z19kZXNjID0gb2xk
X2VudHJ5LmJ1Z19kZXNjcmlwdGlvbigpCisgICAgICAgIGlmIG5ld19idWdfZGVzYyBhbmQgb2xk
X2J1Z19kZXNjIGFuZCBuZXdfYnVnX2Rlc2MgIT0gb2xkX2J1Z19kZXNjOgorICAgICAgICAgICAg
ZmluYWxfZW50cnkgPSBmaW5hbF9lbnRyeS5yZXBsYWNlKG9sZF9idWdfZGVzYywgbmV3X2J1Z19k
ZXNjKQorCisgICAgICAgIG5ld190b3VjaGVkID0gbmV3X2VudHJ5LnRvdWNoZWRfZnVuY3Rpb25z
KCkKKyAgICAgICAgb2xkX3RvdWNoZWQgPSBvbGRfZW50cnkudG91Y2hlZF9mdW5jdGlvbnMoKQor
ICAgICAgICBpZiBuZXdfdG91Y2hlZCAhPSBvbGRfdG91Y2hlZDoKKyAgICAgICAgICAgIGlmIG9s
ZF9lbnRyeS5pc190b3VjaGVkX2ZpbGVzX3RleHRfY2xlYW4oKToKKyAgICAgICAgICAgICAgICBm
aW5hbF9lbnRyeSA9IGZpbmFsX2VudHJ5LnJlcGxhY2Uob2xkX2VudHJ5LnRvdWNoZWRfZmlsZXNf
dGV4dCgpLCBuZXdfZW50cnkudG91Y2hlZF9maWxlc190ZXh0KCkpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGZpbmFsX2VudHJ5ICs9ICJcbiIgKyBuZXdfZW50cnkudG91Y2hl
ZF9maWxlc190ZXh0KCkKKworICAgICAgICByZXR1cm4gZmluYWxfZW50cnkgKyAiXG4iCisKICAg
ICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAgICAgaWYgc2VsZi5jYWNoZWRfbG9va3VwKHN0
YXRlLCAiY2hhbmdlbG9ncyIpOgogICAgICAgICAgICAgc2VsZi5fZW5zdXJlX2J1Z191cmwoc3Rh
dGUpCi0gICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXBy
ZWNhdGVkX3BvcnQoKS5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKCkKICAgICAgICAgaWYgc3Rh
dGUuZ2V0KCJidWdfaWQiKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWJ1Zz0lcyIgJSBz
dGF0ZVsiYnVnX2lkIl0pCkBAIC03NSw4ICsxMjIsMTUgQEAgY2xhc3MgUHJlcGFyZUNoYW5nZUxv
ZyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBhcmdzLmV4dGVuZChzZWxmLl9jaGFuZ2VkX2ZpbGVz
KHN0YXRlKSkKIAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgc2VsZi5fb3B0aW9ucy5xdWlldCwgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAgIG91dHB1dCA9IHNlbGYu
X3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBzZWxmLl9vcHRpb25z
LnF1aWV0LCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQogICAgICAgICBleGNl
cHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCJVbmFibGUgdG8gcHJl
cGFyZSBDaGFuZ2VMb2dzLiIpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgICAgICMg
VGhlc2UgYXJlIHRoZSBDaGFuZ2VMb2cgZW50cmllcyBhZGRlZCBieSBwcmVwYXJlLUNoYW5nZWxv
ZworICAgICAgICBjaGFuZ2Vsb2dzID0gcmUuZmluZGFsbChyJ0VkaXRpbmcgdGhlIChcUyovQ2hh
bmdlTG9nKSBmaWxlLicsIG91dHB1dCkKKyAgICAgICAgY2hhbmdlbG9ncyA9IHNldChvcy5wYXRo
LmpvaW4oc2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBmKSBmb3IgZiBpbiBjaGFuZ2Vs
b2dzKQorICAgICAgICBmb3IgY2hhbmdlbG9nIGluIGNoYW5nZWxvZ3MgJiBzZXQoc2VsZi5jYWNo
ZWRfbG9va3VwKHN0YXRlLCAiY2hhbmdlbG9ncyIpKToKKyAgICAgICAgICAgIHNlbGYuX3Jlc29s
dmVfZXhpc3RpbmdfZW50cnkoY2hhbmdlbG9nKQorCiAgICAgICAgIHNlbGYuZGlkX21vZGlmeV9j
aGVja291dChzdGF0ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9wcmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHkKaW5kZXggZmMzMWQxZmE5
NmUzZjRmOGNjNTZiMzVjNmFjYmZkNDg1NmI4M2EzMC4uNDVmMzAwOTIxYWIwZTc3NzE4MGQwYTM3
YzIyNDNhYTliZDIzZTJmMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHkKQEAgLTM2LDEw
ICszNiw4MiBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2Nr
T3B0aW9ucywgTW9ja1Rvb2wKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5wcmVwYXJlY2hhbmdl
bG9nIGltcG9ydCBQcmVwYXJlQ2hhbmdlTG9nCiAKKyMgRklYTUU6IFRoZXNlIHRlc3RzIHNob3Vs
ZCB1c2UgYSBNb2NrRmlsZVN5c3RlbSBpbnN0ZWFkIG9mIGEgcmVhbCBmaWxlIHN5c3RlbSwKKyMg
b25jZSBjaGFuZ2Vsb2cucHkgYW5kIHByZXBhcmVjaGFuZ2Vsb2cucHkgYXJlIEZpbGVTeXN0ZW0g
Y29tcGF0aWJsZS4KIAogY2xhc3MgUHJlcGFyZUNoYW5nZUxvZ1Rlc3QoY2hhbmdlbG9nX3VuaXR0
ZXN0LkNoYW5nZUxvZ1Rlc3QpOgorICAgIGRlZiB0ZXN0X3Jlc29sdmVfZXhpc3RpbmdfZW50cnko
c2VsZik6CisgICAgICAgIHN0ZXAgPSBQcmVwYXJlQ2hhbmdlTG9nKE1vY2tUb29sKCksIE1vY2tP
cHRpb25zKCkpCisKKyAgICAgICAgcm9sbF9vdmVyID0gIj09IFJvbGxlZCBvdmVyIHRvIENoYW5n
ZUxvZy0yMDEyLTEwLTAyID09IgorCisgICAgICAgIGhlYWRlcnMgPSBbIjIwMTMtMDEtMTggIFRp
bW90aHkgTG9oICA8dGltbG9oQGNocm9taXVtLmNvbT5cblxuIiwKKyAgICAgICAgICAgICAgICAg
ICAiMjAxMy0wMS0yMCAgVGltb3RoeSBMb2ggIDx0aW1sb2hAY2hyb21pdW0uY29tPlxuXG4iLAor
ICAgICAgICAgICAgICAgICAgdSIyMDA5LTA4LTE3ICBUb3IgQXJuZSBWZXN0Ylx4ZjggIDx2ZXN0
Ym9Ad2Via2l0Lm9yZz5cblxuIiwKKyAgICAgICAgICAgICAgICAgIHUiMjAwOS0wOC0xOCAgVG9y
IEFybmUgVmVzdGJceGY4ICA8dmVzdGJvQHdlYmtpdC5vcmc+XG5cbiIsCisgICAgICAgICAgICAg
ICAgICBdCisKKyAgICAgICAgYnVnX2Rlc2NzID0gWyIgICAgICAgIHByZXBhcmUtQ2hhbmdlbG9n
IHNob3VsZCBzdXBwb3J0IHVwZGF0aW5nIHRoZSBsaXN0IG9mIGNoYW5nZWQgZmlsZXNcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAiICAgICAgICB3ZWJraXQtcGF0Y2ggdXBsb2FkIHNob3VsZCBz
dXBwb3J0IHVwZGF0aW5nIHRoZSBsaXN0IG9mIGNoYW5nZWQgZmlsZXNcbiJdCisKKyAgICAgICAg
YnVnX3VybCA9ICIgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NDM1OFxuXG4iCisKKyAgICAgICAgZGVzY3JpcHRpb25zID0gWyIiLCAiICAgICAgICBBIGRl
c2NyaXB0aW9uIG9mIHRoZSBjaGFuZ2VzLlxuXG4iLAorICAgICAgICAgICAgICAgICIgICAgICAg
IEEgZGVzY3JpcHRpb24uXG5cbiAgICAgICAgV2l0aCBzb21lXG4gICAgICAgIGxpbmUgYnJlYWtz
XG5cbiJdCisKKyAgICAgICAgY2hhbmdlcyA9IFsKKyIiIiAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZy5weToKKyAgICAgICAgKFByZXBhcmVDaGFu
Z2VMb2cpOgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZy5ydW4pOlxuXG4iIiIsCisiIiIgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2cucHk6Cisg
ICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nLl9yZXNvbHZlX2V4aXN0aW5nX2VudHJ5KToKKyAgICAg
ICAgKFByZXBhcmVDaGFuZ2VMb2cpOgorICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZy5ydW4pOlxu
XG4iIiIsCisiIiIgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVj
aGFuZ2Vsb2cucHk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nKTogU29tZSBhbm5vdGF0aW9u
cworICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZy5ydW4pOgorICAgICAgICAgICAgTW9yZSBhbm5v
dGF0aW9uc1xuXG4iIiIsCisiIiIgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3ByZXBhcmVjaGFuZ2Vsb2cucHk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nKTogU29tZSBh
bm5vdGF0aW9ucworICAgICAgICAoUHJlcGFyZUNoYW5nZUxvZy5ydW4pOgorICAgICAgICAgICAg
TW9yZSBhbm5vdGF0aW9ucworCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3ByZXBhcmVjaGFuZ2Vsb2cucHk6CisgICAgICAgIChQcmVwYXJlQ2hhbmdlTG9nLl9yZXNvbHZl
X2V4aXN0aW5nX2VudHJ5KToKKyAgICAgICAgKFByZXBhcmVDaGFuZ2VMb2cpOgorICAgICAgICAo
UHJlcGFyZUNoYW5nZUxvZy5ydW4pOlxuXG4iIiIsCisgICAgICAgICAgICBdCisKKyAgICAgICAg
ZGVmIG1ha2VfZW50cnkoaW5kaWNlcyk6CisgICAgICAgICAgICBhLCBiLCBjLCBkID0gaW5kaWNl
cworICAgICAgICAgICAgcmV0dXJuIGhlYWRlcnNbYV0gKyBidWdfZGVzY3NbYl0gKyBidWdfdXJs
ICsgZGVzY3JpcHRpb25zW2NdICsgY2hhbmdlc1tkXQorCisgICAgICAgIHRlc3RfY2FzZXMgPSBb
KCgwLCAwLCAwLCAwKSwgKDAsIDAsIDAsIDApLCAoMCwgMCwgMCwgMCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICgoMCwgMCwgMCwgMCksICgwLCAwLCAxLCAwKSwgKDAsIDAsIDEsIDApKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAoKDEsIDAsIDAsIDApLCAoMCwgMCwgMiwgMCksICgxLCAwLCAy
LCAwKSksCisgICAgICAgICAgICAgICAgICAgICAgKCgwLCAxLCAwLCAwKSwgKDAsIDAsIDEsIDAp
LCAoMCwgMSwgMSwgMCkpLAorICAgICAgICAgICAgICAgICAgICAgICgoMCwgMCwgMCwgMSksICgw
LCAwLCAwLCAwKSwgKDAsIDAsIDAsIDEpKSwKKyAgICAgICAgICAgICAgICAgICAgICAoKDAsIDAs
IDAsIDApLCAoMCwgMCwgMSwgMSksICgwLCAwLCAxLCAwKSksCisgICAgICAgICAgICAgICAgICAg
ICAgKCgwLCAwLCAwLCAwKSwgKDAsIDAsIDIsIDIpLCAoMCwgMCwgMiwgMikpLAorICAgICAgICAg
ICAgICAgICAgICAgICgoMCwgMCwgMCwgMSksICgwLCAwLCAxLCAyKSwgKDAsIDAsIDEsIDMpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAoKDEsIDEsIDAsIDEpLCAoMCwgMCwgMCwgMiksICgxLCAx
LCAwLCAzKSksCisgICAgICAgICAgICAgICAgICAgICAgKCgzLCAwLCAwLCAwKSwgKDIsIDAsIDEs
IDApLCAoMywgMCwgMSwgMCkpLAorICAgICAgICBdCisKKyAgICAgICAgZm9yIG5ldywgb2xkLCBm
aW5hbCBpbiB0ZXN0X2Nhc2VzOgorICAgICAgICAgICAgbmV3X2VudHJ5ID0gbWFrZV9lbnRyeShu
ZXcpCisgICAgICAgICAgICBvbGRfZW50cnkgPSBtYWtlX2VudHJ5KG9sZCkKKyAgICAgICAgICAg
IHN0YXJ0X2ZpbGUgPSBuZXdfZW50cnkgKyBvbGRfZW50cnkgKyByb2xsX292ZXIKKworICAgICAg
ICAgICAgZmluYWxfZW50cnkgPSBtYWtlX2VudHJ5KGZpbmFsKQorICAgICAgICAgICAgZW5kX2Zp
bGUgPSBmaW5hbF9lbnRyeSArIHJvbGxfb3ZlcgorCisgICAgICAgICAgICBwYXRoID0gc2VsZi5f
d3JpdGVfdG1wX2ZpbGVfd2l0aF9jb250ZW50cyhzdGFydF9maWxlLmVuY29kZSgidXRmLTgiKSkK
KyAgICAgICAgICAgIHN0ZXAuX3Jlc29sdmVfZXhpc3RpbmdfZW50cnkocGF0aCkKKyAgICAgICAg
ICAgIGFjdHVhbF9vdXRwdXQgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocGF0aCwgInV0Zi04
IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbF9vdXRwdXQsIGVuZF9maWxl
KQorCiAgICAgZGVmIHRlc3RfZW5zdXJlX2J1Z191cmwoc2VsZik6Ci0gICAgICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBhIE1vY2tGaWxlU3lzdGVtIGluc3RlYWQgb2YgYSByZWFsIEZpbGVT
eXN0ZW0uCiAgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKICAgICAgICAgc3RlcCA9
IFByZXBhcmVDaGFuZ2VMb2coTW9ja1Rvb2woKSwgTW9ja09wdGlvbnMoKSkKICAgICAgICAgY2hh
bmdlbG9nX2NvbnRlbnRzID0gdSIlc1xuJXMiICUgKHNlbGYuX25ld19lbnRyeV9ib2lsZXJwbGF0
ZSwgc2VsZi5fZXhhbXBsZV9jaGFuZ2Vsb2cpCkBAIC00OSw3ICsxMjEsNyBAQCBjbGFzcyBQcmVw
YXJlQ2hhbmdlTG9nVGVzdChjaGFuZ2Vsb2dfdW5pdHRlc3QuQ2hhbmdlTG9nVGVzdCk6CiAgICAg
ICAgICAgICAiYnVnX2lkIjogMTIzNCwKICAgICAgICAgICAgICJjaGFuZ2Vsb2dzIjogW2NoYW5n
ZWxvZ19wYXRoXSwKICAgICAgICAgfQotICAgICAgICBjYXB0dXJlLmFzc2VydF9vdXRwdXRzKHNl
bGYsIHN0ZXAucnVuLCBbc3RhdGVdKQorICAgICAgICBjYXB0dXJlLmFzc2VydF9vdXRwdXRzKHNl
bGYsIHN0ZXAuX2Vuc3VyZV9idWdfdXJsLCBbc3RhdGVdKQogICAgICAgICBhY3R1YWxfY29udGVu
dHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMoY2hhbmdlbG9nX3BhdGgsICJ1dGYtOCIpCiAg
ICAgICAgIGV4cGVjdGVkX21lc3NhZ2UgPSAiRXhhbXBsZSB0aXRsZVxuICAgICAgICBodHRwOi8v
ZXhhbXBsZS5jb20vMTIzNCIKICAgICAgICAgZXhwZWN0ZWRfY29udGVudHMgPSBjaGFuZ2Vsb2df
Y29udGVudHMucmVwbGFjZSgiTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuXG4gICAg
ICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4iLCBleHBlY3RlZF9tZXNzYWdlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>