<?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>84524</bug_id>
          
          <creation_ts>2012-04-21 01:44:43 -0700</creation_ts>
          <short_desc>Iterating a HashMap&lt;String, X&gt; involves a string equality comparison to check for the empty value</short_desc>
          <delta_ts>2012-04-25 18:12:27 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>84615</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>psolanki</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607170</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 01:44:43 -0700</bug_when>
    <thetext>Iterating a HashMap&lt;String, X&gt; involves a string equality comparison to check for the empty value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607173</commentid>
    <comment_count>1</comment_count>
      <attachid>138226</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 01:49:29 -0700</bug_when>
    <thetext>Created attachment 138226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607174</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 01:52:05 -0700</bug_when>
    <thetext>Attachment 138226 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/text/StringHash.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 7 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>607186</commentid>
    <comment_count>3</comment_count>
      <attachid>138226</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 02:23:46 -0700</bug_when>
    <thetext>Comment on attachment 138226
Patch

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

&gt; Source/WTF/wtf/HashTraits.h:163
&gt; +    template&lt;typename T, typename U, typename V, typename W&gt; inline bool isEqualToEmptyValue(const pair&lt;T, U&gt;&amp; value, const pair&lt;V, W&gt;&amp; emptyValue) { return value.first == emptyValue.first &amp;&amp; value.second == emptyValue.second; }

I should probably change this to call isEqualToEmptyValue twice instead of directly using == twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607187</commentid>
    <comment_count>4</comment_count>
      <attachid>138226</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 02:24:58 -0700</bug_when>
    <thetext>Comment on attachment 138226
Patch

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

&gt;&gt; Source/WTF/wtf/text/StringHash.h:34
&gt;&gt; +    template&lt;&gt; struct HashTraits&lt;String&gt; : SimpleClassHashTraits&lt;String&gt; {
&gt; 
&gt; Code inside a namespace should not be indented.  [whitespace/indent] [4]

I wonder if we should teach the style bot that we don’t want to reindent existing files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607190</commentid>
    <comment_count>5</comment_count>
      <attachid>138226</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 02:31:44 -0700</bug_when>
    <thetext>Comment on attachment 138226
Patch

Attachment 138226 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12489008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607221</commentid>
    <comment_count>6</comment_count>
      <attachid>138240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 09:48:55 -0700</bug_when>
    <thetext>Created attachment 138240
Patch with attempt to fix Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607222</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 09:53:32 -0700</bug_when>
    <thetext>Attachment 138240 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/text/StringHash.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 9 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>607223</commentid>
    <comment_count>8</comment_count>
      <attachid>138241</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 10:03:29 -0700</bug_when>
    <thetext>Created attachment 138241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607225</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 10:07:32 -0700</bug_when>
    <thetext>Attachment 138241 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/text/StringHash.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 9 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>607238</commentid>
    <comment_count>10</comment_count>
      <attachid>138241</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 10:57:14 -0700</bug_when>
    <thetext>Comment on attachment 138241
Patch

Attachment 138241 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12465528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607260</commentid>
    <comment_count>11</comment_count>
      <attachid>138254</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 12:36:01 -0700</bug_when>
    <thetext>Created attachment 138254
Patch with another cut at fixing Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607261</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 12:39:42 -0700</bug_when>
    <thetext>Attachment 138254 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/text/StringHash.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 8 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>607264</commentid>
    <comment_count>13</comment_count>
      <attachid>138254</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 13:07:31 -0700</bug_when>
    <thetext>Comment on attachment 138254
Patch with another cut at fixing Chromium build

Chromium’s use of maps with string keys is so different from the other platforms that I’m going to take a different approach. Not great, but not a big deal either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607268</commentid>
    <comment_count>14</comment_count>
      <attachid>138254</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 13:29:30 -0700</bug_when>
    <thetext>Comment on attachment 138254
Patch with another cut at fixing Chromium build

Attachment 138254 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12481488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607277</commentid>
    <comment_count>15</comment_count>
      <attachid>138257</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-21 15:15:04 -0700</bug_when>
    <thetext>Created attachment 138257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607278</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-21 15:17:27 -0700</bug_when>
    <thetext>Attachment 138257 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/text/StringHash.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 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>607800</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 10:26:29 -0700</bug_when>
    <thetext>Committed r114914: &lt;http://trac.webkit.org/changeset/114914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607816</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-23 10:35:23 -0700</bug_when>
    <thetext>This patch seems to have hung cr-ews #1 in the unittests.  bug 84611.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607823</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-23 10:42:36 -0700</bug_when>
    <thetext>The cr-linux-3 bot was also hung processing this patch.  It&apos;s possible it was a cooincidence, or it&apos;s possible this patch made the c++ unittests hang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607872</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-23 11:31:40 -0700</bug_when>
    <thetext>I&apos;m getting an infinite hang locally as well under HashMap::add().  There are a few maps that are producing the hang, here&apos;s one that I&apos;ve caught in GDB:

    typedef std::pair&lt;int, int&gt; TileMapKey;
    struct TileMapKeyTraits : HashTraits&lt;TileMapKey&gt; {
        static const bool emptyValueIsZero = false;
        static const bool needsDestruction = false;
        static TileMapKey emptyValue() { return std::make_pair(-1, -1); }
        static void constructDeletedValue(TileMapKey&amp; slot) { slot = std::make_pair(-2, -2); }
        static bool isDeletedValue(TileMapKey value) { return value.first == -2 &amp;&amp; value.second == -2; }
    };
    typedef HashMap&lt;TileMapKey, OwnPtr&lt;Tile&gt;, DefaultHash&lt;TileMapKey&gt;::Hash, TileMapKeyTraits&gt; TileMap;


and the key being used is an std::pair (0, 0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607914</commentid>
    <comment_count>21</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-23 12:17:17 -0700</bug_when>
    <thetext>This apparently got rolled out in http://trac.webkit.org/changeset/114923</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607920</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-23 12:29:54 -0700</bug_when>
    <thetext>Sorry, I think I rebooted the sheriff-bot mid-rollout, which may have caused failures to update bugs like this one. :(  (The sheriff runs on the same hardware as cr-linux-03, which I was rebooting to recover after unittest hangs from this patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607931</commentid>
    <comment_count>23</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-23 12:41:29 -0700</bug_when>
    <thetext>I think that the problem is specifically with TileMapKeyTraits here. It should either explicitly unset hasEmptyValueFunction or implement isEmptyValue().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608040</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 14:54:54 -0700</bug_when>
    <thetext>Not sure why I did not see those hangs locally in my initial testing. I’ll try again and come back with a new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608061</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 15:15:16 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; I think that the problem is specifically with TileMapKeyTraits here. It should either explicitly unset hasEmptyValueFunction or implement isEmptyValue().

I didn’t realize anyone had specialized pair traits. I see now that I caused the problem by making pair traits return true for hasEmptyValueFunction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608063</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 15:15:38 -0700</bug_when>
    <thetext>A good way to re-land this is to just leave pair traits alone and deal with that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608064</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 15:16:15 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; There are a few maps that are producing the hang

Any maps that don’t use TileMapKeyTraits?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608088</commentid>
    <comment_count>28</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-23 15:29:40 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #20)
&gt; &gt; There are a few maps that are producing the hang
&gt; 
&gt; Any maps that don’t use TileMapKeyTraits?

I think it&apos;s possible that all of the hangs were with TileMapKeyTraits - there were several tests, but without attaching GDB it&apos;s hard to tell which map they were hanging on.  I think that all of the tests did instantiate one map of this type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608095</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-23 15:34:58 -0700</bug_when>
    <thetext>I don’t have time or a computer set up for development right now, but if someone wants to test and re-land a version of this that leaves out the patch to PairHashTraits, that should work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608797</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-24 10:09:35 -0700</bug_when>
    <thetext>Committed r115078: &lt;http://trac.webkit.org/changeset/115078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608939</commentid>
    <comment_count>31</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-24 12:31:37 -0700</bug_when>
    <thetext>Reopening this bug because the fix that I landed solves the problem for HashSet&lt;String&gt; but does not solve the problem for HashMap&lt;String, X&gt; yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609450</commentid>
    <comment_count>32</comment_count>
      <attachid>138736</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-24 21:46:46 -0700</bug_when>
    <thetext>Created attachment 138736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609451</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 21:50:11 -0700</bug_when>
    <thetext>Attachment 138736 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Ha...&quot; exit_code: 1
Source/WTF/wtf/HashMap.h:28:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 2 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>609539</commentid>
    <comment_count>34</comment_count>
      <attachid>138736</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-25 01:17:10 -0700</bug_when>
    <thetext>Comment on attachment 138736
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610259</commentid>
    <comment_count>35</comment_count>
      <attachid>138736</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 18:12:21 -0700</bug_when>
    <thetext>Comment on attachment 138736
Patch

Clearing flags on attachment: 138736

Committed r115272: &lt;http://trac.webkit.org/changeset/115272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610260</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 18:12:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138226</attachid>
            <date>2012-04-21 01:49:29 -0700</date>
            <delta_ts>2012-04-21 09:48:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84524-20120421014928.patch</filename>
            <type>text/plain</type>
            <size>10179</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ4NDApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
ZWNraW5nIGlmIGEgaGFzaCB0YWJsZSBlbnRyeSBpcyBlbXB0eSBzaG91bGQgbm90IGludm9sdmUg
Y2FsbGluZyB0aGUgc3RyaW5nCisgICAgICAgIGVxdWFsaXR5IGZ1bmN0aW9uLiBUd2VhayB0aGUg
aGFzaCB0YWJsZSBhbmQgc3RyaW5nIGhhc2ggdHJhaXRzIHRvIGZpeCB0aGF0LgorICAgICAgICBC
eSB1c2luZyBhIHNwZWNpYWwgdHlwZSBmb3IgbnVsbCBzdHJpbmdzIHdlIGNhbiBjaGVjayBpZiBh
IHN0cmluZyBpcyBlcXVhbCB0bworICAgICAgICBhIG51bGwgc3RyaW5nIHdpdGhvdXQgY2FsbGlu
ZyB0aGUgZ2VuZXJhbCBjYXNlIHN0cmluZyBlcXVhbGl0eSBmdW5jdGlvbi4KKworICAgICAgICAq
IHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SWRlbnRpdHlIYXNoVHJhbnNsYXRvcjo6
ZXF1YWwpOiBNYWRlIHRoaXMgd29yayBldmVuIHdoZW4gdGhlIHR5cGVzIGFyZSBub3QgdGhlIHNh
bWUuCisgICAgICAgIChXVEY6OklkZW50aXR5SGFzaFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6IERp
dHRvLgorICAgICAgICAoV1RGOjpIYXNoVGFibGU6OmlzRW1wdHlCdWNrZXQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgaXNFcXVhbFRvRW1wdHlWYWx1ZSBmdW5jdGlvbiwgd2hpY2gKKyAgICAgICAgY2Fu
IGhhbmRsZSBjb21wYXJpbmcgdHdvIHBhaXJzIGV2ZW4gd2hlbiB0aGUgcGFpciB0eXBlcyBhcmUg
bm90IGlkZW50aWNhbC4KKworICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6IE1vdmVkIFN0cmlu
ZyB0cmFpdHMgb3V0IG9mIHRoaXMgZmlsZSBpbnRvIFN0cmluZ0hhc2guaC4KKyAgICAgICAgKFdU
Rjo6aXNFcXVhbFRvRW1wdHlWYWx1ZSk6IEFkZGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nSGFzaC5oOiBTcGVjaWFsaXplZCBIYXNUcmFpdHM8U3RyaW5nPiB0byB1c2UgYSBzcGVjaWFs
IG51bGwgc3RyaW5nCisgICAgICAgIHR5cGUgZm9yIHRoZSBlbXB0eSB2YWx1ZS4gQWxzbyBvdmVy
bG9hZGVkIHRoZSBlcXVhbGl0eSBjb21wYXJpc29uIHRvIGhhbmRsZSB0aGF0IHR5cGUuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDogQWRkZWQgYSBOdWxsU3RyaW5nIHR5cGUuCisg
ICAgICAgIChXVEY6OlN0cmluZzo6U3RyaW5nKTogQWRkZWQgYSBjb25zdHJ1Y3RvciB0aGF0IGNh
biB0YWtlIGEgTnVsbFN0cmluZy4KKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6IE92ZXJsb2Fk
ZWQgdG8gY29tcGFyZSB3aXRoIE51bGxTdHJpbmcuCisgICAgICAgIChXVEY6Om9wZXJhdG9yIT0p
OiBEaXR0by4KKwogMjAxMi0wNC0xOCAgTXlsZXMgTWF4ZmllbGQgIDxtbWF4ZmllbGRAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBTb21laG93LCB0aGVyZSdzIGFuIGVycmFudCBiYWNrc2xhc2ggaW4g
bXkgbGFzdCBXVEYgcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShyZXZpc2lvbiAxMTQ4MzkpCisr
KyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDggKzI5
Miw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnM+IGNsYXNzIElkZW50aXR5SGFzaFRyYW5zbGF0b3IgewogICAgIHB1YmxpYzoKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYga2V5KSB7
IHJldHVybiBIYXNoRnVuY3Rpb25zOjpoYXNoKGtleSk7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVCYgYSwgY29uc3QgVCYgYikgeyByZXR1
cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYSwgYik7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RhdGljIHZvaWQgdHJhbnNsYXRlKFQmIGxvY2F0aW9uLCBjb25z
dCBVJiwgY29uc3QgVCYgdmFsdWUpIHsgbG9jYXRpb24gPSB2YWx1ZTsgfQorICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBh
LCBjb25zdCBVJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLCBiKTsgfQorICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMg
dm9pZCB0cmFuc2xhdGUoVCYgbG9jYXRpb24sIGNvbnN0IFUmLCBjb25zdCBWJiB2YWx1ZSkgeyBs
b2NhdGlvbiA9IHZhbHVlOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yVHlwZT4gc3RydWN0IEhhc2hUYWJsZUFkZFJlc3VsdCB7CkBAIC0zNTksNyArMzU5LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHZvaWQgcmVtb3ZlV2l0aG91dEVudHJ5Q29uc2lzdGVu
Y3lDaGVjayhjb25zdF9pdGVyYXRvcik7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAotICAgICAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5QnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0
dXJuIEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSkgPT0gS2V5VHJhaXRzOjplbXB0eVZhbHVlKCk7
IH0KKyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eUJ1Y2tldChjb25zdCBWYWx1ZVR5cGUmIHZh
bHVlKSB7IHJldHVybiBpc0VxdWFsVG9FbXB0eVZhbHVlKEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIEtleVRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRCdWNrZXQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gS2V5VHJhaXRzOjpp
c0RlbGV0ZWRWYWx1ZShFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0
aWMgYm9vbCBpc0VtcHR5T3JEZWxldGVkQnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsg
cmV0dXJuIGlzRW1wdHlCdWNrZXQodmFsdWUpIHx8IGlzRGVsZXRlZEJ1Y2tldCh2YWx1ZSk7IH0K
IApJbmRleDogU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAkocmV2aXNpb24gMTE0ODM5KQorKysgU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yOSw4ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0gICAgY2xhc3Mg
U3RyaW5nOwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7CiAKQEAgLTEzOCw4ICsxMzYsNiBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gYnV0IHRoZW4gY2FsbGVycyB3b24ndCBuZWVk
IHRvIGNhbGwgZ2V0OyBkb2luZyBzbyB3aWxsIHJlcXVpcmUgdXBkYXRpbmcgbWFueSBjYWxsIHNp
dGVzLgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7IH07Ci0KICAgICAvLyBzcGVjaWFsIHRy
YWl0cyBmb3IgcGFpcnMsIGhlbHBmdWwgZm9yIHRoZWlyIHVzZSBpbiBIYXNoTWFwIGltcGxlbWVu
dGF0aW9uCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdFRyYWl0c0FyZywgdHlwZW5hbWUg
U2Vjb25kVHJhaXRzQXJnPgpAQCAtMTYzLDYgKzE1OSw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IEhh
c2hUcmFpdHM8cGFpcjxGaXJzdCwgU2Vjb25kPiA+IDogcHVibGljIFBhaXJIYXNoVHJhaXRzPEhh
c2hUcmFpdHM8Rmlyc3Q+LCBIYXNoVHJhaXRzPFNlY29uZD4gPiB7IH07CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBpc0VxdWFsVG9FbXB0eVZhbHVl
KGNvbnN0IFQmIHZhbHVlLCBjb25zdCBVJiBlbXB0eVZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBl
bXB0eVZhbHVlOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgVz4gaW5saW5lIGJvb2wgaXNFcXVhbFRvRW1wdHlWYWx1ZShjb25zdCBw
YWlyPFQsIFU+JiB2YWx1ZSwgY29uc3QgcGFpcjxWLCBXPiYgZW1wdHlWYWx1ZSkgeyByZXR1cm4g
dmFsdWUuZmlyc3QgPT0gZW1wdHlWYWx1ZS5maXJzdCAmJiB2YWx1ZS5zZWNvbmQgPT0gZW1wdHlW
YWx1ZS5zZWNvbmQ7IH0KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6Okhh
c2hUcmFpdHM7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAkocmV2aXNpb24gMTE0ODM5
KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdIYXNoLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTMxLDYgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisgICAg
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxTdHJpbmc+IDogU2ltcGxlQ2xhc3NIYXNoVHJh
aXRzPFN0cmluZz4geworICAgICAgICB0eXBlZGVmIE51bGxTdHJpbmcgRW1wdHlWYWx1ZVR5cGU7
CisgICAgICAgIHN0YXRpYyBOdWxsU3RyaW5nIGVtcHR5VmFsdWUoKSB7IHJldHVybiBOdWxsU3Ry
aW5nKCk7IH0KKyAgICB9OworCiAgICAgLy8gVGhlIGhhc2goKSBmdW5jdGlvbnMgb24gU3RyaW5n
SGFzaCBhbmQgQ2FzZUZvbGRpbmdIYXNoIGRvIG5vdCBzdXBwb3J0CiAgICAgLy8gbnVsbCBzdHJp
bmdzLiBnZXQoKSwgY29udGFpbnMoKSwgYW5kIGFkZCgpIG9uIEhhc2hNYXA8U3RyaW5nLC4uLiwg
U3RyaW5nSGFzaD4KICAgICAvLyBjYXVzZSBhIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVu
IHBhc3NlZCBudWxsIHN0cmluZ3MuCkBAIC04Miw2ICs4NywxNCBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7
CiAgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nJiBhLCBj
b25zdCBOdWxsU3RyaW5nJikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGEuaXNOdWxs
KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgTnVsbFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGIuaXNO
dWxsKCk7CisgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgJKHJldmlzaW9uIDExNDgzOSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQ1N0cmluZzsKK2NsYXNzIE51bGxTdHJpbmc7CisK
IHN0cnVjdCBTdHJpbmdIYXNoOwogCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlv
bnMKQEAgLTEwNiw2ICsxMDgsNyBAQCBjbGFzcyBTdHJpbmcgewogcHVibGljOgogICAgIC8vIENv
bnN0cnVjdCBhIG51bGwgc3RyaW5nLCBkaXN0aW5ndWlzaGFibGUgZnJvbSBhbiBlbXB0eSBzdHJp
bmcuCiAgICAgU3RyaW5nKCkgeyB9CisgICAgU3RyaW5nKGNvbnN0IE51bGxTdHJpbmcmKSB7IH0K
IAogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCk7CkBAIC0zOTksMTMgKzQwMiwxOCBAQCBwcml2YXRlOgogfTsKIAogI2lmIFBMQVRGT1JN
KFFUKQotUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mIHN0cmVhbSwgY29uc3Qg
U3RyaW5nJiBzdHIpOwotUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mIHN0cmVh
bSwgU3RyaW5nJiBzdHIpOworUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBj
b25zdCBTdHJpbmcmKTsKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgU3Ry
aW5nJik7CiAjZW5kaWYKIAorLy8gRm9yIHRlbXBsYXRlIG1ldGFwcm9ncmFtbWluZywgdGhpcyBj
bGFzcyBjYW4gYmUgdXNlZCBmb3IgYSBzdHJpbmcga25vd24gYXQgY29tcGlsZSB0aW1lIHRvIGJl
IHRoZSBudWxsIHN0cmluZy4KK2NsYXNzIE51bGxTdHJpbmcgeyB9OworCiBpbmxpbmUgU3RyaW5n
JiBvcGVyYXRvcis9KFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IGEuYXBwZW5kKGIpOyBy
ZXR1cm4gYTsgfQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZyYgYSwgY29u
c3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOyB9Citpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgTnVsbFN0cmluZyYpIHsg
cmV0dXJuIGEuaXNOdWxsKCk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgTnVsbFN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gYi5pc051bGwoKTsgfQogaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IExDaGFyKiBiKSB7IHJldHVybiBl
cXVhbChhLmltcGwoKSwgYik7IH0KIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5n
JiBhLCBjb25zdCBjaGFyKiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KGIpKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBM
Q2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbChhLCBiLmltcGwoKSk7IH0K
QEAgLTQxNSw4ICs0MjMsOSBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZlY3Rvcjxj
aGFyCiB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHk+CiBpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5PiYg
YikgeyByZXR1cm4gYiA9PSBhOyB9CiAKLQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBT
dHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCBiLmlt
cGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBO
dWxsU3RyaW5nJikgeyByZXR1cm4gIWEuaXNOdWxsKCk7IH0KK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgTnVsbFN0cmluZyYsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gIWIuaXNOdWxs
KCk7IH0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBMQ2hh
ciogYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCBiKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IGNoYXIqIGIpIHsgcmV0dXJuICFlcXVhbChhLmlt
cGwoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGIpKTsgfQogaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBMQ2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAhZXF1
YWwoYSwgYi5pbXBsKCkpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ4NDApCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAxMi0wNC0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgSXRl
cmF0aW5nIGEgSGFzaE1hcDxTdHJpbmcsIFg+IGludm9sdmVzIGEgc3RyaW5nIGVxdWFsaXR5IGNv
bXBhcmlzb24gdG8gY2hlY2sgZm9yIHRoZSBlbXB0eSB2YWx1ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1MjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQu
aDogQWRkZWQgYW4gaW5jbHVkZSBvZiBTdHJpbmdIYXNoLmguCisKIDIwMTItMDQtMjAgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMTQ3NjguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0RPTVBhdGNoU3VwcG9ydC5oCShyZXZpc2lvbiAxMTQ4MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwx
MSBAQAogI2RlZmluZSBET01QYXRjaFN1cHBvcnRfaAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgotCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138240</attachid>
            <date>2012-04-21 09:48:55 -0700</date>
            <delta_ts>2012-04-21 10:03:25 -0700</delta_ts>
            <desc>Patch with attempt to fix Chromium build</desc>
            <filename>bug-84524-20120421094853.patch</filename>
            <type>text/plain</type>
            <size>11306</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
ZWNraW5nIGlmIGEgaGFzaCB0YWJsZSBlbnRyeSBpcyBlbXB0eSBzaG91bGQgbm90IGludm9sdmUg
Y2FsbGluZyB0aGUgc3RyaW5nCisgICAgICAgIGVxdWFsaXR5IGZ1bmN0aW9uLiBUd2VhayB0aGUg
aGFzaCB0YWJsZSBhbmQgc3RyaW5nIGhhc2ggdHJhaXRzIHRvIGZpeCB0aGF0LgorICAgICAgICBC
eSB1c2luZyBhIHNwZWNpYWwgdHlwZSBmb3IgbnVsbCBzdHJpbmdzIHdlIGNhbiBjaGVjayBpZiBh
IHN0cmluZyBpcyBlcXVhbCB0bworICAgICAgICBhIG51bGwgc3RyaW5nIHdpdGhvdXQgY2FsbGlu
ZyB0aGUgZ2VuZXJhbCBjYXNlIHN0cmluZyBlcXVhbGl0eSBmdW5jdGlvbi4KKworICAgICAgICAq
IHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SWRlbnRpdHlIYXNoVHJhbnNsYXRvcjo6
ZXF1YWwpOiBNYWRlIHRoaXMgd29yayBldmVuIHdoZW4gdGhlIHR5cGVzIGFyZSBub3QgdGhlIHNh
bWUuCisgICAgICAgIChXVEY6OklkZW50aXR5SGFzaFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6IERp
dHRvLgorICAgICAgICAoV1RGOjpIYXNoVGFibGU6OmlzRW1wdHlCdWNrZXQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgaXNFcXVhbFRvRW1wdHlWYWx1ZSBmdW5jdGlvbiwgd2hpY2gKKyAgICAgICAgY2Fu
IGhhbmRsZSBjb21wYXJpbmcgdHdvIHBhaXJzIGV2ZW4gd2hlbiB0aGUgcGFpciB0eXBlcyBhcmUg
bm90IGlkZW50aWNhbC4KKworICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6IE1vdmVkIFN0cmlu
ZyB0cmFpdHMgb3V0IG9mIHRoaXMgZmlsZSBpbnRvIFN0cmluZ0hhc2guaC4KKyAgICAgICAgKFdU
Rjo6aXNFcXVhbFRvRW1wdHlWYWx1ZSk6IEFkZGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nSGFzaC5oOiBTcGVjaWFsaXplZCBIYXNUcmFpdHM8U3RyaW5nPiB0byB1c2UgYSBzcGVjaWFs
IG51bGwgc3RyaW5nCisgICAgICAgIHR5cGUgZm9yIHRoZSBlbXB0eSB2YWx1ZS4gQWxzbyBvdmVy
bG9hZGVkIHRoZSBlcXVhbGl0eSBjb21wYXJpc29uIHRvIGhhbmRsZSB0aGF0IHR5cGUuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDogQWRkZWQgYSBOdWxsU3RyaW5nIHR5cGUuCisg
ICAgICAgIChXVEY6OlN0cmluZzo6U3RyaW5nKTogQWRkZWQgYSBjb25zdHJ1Y3RvciB0aGF0IGNh
biB0YWtlIGEgTnVsbFN0cmluZy4KKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6IE92ZXJsb2Fk
ZWQgdG8gY29tcGFyZSB3aXRoIE51bGxTdHJpbmcuCisgICAgICAgIChXVEY6Om9wZXJhdG9yIT0p
OiBEaXR0by4KKwogMjAxMi0wNC0xOCAgTXlsZXMgTWF4ZmllbGQgIDxtbWF4ZmllbGRAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBTb21laG93LCB0aGVyZSdzIGFuIGVycmFudCBiYWNrc2xhc2ggaW4g
bXkgbGFzdCBXVEYgcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShyZXZpc2lvbiAxMTQ4NDIpCisr
KyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDggKzI5
Miw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnM+IGNsYXNzIElkZW50aXR5SGFzaFRyYW5zbGF0b3IgewogICAgIHB1YmxpYzoKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYga2V5KSB7
IHJldHVybiBIYXNoRnVuY3Rpb25zOjpoYXNoKGtleSk7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVCYgYSwgY29uc3QgVCYgYikgeyByZXR1
cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYSwgYik7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RhdGljIHZvaWQgdHJhbnNsYXRlKFQmIGxvY2F0aW9uLCBjb25z
dCBVJiwgY29uc3QgVCYgdmFsdWUpIHsgbG9jYXRpb24gPSB2YWx1ZTsgfQorICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBh
LCBjb25zdCBVJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLCBiKTsgfQorICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMg
dm9pZCB0cmFuc2xhdGUoVCYgbG9jYXRpb24sIGNvbnN0IFUmLCBjb25zdCBWJiB2YWx1ZSkgeyBs
b2NhdGlvbiA9IHZhbHVlOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yVHlwZT4gc3RydWN0IEhhc2hUYWJsZUFkZFJlc3VsdCB7CkBAIC0zNTksNyArMzU5LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHZvaWQgcmVtb3ZlV2l0aG91dEVudHJ5Q29uc2lzdGVu
Y3lDaGVjayhjb25zdF9pdGVyYXRvcik7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAotICAgICAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5QnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0
dXJuIEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSkgPT0gS2V5VHJhaXRzOjplbXB0eVZhbHVlKCk7
IH0KKyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eUJ1Y2tldChjb25zdCBWYWx1ZVR5cGUmIHZh
bHVlKSB7IHJldHVybiBpc0VxdWFsVG9FbXB0eVZhbHVlKEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIEtleVRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRCdWNrZXQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gS2V5VHJhaXRzOjpp
c0RlbGV0ZWRWYWx1ZShFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0
aWMgYm9vbCBpc0VtcHR5T3JEZWxldGVkQnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsg
cmV0dXJuIGlzRW1wdHlCdWNrZXQodmFsdWUpIHx8IGlzRGVsZXRlZEJ1Y2tldCh2YWx1ZSk7IH0K
IApJbmRleDogU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAkocmV2aXNpb24gMTE0ODQyKQorKysgU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yOSw4ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0gICAgY2xhc3Mg
U3RyaW5nOwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7CiAKQEAgLTEzOCw4ICsxMzYsNiBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gYnV0IHRoZW4gY2FsbGVycyB3b24ndCBuZWVk
IHRvIGNhbGwgZ2V0OyBkb2luZyBzbyB3aWxsIHJlcXVpcmUgdXBkYXRpbmcgbWFueSBjYWxsIHNp
dGVzLgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7IH07Ci0KICAgICAvLyBzcGVjaWFsIHRy
YWl0cyBmb3IgcGFpcnMsIGhlbHBmdWwgZm9yIHRoZWlyIHVzZSBpbiBIYXNoTWFwIGltcGxlbWVu
dGF0aW9uCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdFRyYWl0c0FyZywgdHlwZW5hbWUg
U2Vjb25kVHJhaXRzQXJnPgpAQCAtMTYzLDYgKzE1OSw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IEhh
c2hUcmFpdHM8cGFpcjxGaXJzdCwgU2Vjb25kPiA+IDogcHVibGljIFBhaXJIYXNoVHJhaXRzPEhh
c2hUcmFpdHM8Rmlyc3Q+LCBIYXNoVHJhaXRzPFNlY29uZD4gPiB7IH07CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBpc0VxdWFsVG9FbXB0eVZhbHVl
KGNvbnN0IFQmIHZhbHVlLCBjb25zdCBVJiBlbXB0eVZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBl
bXB0eVZhbHVlOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgVz4gaW5saW5lIGJvb2wgaXNFcXVhbFRvRW1wdHlWYWx1ZShjb25zdCBw
YWlyPFQsIFU+JiB2YWx1ZSwgY29uc3QgcGFpcjxWLCBXPiYgZW1wdHlWYWx1ZSkgeyByZXR1cm4g
dmFsdWUuZmlyc3QgPT0gZW1wdHlWYWx1ZS5maXJzdCAmJiB2YWx1ZS5zZWNvbmQgPT0gZW1wdHlW
YWx1ZS5zZWNvbmQ7IH0KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6Okhh
c2hUcmFpdHM7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAkocmV2aXNpb24gMTE0ODQy
KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdIYXNoLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTMxLDYgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisgICAg
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxTdHJpbmc+IDogU2ltcGxlQ2xhc3NIYXNoVHJh
aXRzPFN0cmluZz4geworICAgICAgICB0eXBlZGVmIE51bGxTdHJpbmcgRW1wdHlWYWx1ZVR5cGU7
CisgICAgICAgIHN0YXRpYyBOdWxsU3RyaW5nIGVtcHR5VmFsdWUoKSB7IHJldHVybiBOdWxsU3Ry
aW5nKCk7IH0KKyAgICB9OworCiAgICAgLy8gVGhlIGhhc2goKSBmdW5jdGlvbnMgb24gU3RyaW5n
SGFzaCBhbmQgQ2FzZUZvbGRpbmdIYXNoIGRvIG5vdCBzdXBwb3J0CiAgICAgLy8gbnVsbCBzdHJp
bmdzLiBnZXQoKSwgY29udGFpbnMoKSwgYW5kIGFkZCgpIG9uIEhhc2hNYXA8U3RyaW5nLC4uLiwg
U3RyaW5nSGFzaD4KICAgICAvLyBjYXVzZSBhIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVu
IHBhc3NlZCBudWxsIHN0cmluZ3MuCkBAIC04Miw2ICs4NywxNCBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7
CiAgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nJiBhLCBj
b25zdCBOdWxsU3RyaW5nJikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGEuaXNOdWxs
KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgTnVsbFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGIuaXNO
dWxsKCk7CisgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgJKHJldmlzaW9uIDExNDg0MikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQ1N0cmluZzsKK2NsYXNzIE51bGxTdHJpbmc7CisK
IHN0cnVjdCBTdHJpbmdIYXNoOwogCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlv
bnMKQEAgLTEwNiw2ICsxMDgsNyBAQCBjbGFzcyBTdHJpbmcgewogcHVibGljOgogICAgIC8vIENv
bnN0cnVjdCBhIG51bGwgc3RyaW5nLCBkaXN0aW5ndWlzaGFibGUgZnJvbSBhbiBlbXB0eSBzdHJp
bmcuCiAgICAgU3RyaW5nKCkgeyB9CisgICAgU3RyaW5nKGNvbnN0IE51bGxTdHJpbmcmKSB7IH0K
IAogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCk7CkBAIC0zOTksMTMgKzQwMiwxOCBAQCBwcml2YXRlOgogfTsKIAogI2lmIFBMQVRGT1JN
KFFUKQotUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mIHN0cmVhbSwgY29uc3Qg
U3RyaW5nJiBzdHIpOwotUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mIHN0cmVh
bSwgU3RyaW5nJiBzdHIpOworUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBj
b25zdCBTdHJpbmcmKTsKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgU3Ry
aW5nJik7CiAjZW5kaWYKIAorLy8gRm9yIHRlbXBsYXRlIG1ldGFwcm9ncmFtbWluZywgdGhpcyBj
bGFzcyBjYW4gYmUgdXNlZCBmb3IgYSBzdHJpbmcga25vd24gYXQgY29tcGlsZSB0aW1lIHRvIGJl
IHRoZSBudWxsIHN0cmluZy4KK2NsYXNzIE51bGxTdHJpbmcgeyB9OworCiBpbmxpbmUgU3RyaW5n
JiBvcGVyYXRvcis9KFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IGEuYXBwZW5kKGIpOyBy
ZXR1cm4gYTsgfQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZyYgYSwgY29u
c3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOyB9Citpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgTnVsbFN0cmluZyYpIHsg
cmV0dXJuIGEuaXNOdWxsKCk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgTnVsbFN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gYi5pc051bGwoKTsgfQogaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IExDaGFyKiBiKSB7IHJldHVybiBl
cXVhbChhLmltcGwoKSwgYik7IH0KIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5n
JiBhLCBjb25zdCBjaGFyKiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KGIpKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBM
Q2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbChhLCBiLmltcGwoKSk7IH0K
QEAgLTQxNSw4ICs0MjMsOSBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZlY3Rvcjxj
aGFyCiB0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHk+CiBpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5PiYg
YikgeyByZXR1cm4gYiA9PSBhOyB9CiAKLQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBT
dHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCBiLmlt
cGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBO
dWxsU3RyaW5nJikgeyByZXR1cm4gIWEuaXNOdWxsKCk7IH0KK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgTnVsbFN0cmluZyYsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gIWIuaXNOdWxs
KCk7IH0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBMQ2hh
ciogYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCBiKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IGNoYXIqIGIpIHsgcmV0dXJuICFlcXVhbChhLmlt
cGwoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGIpKTsgfQogaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBMQ2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAhZXF1
YWwoYSwgYi5pbXBsKCkpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ4NDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAxMi0wNC0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgSXRl
cmF0aW5nIGEgSGFzaE1hcDxTdHJpbmcsIFg+IGludm9sdmVzIGEgc3RyaW5nIGVxdWFsaXR5IGNv
bXBhcmlzb24gdG8gY2hlY2sgZm9yIHRoZSBlbXB0eSB2YWx1ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1MjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQu
aDogQWRkZWQgYW4gaW5jbHVkZSBvZiBTdHJpbmdIYXNoLmguCisKIDIwMTItMDQtMjEgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgcGVyZm9ybWFuY2Ug
b2YgcmVtb3ZpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBVUkxzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDEyICszMiwxMSBAQAogI2RlZmluZSBET01QYXRjaFN1cHBvcnRfaAogCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgotCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ4NDMpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEy
LTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRp
bmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFy
aXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6IEFkZGVkIGFuIGlu
Y2x1ZGUgb2YgU3RyaW5nSGFzaC5oLgorCiAyMDEyLTA0LTIwICBBZHJpZW5uZSBXYWxrZXIgIDxl
bm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWZhY3RvciBvcGFxdWUgY29u
dGVudCB0cmFuc2Zvcm0gb3V0IG9mIFNraWEgY29udGV4dApJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1
Nyw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWN0aXZlUGxhdGZv
cm1HZXN0dXJlQW5pbWF0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138241</attachid>
            <date>2012-04-21 10:03:29 -0700</date>
            <delta_ts>2012-04-21 12:35:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84524-20120421100328.patch</filename>
            <type>text/plain</type>
            <size>11344</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
ZWNraW5nIGlmIGEgaGFzaCB0YWJsZSBlbnRyeSBpcyBlbXB0eSBzaG91bGQgbm90IGludm9sdmUg
Y2FsbGluZyB0aGUgc3RyaW5nCisgICAgICAgIGVxdWFsaXR5IGZ1bmN0aW9uLiBUd2VhayB0aGUg
aGFzaCB0YWJsZSBhbmQgc3RyaW5nIGhhc2ggdHJhaXRzIHRvIGZpeCB0aGF0LgorICAgICAgICBC
eSB1c2luZyBhIHNwZWNpYWwgdHlwZSBmb3IgbnVsbCBzdHJpbmdzIHdlIGNhbiBjaGVjayBpZiBh
IHN0cmluZyBpcyBlcXVhbCB0bworICAgICAgICBhIG51bGwgc3RyaW5nIHdpdGhvdXQgY2FsbGlu
ZyB0aGUgZ2VuZXJhbCBjYXNlIHN0cmluZyBlcXVhbGl0eSBmdW5jdGlvbi4KKworICAgICAgICAq
IHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SWRlbnRpdHlIYXNoVHJhbnNsYXRvcjo6
ZXF1YWwpOiBNYWRlIHRoaXMgd29yayBldmVuIHdoZW4gdGhlIHR5cGVzIGFyZSBub3QgdGhlIHNh
bWUuCisgICAgICAgIChXVEY6OklkZW50aXR5SGFzaFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6IERp
dHRvLgorICAgICAgICAoV1RGOjpIYXNoVGFibGU6OmlzRW1wdHlCdWNrZXQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgaXNFcXVhbFRvRW1wdHlWYWx1ZSBmdW5jdGlvbiwgd2hpY2gKKyAgICAgICAgY2Fu
IGhhbmRsZSBjb21wYXJpbmcgdHdvIHBhaXJzIGV2ZW4gd2hlbiB0aGUgcGFpciB0eXBlcyBhcmUg
bm90IGlkZW50aWNhbC4KKworICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6IE1vdmVkIFN0cmlu
ZyB0cmFpdHMgb3V0IG9mIHRoaXMgZmlsZSBpbnRvIFN0cmluZ0hhc2guaC4KKyAgICAgICAgKFdU
Rjo6aXNFcXVhbFRvRW1wdHlWYWx1ZSk6IEFkZGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nSGFzaC5oOiBTcGVjaWFsaXplZCBIYXNUcmFpdHM8U3RyaW5nPiB0byB1c2UgYSBzcGVjaWFs
IG51bGwgc3RyaW5nCisgICAgICAgIHR5cGUgZm9yIHRoZSBlbXB0eSB2YWx1ZS4gQWxzbyBvdmVy
bG9hZGVkIHRoZSBlcXVhbGl0eSBjb21wYXJpc29uIHRvIGhhbmRsZSB0aGF0IHR5cGUuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDogQWRkZWQgYSBOdWxsU3RyaW5nIHR5cGUuCisg
ICAgICAgIChXVEY6OlN0cmluZzo6U3RyaW5nKTogQWRkZWQgYSBjb25zdHJ1Y3RvciB0aGF0IGNh
biB0YWtlIGEgTnVsbFN0cmluZy4KKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6IE92ZXJsb2Fk
ZWQgdG8gY29tcGFyZSB3aXRoIE51bGxTdHJpbmcuCisgICAgICAgIChXVEY6Om9wZXJhdG9yIT0p
OiBEaXR0by4KKwogMjAxMi0wNC0xOCAgTXlsZXMgTWF4ZmllbGQgIDxtbWF4ZmllbGRAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBTb21laG93LCB0aGVyZSdzIGFuIGVycmFudCBiYWNrc2xhc2ggaW4g
bXkgbGFzdCBXVEYgcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShyZXZpc2lvbiAxMTQ4NDIpCisr
KyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDggKzI5
Miw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnM+IGNsYXNzIElkZW50aXR5SGFzaFRyYW5zbGF0b3IgewogICAgIHB1YmxpYzoKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYga2V5KSB7
IHJldHVybiBIYXNoRnVuY3Rpb25zOjpoYXNoKGtleSk7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVCYgYSwgY29uc3QgVCYgYikgeyByZXR1
cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYSwgYik7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RhdGljIHZvaWQgdHJhbnNsYXRlKFQmIGxvY2F0aW9uLCBjb25z
dCBVJiwgY29uc3QgVCYgdmFsdWUpIHsgbG9jYXRpb24gPSB2YWx1ZTsgfQorICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBh
LCBjb25zdCBVJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLCBiKTsgfQorICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMg
dm9pZCB0cmFuc2xhdGUoVCYgbG9jYXRpb24sIGNvbnN0IFUmLCBjb25zdCBWJiB2YWx1ZSkgeyBs
b2NhdGlvbiA9IHZhbHVlOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yVHlwZT4gc3RydWN0IEhhc2hUYWJsZUFkZFJlc3VsdCB7CkBAIC0zNTksNyArMzU5LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHZvaWQgcmVtb3ZlV2l0aG91dEVudHJ5Q29uc2lzdGVu
Y3lDaGVjayhjb25zdF9pdGVyYXRvcik7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAotICAgICAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5QnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0
dXJuIEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSkgPT0gS2V5VHJhaXRzOjplbXB0eVZhbHVlKCk7
IH0KKyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eUJ1Y2tldChjb25zdCBWYWx1ZVR5cGUmIHZh
bHVlKSB7IHJldHVybiBpc0VxdWFsVG9FbXB0eVZhbHVlKEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIEtleVRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRCdWNrZXQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gS2V5VHJhaXRzOjpp
c0RlbGV0ZWRWYWx1ZShFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0
aWMgYm9vbCBpc0VtcHR5T3JEZWxldGVkQnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsg
cmV0dXJuIGlzRW1wdHlCdWNrZXQodmFsdWUpIHx8IGlzRGVsZXRlZEJ1Y2tldCh2YWx1ZSk7IH0K
IApJbmRleDogU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAkocmV2aXNpb24gMTE0ODQyKQorKysgU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yOSw4ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0gICAgY2xhc3Mg
U3RyaW5nOwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7CiAKQEAgLTEzOCw4ICsxMzYsNiBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gYnV0IHRoZW4gY2FsbGVycyB3b24ndCBuZWVk
IHRvIGNhbGwgZ2V0OyBkb2luZyBzbyB3aWxsIHJlcXVpcmUgdXBkYXRpbmcgbWFueSBjYWxsIHNp
dGVzLgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7IH07Ci0KICAgICAvLyBzcGVjaWFsIHRy
YWl0cyBmb3IgcGFpcnMsIGhlbHBmdWwgZm9yIHRoZWlyIHVzZSBpbiBIYXNoTWFwIGltcGxlbWVu
dGF0aW9uCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdFRyYWl0c0FyZywgdHlwZW5hbWUg
U2Vjb25kVHJhaXRzQXJnPgpAQCAtMTYzLDYgKzE1OSw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IEhh
c2hUcmFpdHM8cGFpcjxGaXJzdCwgU2Vjb25kPiA+IDogcHVibGljIFBhaXJIYXNoVHJhaXRzPEhh
c2hUcmFpdHM8Rmlyc3Q+LCBIYXNoVHJhaXRzPFNlY29uZD4gPiB7IH07CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBpc0VxdWFsVG9FbXB0eVZhbHVl
KGNvbnN0IFQmIHZhbHVlLCBjb25zdCBVJiBlbXB0eVZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBl
bXB0eVZhbHVlOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgVz4gaW5saW5lIGJvb2wgaXNFcXVhbFRvRW1wdHlWYWx1ZShjb25zdCBw
YWlyPFQsIFU+JiB2YWx1ZSwgY29uc3QgcGFpcjxWLCBXPiYgZW1wdHlWYWx1ZSkgeyByZXR1cm4g
aXNFcXVhbFRvRW1wdHlWYWx1ZSh2YWx1ZS5maXJzdCwgZW1wdHlWYWx1ZS5maXJzdCkgJiYgaXNF
cXVhbFRvRW1wdHlWYWx1ZSh2YWx1ZS5zZWNvbmQsIGVtcHR5VmFsdWUuc2Vjb25kKTsgfQorICAg
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6SGFzaFRyYWl0czsKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSGFzaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSGFzaC5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0hhc2guaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMDkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEs
NiArMzEsMTEgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7CisgICAg
ICAgIHR5cGVkZWYgTnVsbFN0cmluZyBFbXB0eVZhbHVlVHlwZTsKKyAgICAgICAgc3RhdGljIE51
bGxTdHJpbmcgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIE51bGxTdHJpbmcoKTsgfQorICAgIH07CisK
ICAgICAvLyBUaGUgaGFzaCgpIGZ1bmN0aW9ucyBvbiBTdHJpbmdIYXNoIGFuZCBDYXNlRm9sZGlu
Z0hhc2ggZG8gbm90IHN1cHBvcnQKICAgICAvLyBudWxsIHN0cmluZ3MuIGdldCgpLCBjb250YWlu
cygpLCBhbmQgYWRkKCkgb24gSGFzaE1hcDxTdHJpbmcsLi4uLCBTdHJpbmdIYXNoPgogICAgIC8v
IGNhdXNlIGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gcGFzc2VkIG51bGwgc3RyaW5n
cy4KQEAgLTgyLDYgKzg3LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsKICAgICAgICAgfQorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTdHJpbmcmIGEsIGNvbnN0IE51bGxTdHJpbmcmKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYS5pc051bGwoKTsKKyAgICAgICAgfQorICAg
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBOdWxsU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBi
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYi5pc051bGwoKTsKKyAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAkocmV2aXNpb24g
MTE0ODQyKQorKysgU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBXVEYgewog
CiBjbGFzcyBDU3RyaW5nOworY2xhc3MgTnVsbFN0cmluZzsKKwogc3RydWN0IFN0cmluZ0hhc2g7
CiAKIC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwpAQCAtMTA2LDYgKzEwOCw3
IEBAIGNsYXNzIFN0cmluZyB7CiBwdWJsaWM6CiAgICAgLy8gQ29uc3RydWN0IGEgbnVsbCBzdHJp
bmcsIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIGFuIGVtcHR5IHN0cmluZy4KICAgICBTdHJpbmcoKSB7
IH0KKyAgICBTdHJpbmcoY29uc3QgTnVsbFN0cmluZyYpIHsgfQogCiAgICAgLy8gQ29uc3RydWN0
IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmlu
Zyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTM5OSwxMyAr
NDAyLDE4IEBAIHByaXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oUVQpCi1RRGF0YVN0cmVhbSYg
b3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgc3RyZWFtLCBjb25zdCBTdHJpbmcmIHN0cik7Ci1RRGF0
YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYgc3RyZWFtLCBTdHJpbmcmIHN0cik7CitR
RGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFN0cmluZyYpOworUURh
dGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mLCBTdHJpbmcmKTsKICNlbmRpZgogCisv
LyBGb3IgdGVtcGxhdGUgbWV0YXByb2dyYW1taW5nLCB0aGlzIGNsYXNzIGNhbiBiZSB1c2VkIGZv
ciBhIHN0cmluZyBrbm93biBhdCBjb21waWxlIHRpbWUgdG8gYmUgdGhlIG51bGwgc3RyaW5nLgor
Y2xhc3MgTnVsbFN0cmluZyB7IH07CisKIGlubGluZSBTdHJpbmcmIG9wZXJhdG9yKz0oU3RyaW5n
JiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgYS5hcHBlbmQoYik7IHJldHVybiBhOyB9CiAKIGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgcmV0
dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBOdWxsU3RyaW5nJikgeyByZXR1cm4gYS5pc051bGwoKTsg
fQoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOdWxsU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBiKSB7IHJldHVybiBiLmlzTnVsbCgpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFN0cmluZyYgYSwgY29uc3QgTENoYXIqIGIpIHsgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiKTsg
fQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IGNoYXIqIGIp
IHsgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
YikpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IExDaGFyKiBhLCBjb25zdCBTdHJp
bmcmIGIpIHsgcmV0dXJuIGVxdWFsKGEsIGIuaW1wbCgpKTsgfQpAQCAtNDE1LDggKzQyMyw5IEBA
IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVmVjdG9yPGNoYXIKIHRlbXBsYXRlPHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4KIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBh
LCBjb25zdCBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHk+JiBiKSB7IHJldHVybiBiID09IGE7
IH0KIAotCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3Ry
aW5nJiBiKSB7IHJldHVybiAhZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IE51bGxTdHJpbmcmKSB7IHJldHVy
biAhYS5pc051bGwoKTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBOdWxsU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAhYi5pc051bGwoKTsgfQogaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IExDaGFyKiBiKSB7IHJldHVybiAhZXF1
YWwoYS5pbXBsKCksIGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYg
YSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oYikpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExD
aGFyKiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgcmV0dXJuICFlcXVhbChhLCBiLmltcGwoKSk7IH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDg0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA0LTIxICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0
cmluZywgWD4gaW52b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBm
b3IgdGhlIGVtcHR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oOiBBZGRlZCBhbiBpbmNsdWRl
IG9mIFN0cmluZ0hhc2guaC4KKwogMjAxMi0wNC0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSBwZXJmb3JtYW5jZSBvZiByZW1vdmluZyB1c2VyIGFu
ZCBwYXNzd29yZCBmcm9tIFVSTHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Q
YXRjaFN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
UGF0Y2hTdXBwb3J0LmgJKHJldmlzaW9uIDExNDg0MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9ET01QYXRjaFN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDExIEBA
CiAjZGVmaW5lIERPTVBhdGNoU3VwcG9ydF9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
Ci0KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDExNDg0MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDQtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIEl0ZXJhdGluZyBhIEhhc2hNYXA8U3RyaW5n
LCBYPiBpbnZvbHZlcyBhIHN0cmluZyBlcXVhbGl0eSBjb21wYXJpc29uIHRvIGNoZWNrIGZvciB0
aGUgZW1wdHkgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0NTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDogQWRkZWQgYW4gaW5jbHVkZSBvZiBTdHJpbmdIYXNo
LmguCisKIDIwMTItMDQtMjAgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFJlZmFjdG9yIG9wYXF1ZSBjb250ZW50IHRyYW5zZm9ybSBvdXQg
b2YgU2tpYSBjb250ZXh0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgJKHJldmlzaW9uIDExNDg0MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJV
c2VyTWVkaWFDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb247
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138254</attachid>
            <date>2012-04-21 12:36:01 -0700</date>
            <delta_ts>2012-04-21 15:15:00 -0700</delta_ts>
            <desc>Patch with another cut at fixing Chromium build</desc>
            <filename>bug-84524-20120421123600.patch</filename>
            <type>text/plain</type>
            <size>10763</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
ZWNraW5nIGlmIGEgaGFzaCB0YWJsZSBlbnRyeSBpcyBlbXB0eSBzaG91bGQgbm90IGludm9sdmUg
Y2FsbGluZyB0aGUgc3RyaW5nCisgICAgICAgIGVxdWFsaXR5IGZ1bmN0aW9uLiBUd2VhayB0aGUg
aGFzaCB0YWJsZSBhbmQgc3RyaW5nIGhhc2ggdHJhaXRzIHRvIGZpeCB0aGF0LgorICAgICAgICBC
eSB1c2luZyBhIHNwZWNpYWwgdHlwZSBmb3IgbnVsbCBzdHJpbmdzIHdlIGNhbiBjaGVjayBpZiBh
IHN0cmluZyBpcyBlcXVhbCB0bworICAgICAgICBhIG51bGwgc3RyaW5nIHdpdGhvdXQgY2FsbGlu
ZyB0aGUgZ2VuZXJhbCBjYXNlIHN0cmluZyBlcXVhbGl0eSBmdW5jdGlvbi4KKworICAgICAgICAq
IHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SWRlbnRpdHlIYXNoVHJhbnNsYXRvcjo6
ZXF1YWwpOiBNYWRlIHRoaXMgd29yayBldmVuIHdoZW4gdGhlIHR5cGVzIGFyZSBub3QgdGhlIHNh
bWUuCisgICAgICAgIChXVEY6OklkZW50aXR5SGFzaFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6IERp
dHRvLgorICAgICAgICAoV1RGOjpIYXNoVGFibGU6OmlzRW1wdHlCdWNrZXQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgaXNFcXVhbFRvRW1wdHlWYWx1ZSBmdW5jdGlvbiwgd2hpY2gKKyAgICAgICAgY2Fu
IGhhbmRsZSBjb21wYXJpbmcgdHdvIHBhaXJzIGV2ZW4gd2hlbiB0aGUgcGFpciB0eXBlcyBhcmUg
bm90IGlkZW50aWNhbC4KKworICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6IE1vdmVkIFN0cmlu
ZyB0cmFpdHMgb3V0IG9mIHRoaXMgZmlsZSBpbnRvIFN0cmluZ0hhc2guaC4KKyAgICAgICAgKFdU
Rjo6aXNFcXVhbFRvRW1wdHlWYWx1ZSk6IEFkZGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nSGFzaC5oOiBTcGVjaWFsaXplZCBIYXNUcmFpdHM8U3RyaW5nPiB0byB1c2UgYSBzcGVjaWFs
IG51bGwgc3RyaW5nCisgICAgICAgIHR5cGUgZm9yIHRoZSBlbXB0eSB2YWx1ZS4gQWxzbyBvdmVy
bG9hZGVkIHRoZSBlcXVhbGl0eSBjb21wYXJpc29uIHRvIGhhbmRsZSB0aGF0IHR5cGUuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDogQWRkZWQgYSBOdWxsU3RyaW5nIHR5cGUuCisg
ICAgICAgIChXVEY6OlN0cmluZzo6U3RyaW5nKTogQWRkZWQgYSBjb25zdHJ1Y3RvciB0aGF0IGNh
biB0YWtlIGEgTnVsbFN0cmluZy4KKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6IE92ZXJsb2Fk
ZWQgdG8gY29tcGFyZSB3aXRoIE51bGxTdHJpbmcuCisgICAgICAgIChXVEY6Om9wZXJhdG9yIT0p
OiBEaXR0by4KKwogMjAxMi0wNC0xOCAgTXlsZXMgTWF4ZmllbGQgIDxtbWF4ZmllbGRAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBTb21laG93LCB0aGVyZSdzIGFuIGVycmFudCBiYWNrc2xhc2ggaW4g
bXkgbGFzdCBXVEYgcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShyZXZpc2lvbiAxMTQ4NDIpCisr
KyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDggKzI5
Miw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnM+IGNsYXNzIElkZW50aXR5SGFzaFRyYW5zbGF0b3IgewogICAgIHB1YmxpYzoKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYga2V5KSB7
IHJldHVybiBIYXNoRnVuY3Rpb25zOjpoYXNoKGtleSk7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVCYgYSwgY29uc3QgVCYgYikgeyByZXR1
cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYSwgYik7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RhdGljIHZvaWQgdHJhbnNsYXRlKFQmIGxvY2F0aW9uLCBjb25z
dCBVJiwgY29uc3QgVCYgdmFsdWUpIHsgbG9jYXRpb24gPSB2YWx1ZTsgfQorICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBh
LCBjb25zdCBVJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLCBiKTsgfQorICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMg
dm9pZCB0cmFuc2xhdGUoVCYgbG9jYXRpb24sIGNvbnN0IFUmLCBjb25zdCBWJiB2YWx1ZSkgeyBs
b2NhdGlvbiA9IHZhbHVlOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yVHlwZT4gc3RydWN0IEhhc2hUYWJsZUFkZFJlc3VsdCB7CkBAIC0zNTksNyArMzU5LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHZvaWQgcmVtb3ZlV2l0aG91dEVudHJ5Q29uc2lzdGVu
Y3lDaGVjayhjb25zdF9pdGVyYXRvcik7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAotICAgICAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5QnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0
dXJuIEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSkgPT0gS2V5VHJhaXRzOjplbXB0eVZhbHVlKCk7
IH0KKyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eUJ1Y2tldChjb25zdCBWYWx1ZVR5cGUmIHZh
bHVlKSB7IHJldHVybiBpc0VxdWFsVG9FbXB0eVZhbHVlKEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIEtleVRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRCdWNrZXQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gS2V5VHJhaXRzOjpp
c0RlbGV0ZWRWYWx1ZShFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0
aWMgYm9vbCBpc0VtcHR5T3JEZWxldGVkQnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsg
cmV0dXJuIGlzRW1wdHlCdWNrZXQodmFsdWUpIHx8IGlzRGVsZXRlZEJ1Y2tldCh2YWx1ZSk7IH0K
IApJbmRleDogU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAkocmV2aXNpb24gMTE0ODQyKQorKysgU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yOSw4ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0gICAgY2xhc3Mg
U3RyaW5nOwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7CiAKQEAgLTEzOCw4ICsxMzYsNiBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gYnV0IHRoZW4gY2FsbGVycyB3b24ndCBuZWVk
IHRvIGNhbGwgZ2V0OyBkb2luZyBzbyB3aWxsIHJlcXVpcmUgdXBkYXRpbmcgbWFueSBjYWxsIHNp
dGVzLgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7IH07Ci0KICAgICAvLyBzcGVjaWFsIHRy
YWl0cyBmb3IgcGFpcnMsIGhlbHBmdWwgZm9yIHRoZWlyIHVzZSBpbiBIYXNoTWFwIGltcGxlbWVu
dGF0aW9uCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdFRyYWl0c0FyZywgdHlwZW5hbWUg
U2Vjb25kVHJhaXRzQXJnPgpAQCAtMTYzLDYgKzE1OSw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IEhh
c2hUcmFpdHM8cGFpcjxGaXJzdCwgU2Vjb25kPiA+IDogcHVibGljIFBhaXJIYXNoVHJhaXRzPEhh
c2hUcmFpdHM8Rmlyc3Q+LCBIYXNoVHJhaXRzPFNlY29uZD4gPiB7IH07CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBpc0VxdWFsVG9FbXB0eVZhbHVl
KGNvbnN0IFQmIHZhbHVlLCBjb25zdCBVJiBlbXB0eVZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBl
bXB0eVZhbHVlOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgVz4gaW5saW5lIGJvb2wgaXNFcXVhbFRvRW1wdHlWYWx1ZShjb25zdCBw
YWlyPFQsIFU+JiB2YWx1ZSwgY29uc3QgcGFpcjxWLCBXPiYgZW1wdHlWYWx1ZSkgeyByZXR1cm4g
aXNFcXVhbFRvRW1wdHlWYWx1ZSh2YWx1ZS5maXJzdCwgZW1wdHlWYWx1ZS5maXJzdCkgJiYgaXNF
cXVhbFRvRW1wdHlWYWx1ZSh2YWx1ZS5zZWNvbmQsIGVtcHR5VmFsdWUuc2Vjb25kKTsgfQorICAg
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6SGFzaFRyYWl0czsKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSGFzaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSGFzaC5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0hhc2guaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMDkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEs
NiArMzEsMTEgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7CisgICAg
ICAgIHR5cGVkZWYgTnVsbFN0cmluZyBFbXB0eVZhbHVlVHlwZTsKKyAgICAgICAgc3RhdGljIE51
bGxTdHJpbmcgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIE51bGxTdHJpbmcoKTsgfQorICAgIH07CisK
ICAgICAvLyBUaGUgaGFzaCgpIGZ1bmN0aW9ucyBvbiBTdHJpbmdIYXNoIGFuZCBDYXNlRm9sZGlu
Z0hhc2ggZG8gbm90IHN1cHBvcnQKICAgICAvLyBudWxsIHN0cmluZ3MuIGdldCgpLCBjb250YWlu
cygpLCBhbmQgYWRkKCkgb24gSGFzaE1hcDxTdHJpbmcsLi4uLCBTdHJpbmdIYXNoPgogICAgIC8v
IGNhdXNlIGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gcGFzc2VkIG51bGwgc3RyaW5n
cy4KQEAgLTgyLDYgKzg3LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsKICAgICAgICAgfQorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTdHJpbmcmIGEsIGNvbnN0IE51bGxTdHJpbmcmKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYS5pc051bGwoKTsKKyAgICAgICAgfQorICAg
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBOdWxsU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBi
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYi5pc051bGwoKTsKKyAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAkocmV2aXNpb24g
MTE0ODQyKQorKysgU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBXVEYgewog
CiBjbGFzcyBDU3RyaW5nOworY2xhc3MgTnVsbFN0cmluZzsKKwogc3RydWN0IFN0cmluZ0hhc2g7
CiAKIC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwpAQCAtMTA2LDYgKzEwOCw3
IEBAIGNsYXNzIFN0cmluZyB7CiBwdWJsaWM6CiAgICAgLy8gQ29uc3RydWN0IGEgbnVsbCBzdHJp
bmcsIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIGFuIGVtcHR5IHN0cmluZy4KICAgICBTdHJpbmcoKSB7
IH0KKyAgICBTdHJpbmcoY29uc3QgTnVsbFN0cmluZyYpIHsgfQogCiAgICAgLy8gQ29uc3RydWN0
IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmlu
Zyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTM5OSwxMyAr
NDAyLDE4IEBAIHByaXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oUVQpCi1RRGF0YVN0cmVhbSYg
b3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgc3RyZWFtLCBjb25zdCBTdHJpbmcmIHN0cik7Ci1RRGF0
YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYgc3RyZWFtLCBTdHJpbmcmIHN0cik7CitR
RGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFN0cmluZyYpOworUURh
dGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mLCBTdHJpbmcmKTsKICNlbmRpZgogCisv
LyBGb3IgdGVtcGxhdGUgbWV0YXByb2dyYW1taW5nLCB0aGlzIGNsYXNzIGNhbiBiZSB1c2VkIGZv
ciBhIHN0cmluZyBrbm93biBhdCBjb21waWxlIHRpbWUgdG8gYmUgdGhlIG51bGwgc3RyaW5nLgor
Y2xhc3MgTnVsbFN0cmluZyB7IH07CisKIGlubGluZSBTdHJpbmcmIG9wZXJhdG9yKz0oU3RyaW5n
JiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgYS5hcHBlbmQoYik7IHJldHVybiBhOyB9CiAKIGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgcmV0
dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBOdWxsU3RyaW5nJikgeyByZXR1cm4gYS5pc051bGwoKTsg
fQoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOdWxsU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBiKSB7IHJldHVybiBiLmlzTnVsbCgpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFN0cmluZyYgYSwgY29uc3QgTENoYXIqIGIpIHsgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiKTsg
fQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IGNoYXIqIGIp
IHsgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
YikpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IExDaGFyKiBhLCBjb25zdCBTdHJp
bmcmIGIpIHsgcmV0dXJuIGVxdWFsKGEsIGIuaW1wbCgpKTsgfQpAQCAtNDE1LDggKzQyMyw5IEBA
IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVmVjdG9yPGNoYXIKIHRlbXBsYXRlPHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4KIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBh
LCBjb25zdCBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHk+JiBiKSB7IHJldHVybiBiID09IGE7
IH0KIAotCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3Ry
aW5nJiBiKSB7IHJldHVybiAhZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IE51bGxTdHJpbmcmKSB7IHJldHVy
biAhYS5pc051bGwoKTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBOdWxsU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAhYi5pc051bGwoKTsgfQogaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IExDaGFyKiBiKSB7IHJldHVybiAhZXF1
YWwoYS5pbXBsKCksIGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYg
YSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oYikpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExD
aGFyKiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgcmV0dXJuICFlcXVhbChhLCBiLmltcGwoKSk7IH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDg0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA0LTIxICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0
cmluZywgWD4gaW52b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBm
b3IgdGhlIGVtcHR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oOiBBZGRlZCBhbiBpbmNsdWRl
IG9mIFN0cmluZ0hhc2guaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uaDogRGl0dG8uCisKIDIwMTItMDQtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgcGVyZm9ybWFuY2Ugb2YgcmVt
b3ZpbmcgdXNlciBhbmQgcGFzc3dvcmQgZnJvbSBVUkxzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDEyICszMiwxMSBAQAogI2RlZmluZSBET01QYXRjaFN1cHBvcnRfaAogCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgotCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiAxMTQ4NDIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAko
d29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJBbmlt
YXRpb25EZWxlZ2F0ZS5oIgogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138257</attachid>
            <date>2012-04-21 15:15:04 -0700</date>
            <delta_ts>2012-04-24 21:46:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84524-20120421151503.patch</filename>
            <type>text/plain</type>
            <size>8237</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQ4NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIGEgbmV3IGFsZ29yaXRobSBmb3IgY2hlY2tpbmcgZm9yIGVtcHR5IGJ1Y2tldHMgdGhhdCBj
YW4gYmUgc3BlY2lhbGl6ZWQuCisgICAgICAgIFNwZWNpYWxpemVkIGl0IGZvciBTdHJpbmcuIFdl
IG1heSBsYXRlciB3YW50IHRvIGRvIHRoZSBzYW1lIHRoaW5nIGZvciBLVVJMLgorICAgICAgICBJ
dCdzIG5vdCBpbXBvcnRhbnQgdG8gZG8gaXQgZm9yIEF0b21pY1N0cmluZywgc2luY2UgQXRvbWlj
U3RyaW5nJ3MgPT0gZnVuY3Rpb24KKyAgICAgICAgaXMgYWxyZWFkeSBhIHNpbXBsZSBwb2ludGVy
IGVxdWFsaXR5IGNvbXBhcmUuCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAg
IChXVEY6Okhhc2hUYWJsZTo6aXNFbXB0eUJ1Y2tldCk6IENhbGwgdGhlIG5ldyBpc0hhc2hUcmFp
dHNFbXB0eVZhbHVlIGZ1bmN0aW9uLCB3aGljaAorICAgICAgICB3aWxsIGRvIHNvbWV0aGluZyBt
b3JlIGVmZmljaWVudCBmb3IgU3RyaW5nLgorCisgICAgICAgICogd3RmL0hhc2hUcmFpdHMuaDog
QWRkZWQgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gdG8gaGFzaCB0cmFpdHMsIHdpdGggYSBkZWZh
dWx0IHZhbHVlCisgICAgICAgIG9mIGZhbHNlLiBUaGlzIGFsbG93cyB1cyB0byBjb250aW51ZSB0
byBnZXQgYXV0b21hdGljIGNvbXBhcmlzb24gd2l0aCB0aGUgYXBwcm9wcmlhdGUKKyAgICAgICAg
ZW1wdHlWYWx1ZSByZXN1bHQgZm9yIGFsbCBleGlzdGluZyB0cmFpdHMsIGJ1dCBzdXBwbHkgYSBj
dXN0b20gaXNFbXB0eVZhbHVlIGZ1bmN0aW9uCisgICAgICAgIGZvciBIYXNoVHJhaXRzPFN0cmlu
Zz4uIFB1dHRpbmcgYW4gaXNFbXB0eVZhbHVlIGZ1bmN0aW9uIGludG8gdGhlIHRyYWl0cyB3b3Vs
ZCByZXF1aXJlCisgICAgICAgIG92ZXJyaWRpbmcgaXQgaW4gZXZlcnkgY2xhc3MgdGhhdCBoYXMg
YSBjdXN0b20gdmFsdWUgZm9yIGVtcHR5VmFsdWUuIFNwZWNpYWxpemVkCisgICAgICAgIEhhc2hU
cmFpdHMgZm9yIFN0cmluZyB0byBhZGQgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gYW5kIGRlY2xh
cmUsIGJ1dCBub3QgZGVmaW5lLCB0aGUKKyAgICAgICAgaXNFbXB0eVZhbHVlIGZ1bmN0aW9uLgor
ICAgICAgICAoV1RGOjppc0hhc2hUcmFpdHNFbXB0eVZhbHVlKTogQWRkZWQgYSBmdW5jdGlvbiB0
aGF0IHVzZXMgdGhlIEhhc2hUcmFpdHNFbXB0eVZhbHVlQ2hlY2tlcgorICAgICAgICBzdHJ1Y3Qg
dG8gdXNlIGVpdGhlciA9PSBjb21iaW5lZCB3aXRoIHRoZSBlbXB0eVZhbHVlIGZ1bmN0aW9uIG9y
IHRoZSBpc0VtcHR5VmFsdWUgZnVuY3Rpb24uCisgICAgICAgIChQYWlySGFzaFRyYWl0cyk6IERl
ZmluZSBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiBhbmQgaXNFbXB0eVZhbHVlLgorCisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nSGFzaC5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzIGFuZCBz
b3J0ZWQgdGhlIHVzaW5nIHN0YXRlbWVudHMgYXQKKyAgICAgICAgdGhlIGJvdHRvbSBvZiB0aGUg
ZmlsZS4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxTdHJpbmc+Ojppc0VtcHR5VmFsdWUpOiBE
ZWZpbmUgdGhpcyBmdW5jdGlvbiBoZXJlLCBzaW5jZSBoZXJlIHdlIGhhdmUKKyAgICAgICAgaW5j
bHVkZWQgdGhlIFdURlN0cmluZy5oIGhlYWRlcjsgdGhlIEhhc2hUcmFpdHMuaCBoZWFkZXIgY29t
cGlsZXMgd2l0aG91dCBXVEZTdHJpbmcuaC4KKwogMjAxMi0wNC0xOCAgTXlsZXMgTWF4ZmllbGQg
IDxtbWF4ZmllbGRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTb21laG93LCB0aGVyZSdzIGFuIGVy
cmFudCBiYWNrc2xhc2ggaW4gbXkgbGFzdCBXVEYgcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3Rm
L0hhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShy
ZXZpc2lvbiAxMTQ4NDQpCisrKyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBEYXZpZCBMZXZpbiA8bGV2
aW5AY2hyb21pdW0ub3JnPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM1OSw3ICszNTksNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICAgICAgdm9pZCByZW1vdmVXaXRob3V0RW50cnlDb25zaXN0ZW5jeUNoZWNr
KGNvbnN0X2l0ZXJhdG9yKTsKICAgICAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgICAgIHN0YXRp
YyBib29sIGlzRW1wdHlCdWNrZXQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gRXh0
cmFjdG9yOjpleHRyYWN0KHZhbHVlKSA9PSBLZXlUcmFpdHM6OmVtcHR5VmFsdWUoKTsgfQorICAg
ICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5QnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsg
cmV0dXJuIGlzSGFzaFRyYWl0c0VtcHR5VmFsdWU8S2V5VHJhaXRzPihFeHRyYWN0b3I6OmV4dHJh
Y3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRCdWNrZXQoY29uc3Qg
VmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gS2V5VHJhaXRzOjppc0RlbGV0ZWRWYWx1ZShFeHRy
YWN0b3I6OmV4dHJhY3QodmFsdWUpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5T3JE
ZWxldGVkQnVja2V0KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0dXJuIGlzRW1wdHlCdWNr
ZXQodmFsdWUpIHx8IGlzRGVsZXRlZEJ1Y2tldCh2YWx1ZSk7IH0KIApJbmRleDogU291cmNlL1dU
Ri93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hUcmFp
dHMuaAkocmV2aXNpb24gMTE0ODQ0KQorKysgU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00Miw4ICs0
MiwxNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTxib29sIGlzSW50ZWdlciwgdHlw
ZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNIYXNoVHJhaXRzQmFzZTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBHZW5lcmljSGFzaFRyYWl0c0Jhc2U8ZmFsc2UsIFQ+IHsKKyAgICAg
ICAgLy8gVGhlIGVtcHR5VmFsdWVJc1plcm8gZmxhZyBpcyB1c2VkIHRvIG9wdGltaXplIGFsbG9j
YXRpb24gb2YgZW1wdHkgaGFzaCB0YWJsZXMgd2l0aCB6ZXJvZWQgbWVtb3J5LgogICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgICAgIAorICAg
ICAgICAvLyBUaGUgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gZmxhZyBhbGxvd3MgdGhlIGhhc2gg
dGFibGUgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBjb2RlIHRvIGNoZWNrCisgICAgICAgIC8v
IGZvciB0aGUgZW1wdHkgdmFsdWUgd2hlbiBpdCBjYW4gYmUgZG9uZSB3aXRoIHRoZSBlcXVhbGl0
eSBvcGVyYXRvciwgYnV0IGFsbG93cyBjdXN0b20gZnVuY3Rpb25zCisgICAgICAgIC8vIGZvciBj
YXNlcyBsaWtlIFN0cmluZyB0aGF0IG5lZWQgdGhlbS4KKyAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSBmYWxzZTsKKworICAgICAgICAvLyBUaGUgbmVl
ZHNEZXN0cnVjdGlvbiBmbGFnIGlzIHVzZWQgdG8gb3B0aW1pemUgZGVzdHJ1Y3Rpb24gYW5kIHJl
aGFzaGluZy4KICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7CisKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBtaW5pbXVtVGFibGVTaXplID0gNjQ7CiAg
ICAgfTsKIApAQCAtMTM4LDcgKzE0NywyNCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8g
YnV0IHRoZW4gY2FsbGVycyB3b24ndCBuZWVkIHRvIGNhbGwgZ2V0OyBkb2luZyBzbyB3aWxsIHJl
cXVpcmUgdXBkYXRpbmcgbWFueSBjYWxsIHNpdGVzLgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+
IHN0cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5n
PiB7IH07CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxTdHJpbmc+IDogU2ltcGxl
Q2xhc3NIYXNoVHJhaXRzPFN0cmluZz4geworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJ
c0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgICAgIHN0YXRpYyBib29sIGlzRW1wdHlW
YWx1ZShjb25zdCBTdHJpbmcmKTsKKyAgICB9OworCisgICAgLy8gVGhpcyBzdHJ1Y3QgdGVtcGxh
dGUgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBpc0hhc2hUcmFpdHNFbXB0eVZh
bHVlIGZ1bmN0aW9uLAorICAgIC8vIHdoaWNoIHNlbGVjdHMgZWl0aGVyIHRoZSBlbXB0eVZhbHVl
IGZ1bmN0aW9uIG9yIHRoZSBpc0VtcHR5VmFsdWUgZnVuY3Rpb24gdG8gY2hlY2sgZm9yIGVtcHR5
IHZhbHVlcy4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHMsIGJvb2wgaGFzRW1wdHlWYWx1
ZUZ1bmN0aW9uPiBzdHJ1Y3QgSGFzaFRyYWl0c0VtcHR5VmFsdWVDaGVja2VyOworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFRyYWl0cz4gc3RydWN0IEhhc2hUcmFpdHNFbXB0eVZhbHVlQ2hlY2tlcjxU
cmFpdHMsIHRydWU+IHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGJvb2wg
aXNFbXB0eVZhbHVlKGNvbnN0IFQmIHZhbHVlKSB7IHJldHVybiBUcmFpdHM6OmlzRW1wdHlWYWx1
ZSh2YWx1ZSk7IH0KKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4gc3RydWN0
IEhhc2hUcmFpdHNFbXB0eVZhbHVlQ2hlY2tlcjxUcmFpdHMsIGZhbHNlPiB7CisgICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShjb25zdCBUJiB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgPT0gVHJhaXRzOjplbXB0eVZhbHVlKCk7IH0KKyAgICB9OworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgaXNIYXNo
VHJhaXRzRW1wdHlWYWx1ZShjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBI
YXNoVHJhaXRzRW1wdHlWYWx1ZUNoZWNrZXI8VHJhaXRzLCBUcmFpdHM6Omhhc0lzRW1wdHlWYWx1
ZUZ1bmN0aW9uPjo6aXNFbXB0eVZhbHVlKHZhbHVlKTsKKyAgICB9CiAKICAgICAvLyBzcGVjaWFs
IHRyYWl0cyBmb3IgcGFpcnMsIGhlbHBmdWwgZm9yIHRoZWlyIHVzZSBpbiBIYXNoTWFwIGltcGxl
bWVudGF0aW9uCiAKQEAgLTE1Miw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBGaXJzdFRyYWl0czo6ZW1wdHlW
YWx1ZUlzWmVybyAmJiBTZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CiAgICAgICAgIHN0
YXRpYyBFbXB0eVZhbHVlVHlwZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4gbWFrZV9wYWlyKEZpcnN0
VHJhaXRzOjplbXB0eVZhbHVlKCksIFNlY29uZFRyYWl0czo6ZW1wdHlWYWx1ZSgpKTsgfQogCisg
ICAgICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsK
KyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFRyYWl0VHlwZSYgdmFsdWUp
CisgICAgICAgICAgICB7IHJldHVybiBpc0hhc2hUcmFpdHNFbXB0eVZhbHVlPEZpcnN0VHJhaXRz
Pih2YWx1ZS5maXJzdCkgJiYgaXNIYXNoVHJhaXRzRW1wdHlWYWx1ZTxTZWNvbmRUcmFpdHM+KHZh
bHVlLnNlY29uZCk7IH0KKwogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0
aW9uID0gRmlyc3RUcmFpdHM6Om5lZWRzRGVzdHJ1Y3Rpb24gfHwgU2Vjb25kVHJhaXRzOjpuZWVk
c0Rlc3RydWN0aW9uOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbWluaW11bVRhYmxlU2l6
ZSA9IEZpcnN0VHJhaXRzOjptaW5pbXVtVGFibGVTaXplOwpJbmRleDogU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdIYXNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdIYXNoLmgJKHJldmlzaW9uIDExNDg0NCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SGFzaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAw
OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMywxNCArMjMsMTYgQEAK
ICNkZWZpbmUgU3RyaW5nSGFzaF9oCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0hh
c2hlci5oPgotI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAogbmFtZXNwYWNlIFdU
RiB7CiAKKyAgICBpbmxpbmUgYm9vbCBIYXNoVHJhaXRzPFN0cmluZz46OmlzRW1wdHlWYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgp
OworICAgIH0KKwogICAgIC8vIFRoZSBoYXNoKCkgZnVuY3Rpb25zIG9uIFN0cmluZ0hhc2ggYW5k
IENhc2VGb2xkaW5nSGFzaCBkbyBub3Qgc3VwcG9ydAogICAgIC8vIG51bGwgc3RyaW5ncy4gZ2V0
KCksIGNvbnRhaW5zKCksIGFuZCBhZGQoKSBvbiBIYXNoTWFwPFN0cmluZywuLi4sIFN0cmluZ0hh
c2g+CiAgICAgLy8gY2F1c2UgYSBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBwYXNzZWQg
bnVsbCBzdHJpbmdzLgpAQCAtMTc5LDggKzE4MSw4IEBAIG5hbWVzcGFjZSBXVEYgewogCiB9CiAK
LXVzaW5nIFdURjo6U3RyaW5nSGFzaDsKLXVzaW5nIFdURjo6Q2FzZUZvbGRpbmdIYXNoOwogdXNp
bmcgV1RGOjpBbHJlYWR5SGFzaGVkOwordXNpbmcgV1RGOjpDYXNlRm9sZGluZ0hhc2g7Cit1c2lu
ZyBXVEY6OlN0cmluZ0hhc2g7CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138736</attachid>
            <date>2012-04-24 21:46:46 -0700</date>
            <delta_ts>2012-04-25 18:12:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84524-20120424214645.patch</filename>
            <type>text/plain</type>
            <size>2309</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTUxNjUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTI0ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBJdGVyYXRpbmcgYSBIYXNoTWFwPFN0cmluZywgWD4gaW52
b2x2ZXMgYSBzdHJpbmcgZXF1YWxpdHkgY29tcGFyaXNvbiB0byBjaGVjayBmb3IgdGhlIGVtcHR5
IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL0hhc2hNYXAuaDogQWRkZWQgYSBzdHJ1Y3QgdGVtcGxhdGUsIEhhc2hNYXBWYWx1ZVRyYWl0
cywgdGhhdCBkZXJpdmVzIGZyb20KKyAgICAgICAgUGFpckhhc2hUcmFpdHMsIGFkZHMgYW4gaXNF
bXB0eVZhbHVlIGZ1bmN0aW9uIHRoYXQgbG9va3Mgb25seSBhdCB0aGUga2V5LCBub3QKKyAgICAg
ICAgdGhlIG1hcHBlZCB2YWx1ZSwgaW4gdGhlIGhhc2ggdGFibGUgdmFsdWUsIGFuZCB1c2VzIHRo
ZSBpc0hhc2hUcmFpdHNFbXB0eVZhbHVlCisgICAgICAgIGZ1bmN0aW9uIHRlbXBsYXRlIHRvIGNo
ZWNrIGlmIHRoZSBrZXkgaXMgZW1wdHkuCisKIDIwMTItMDQtMjQgIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgR2VuZXJhbGl6ZSB0aGUgc2luZ2xlIGNo
YXJhY3RlciBvcHRpbWl6YXRpb24gb2YgcjExNDA3MgpJbmRleDogU291cmNlL1dURi93dGYvSGFz
aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAkocmV2aXNpb24g
MTE1MTYxKQorKysgU291cmNlL1dURi93dGYvSGFzaE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw2ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
S2V5VHJhaXRzLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHM+IHN0cnVjdCBIYXNoTWFwVmFsdWVUcmFp
dHM7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUGFpclR5cGU+IHN0cnVjdCBQYWlyRmlyc3RFeHRy
YWN0b3I7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVmZXJlbmNlVHlwZU1h
a2VyIHsKQEAgLTQxLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgcHJpdmF0ZToKICAg
ICAgICAgdHlwZWRlZiBLZXlUcmFpdHNBcmcgS2V5VHJhaXRzOwogICAgICAgICB0eXBlZGVmIE1h
cHBlZFRyYWl0c0FyZyBNYXBwZWRUcmFpdHM7Ci0gICAgICAgIHR5cGVkZWYgUGFpckhhc2hUcmFp
dHM8S2V5VHJhaXRzLCBNYXBwZWRUcmFpdHM+IFZhbHVlVHJhaXRzOworICAgICAgICB0eXBlZGVm
IEhhc2hNYXBWYWx1ZVRyYWl0czxLZXlUcmFpdHMsIE1hcHBlZFRyYWl0cz4gVmFsdWVUcmFpdHM7
CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgS2V5VHJhaXRzOjpUcmFp
dFR5cGUgS2V5VHlwZTsKQEAgLTIwMyw2ICsyMDQsMTQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
ICAgIEhhc2hUYWJsZVR5cGUgbV9pbXBsOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlUcmFpdHMsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4gc3RydWN0IEhhc2hNYXBWYWx1ZVRy
YWl0cyA6IFBhaXJIYXNoVHJhaXRzPEtleVRyYWl0cywgTWFwcGVkVHJhaXRzPiB7CisgICAgICAg
IHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IHR5cGVuYW1lIFBhaXJIYXNoVHJhaXRz
PEtleVRyYWl0cywgTWFwcGVkVHJhaXRzPjo6VHJhaXRUeXBlJiB2YWx1ZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRyYWl0c0VtcHR5VmFsdWU8S2V5VHJhaXRzPih2YWx1
ZS5maXJzdCk7CisgICAgICAgIH0KKyAgICB9OworCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUGFp
clR5cGU+IHN0cnVjdCBQYWlyRmlyc3RFeHRyYWN0b3IgewogICAgICAgICBzdGF0aWMgY29uc3Qg
dHlwZW5hbWUgUGFpclR5cGU6OmZpcnN0X3R5cGUmIGV4dHJhY3QoY29uc3QgUGFpclR5cGUmIHAp
IHsgcmV0dXJuIHAuZmlyc3Q7IH0KICAgICB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>