<?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>42909</bug_id>
          
          <creation_ts>2010-07-23 14:19:02 -0700</creation_ts>
          <short_desc>REGRESSION (r61285): &lt;script /&gt; parses differently in HTML5</short_desc>
          <delta_ts>2010-09-22 20:00: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41115</blocked>
    
    <blocked>46334</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>abarth</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>255550</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-07-23 14:19:02 -0700</bug_when>
    <thetext>In &lt;rdar://problem/8228000&gt; it was reported to us that an internal Apple site displays as an almost empty page with the HTML5 parser enabled.  This happens because the page contains markup similar to the following:

    &lt;script src=&quot;data:text/javascript,&quot; type=&quot;text/javascript&quot; /&gt;
    &lt;p&gt;Hello world&lt;/p&gt;

In Safari 5 this displays as “Hello world”.  In tip of tree this displays as a blank page.

I understand that this markup is not well-formed due the missing closing tag on the script element, but this seems to be a change in behavior that could have a serious backwards-compatibility impact on existing WebKit-only content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255558</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-23 14:35:25 -0700</bug_when>
    <thetext>Yep.  This is on our list of things we expect to see compat problems with:

https://docs.google.com/document/edit?id=1as5xYjyMSCph4960iz0-Kb7hZKf_L6f2vts57NMcVBI&amp;hl=en

So far, we haven&apos;t seen any examples of this on the public Internet.  As far as I know, WebKit is the only rendering engine with this quirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255764</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-24 17:26:53 -0700</bug_when>
    <thetext>I&apos;m wondering if this is at all related to bug 42900 (not directly of course, but perhaps historically).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255813</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-25 06:09:29 -0700</bug_when>
    <thetext>I&apos;m sure if I understand the connection.  Parsing HTML comments in script elements is somewhat tricky and takes up a bunch of states in the lexer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283214</commentid>
    <comment_count>4</comment_count>
      <attachid>68433</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 13:40:25 -0700</bug_when>
    <thetext>Created attachment 68433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283219</commentid>
    <comment_count>5</comment_count>
      <attachid>68433</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-22 13:46:17 -0700</bug_when>
    <thetext>Comment on attachment 68433
Patch

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

This looks good.  One minor quibble.

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2715
&gt; +        if (m_usePreHTML5ParserQuirks &amp;&amp; token.selfClosing()) {
&gt; +            processSelfClosingScriptTag(token);
&gt; +            return true;
&gt; +        }
&gt; +        
&gt;          processScriptStartTag(token);

I would have expected the branch on the quirk to go after this line and then just process a fake end script tag.

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2760
&gt; +    m_tree.insertScriptElement(token);
&gt; +    m_originalInsertionMode = m_insertionMode;
&gt; +    m_lastScriptElementStartLine = m_tokenizer-&gt;lineNumber();
&gt; +    setInsertionMode(TextMode);

Can we share more code with processScriptStartTag ?

&gt; LayoutTests/fast/parser/pre-html5-parser-quirks.html:18
&gt; +&lt;iframe src=&quot;resources/pre-html5-parser-quirk-self-closing-script.html&quot;&gt;&lt;/iframe&gt;

Can you add a test for the fragment mode too?  Also, please add a test for self-closing script tags in the head element b/c that goes through a slightly different code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283245</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-22 14:13:54 -0700</bug_when>
    <thetext>I think that this needs more tests for what is considered to be self-closing tag. E.g. &lt;script /&gt; is, but &lt;script/&gt; isn&apos;t. What about other whitespace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283263</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 14:47:37 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 68433 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68433&amp;action=review
&gt; 
&gt; This looks good.  One minor quibble.
&gt; 
&gt; &gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2715
&gt; &gt; +        if (m_usePreHTML5ParserQuirks &amp;&amp; token.selfClosing()) {
&gt; &gt; +            processSelfClosingScriptTag(token);
&gt; &gt; +            return true;
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt;          processScriptStartTag(token);
&gt; 
&gt; I would have expected the branch on the quirk to go after this line and then just process a fake end script tag.
&gt; 
&gt; &gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2760
&gt; &gt; +    m_tree.insertScriptElement(token);
&gt; &gt; +    m_originalInsertionMode = m_insertionMode;
&gt; &gt; +    m_lastScriptElementStartLine = m_tokenizer-&gt;lineNumber();
&gt; &gt; +    setInsertionMode(TextMode);
&gt; 
&gt; Can we share more code with processScriptStartTag ?

I didn&apos;t call processScriptStartTag() directly since it would leave the tokenizer in the ScriptDataState. I suppose I could set it back to DataState before inserting the fake end tag. Does that seem cleaner than writing a separate routine?

&gt; 
&gt; &gt; LayoutTests/fast/parser/pre-html5-parser-quirks.html:18
&gt; &gt; +&lt;iframe src=&quot;resources/pre-html5-parser-quirk-self-closing-script.html&quot;&gt;&lt;/iframe&gt;
&gt; 
&gt; Can you add a test for the fragment mode too?  Also, please add a test for self-closing script tags in the head element b/c that goes through a slightly different code path.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283265</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 14:52:08 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think that this needs more tests for what is considered to be self-closing tag. E.g. &lt;script /&gt; is, but &lt;script/&gt; isn&apos;t. What about other whitespace?

The tokenizer decides whether or not the script token is a self-closing tag, and applies the same rules it would for any other self-closing tag. My assumption is that self-closing tags in general are covered by pre-existing tokenizer tests. If it isn&apos;t, then they should be added, but this doesn&apos;t seem like the right place for such a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283273</commentid>
    <comment_count>9</comment_count>
      <attachid>68433</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-22 15:02:57 -0700</bug_when>
    <thetext>Comment on attachment 68433
Patch

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

&gt;&gt;&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2715
&gt;&gt;&gt;          processScriptStartTag(token);
&gt;&gt; 
&gt;&gt; I would have expected the branch on the quirk to go after this line and then just process a fake end script tag.
&gt; 
&gt; I didn&apos;t call processScriptStartTag() directly since it would leave the tokenizer in the ScriptDataState. I suppose I could set it back to DataState before inserting the fake end tag. Does that seem cleaner than writing a separate routine?

I see.  The issue is that this code:

http://trac.webkit.org/browser/trunk/WebCore/html/parser/HTMLTreeBuilder.cpp#L2197

doesn&apos;t set the tokenizer to the DataState because the tokenizer sets itself to the DataState.  What I&apos;d do is make that code explicitly set the tokenizer back to the data state and add an assert that we&apos;re only not already in the data state when m_usePreHTML5ParserQuirks is true.  If we do that, then the rest of the machinery should do the right thing without much effort on our part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283320</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-22 15:56:11 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The tokenizer decides whether or not the script token is a self-closing tag, and applies the same rules it would for any other self-closing tag.

This is the new behavior - but in Safari 5, we treated &lt;script/&gt; and &lt;script /&gt; differently, according to my testing. Extending this quirk to &lt;script/&gt; should be a conscious change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283324</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-22 15:59:35 -0700</bug_when>
    <thetext>&gt; This is the new behavior - but in Safari 5, we treated &lt;script/&gt; and &lt;script /&gt; differently, according to my testing. Extending this quirk to &lt;script/&gt; should be a conscious change.

I&apos;m all for testing, but I&apos;d like to try the HTML5 tokenization rules for self-closing tags in the hopes that they&apos;re sufficient here.  Changing them for this quirk is possible, of course, but less desirable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283338</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-22 16:17:05 -0700</bug_when>
    <thetext>Sounds fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283343</commentid>
    <comment_count>13</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 16:19:37 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; The tokenizer decides whether or not the script token is a self-closing tag, and applies the same rules it would for any other self-closing tag.
&gt; 
&gt; This is the new behavior - but in Safari 5, we treated &lt;script/&gt; and &lt;script /&gt; differently, according to my testing. Extending this quirk to &lt;script/&gt; should be a conscious change.

Ohh I see. Can you describe the difference you are seeing?

I tried this:

&lt;script src=&quot;data:text/javascript,alert(&apos;loaded script url&apos;)&quot;/&gt;PASS

and this:

&lt;script src=&quot;data:text/javascript,alert(&apos;loaded script url&apos;)&quot; /&gt;PASS

In Safari 5, both cases displayed the alert and printed &apos;PASS&apos;; in WebKit nightly, neither did. That indicates to me that the quirk should be extended to both cases, but maybe I&apos;m missing something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283346</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-22 16:23:15 -0700</bug_when>
    <thetext>These are different in Safari 5.0.2:
&lt;script/&gt;alert(0)&lt;/script&gt;
&lt;script /&gt;alert(0)&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283353</commentid>
    <comment_count>15</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 16:26:54 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; These are different in Safari 5.0.2:
&gt; &lt;script/&gt;alert(0)&lt;/script&gt;
&gt; &lt;script /&gt;alert(0)&lt;/script&gt;

Ahh, okay thanks. It&apos;ll be good to at least have that documented as a change in behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283415</commentid>
    <comment_count>16</comment_count>
      <attachid>68484</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 18:00:13 -0700</bug_when>
    <thetext>Created attachment 68484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283437</commentid>
    <comment_count>17</comment_count>
      <attachid>68484</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-22 18:29:41 -0700</bug_when>
    <thetext>Comment on attachment 68484
Patch

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

I think Adam might want to do the final round of review, but I do have one comment.

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2220
&gt; +                m_tokenizer-&gt;setState(HTMLTokenizer::DataState);
&gt; +            }

I would write this as:

    ASSERT(m_tokenizer-&gt;state() == HTMLTokenizer::DataState || m_usePreHTML5ParserQuirks);
    m_tokenizer-&gt;setState(HTMLTokenizer::DataState);

Also, I’d try to keep the comment shorter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283466</commentid>
    <comment_count>18</comment_count>
      <attachid>68484</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-22 19:11:34 -0700</bug_when>
    <thetext>Comment on attachment 68484
Patch

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

&gt;&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2220
&gt;&gt; +            }
&gt; 
&gt; I would write this as:
&gt; 
&gt;     ASSERT(m_tokenizer-&gt;state() == HTMLTokenizer::DataState || m_usePreHTML5ParserQuirks);
&gt;     m_tokenizer-&gt;setState(HTMLTokenizer::DataState);
&gt; 
&gt; Also, I’d try to keep the comment shorter.

Yep.

&gt; WebCore/html/parser/HTMLTreeBuilder.cpp:2724
&gt; +        if (m_usePreHTML5ParserQuirks &amp;&amp; token.selfClosing())
&gt; +            processFakeEndTag(scriptTag);

Beautiful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283468</commentid>
    <comment_count>19</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 19:16:27 -0700</bug_when>
    <thetext>Thanks darin and abarth!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283471</commentid>
    <comment_count>20</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-22 19:39:40 -0700</bug_when>
    <thetext>Committed r68115: &lt;http://trac.webkit.org/changeset/68115&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68433</attachid>
            <date>2010-09-22 13:40:25 -0700</date>
            <delta_ts>2010-09-22 18:00:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42909-20100922134023.patch</filename>
            <type>text/plain</type>
            <size>12661</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODAxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDktMjIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JF
U1NJT04gKHI2MTI4NSk6IDxzY3JpcHQgLz4gcGFyc2VzIGRpZmZlcmVudGx5IGluIEhUTUw1Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjkwOQorCisg
ICAgICAgIElmIHByZS1IVE1MNSBwYXJzZXIgcXVpcmtzIGFyZSBlbmFibGVkLCB0aGUgSFRNTFRy
ZWVCdWlsZGVyIHNob3VsZAorICAgICAgICBoYW5kbGUgc2VsZi1jbG9zaW5nIHNjcmlwdCB0YWdz
IGxpa2UgdGhlIG9sZCBwYXJzZXIgZGlkLiBTcGVjaWZpY2FsbHksCisgICAgICAgICI8c2NyaXB0
IC8+IiBzaG91bGQgYmUgdHJlYXRlZCBhcyAiPHNjcmlwdD48L3NjcmlwdD4iLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKTogSW5zdGFudGlhdGUKKyAg
ICAgICAgSFRNTFRyZWVCdWlsZGVyIHdpdGggdGhlIHZhbHVlIG9mIHVzZVByZUhUTUw1UGFyc2Vy
UXVpcmtzKCkuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKTog
SWYgdGhlIHRva2VuIGlzIGEKKyAgICAgICAgc2NyaXB0IHRhZywgaXMgc2VsZi1jbG9zZWQgYW5k
IHByZS1IVE1MNSBwYXJzZXIgcXVpcmtzIGFyZSBlbmFibGVkLCBjYWxsCisgICAgICAgIHByb2Nl
c3NTZWxmQ2xvc2luZ1NjcmlwdFRhZygpIGluc3RlYWQgb2YgcHJvY2Vzc1NjcmlwdFN0YXJ0VGFn
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTZWxmQ2xvc2lu
Z1NjcmlwdFRhZyk6IEluc2VydCB0aGUKKyAgICAgICAgc2NyaXB0IHN0YXJ0IGVsZW1lbnQgYXMg
dXN1YWwsIGJ1dCB0aGVuIGltbWVkaWF0ZWx5IGNyZWF0ZSBhbmQgcHJvY2VzcyBhCisgICAgICAg
IGZha2Ugc2NyaXB0IGVuZCB0YWcsIGFzIGlmICI8c2NyaXB0IC8+IiB3YXMgd3JpdHRlbiBhcyAi
PHNjcmlwdD48L3NjcmlwdD4iLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUpOgorCiAyMDEw
LTA5LTIyICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCkluZGV4OiBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCShyZXZpc2lvbiA2Nzk4MykKKysrIFdlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBA
QCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihICiAgICAgOiBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5p
emVyOjpjcmVhdGUodXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZG9jdW1lbnQpKSkKICAgICAsIG1f
c2NyaXB0UnVubmVyKEhUTUxTY3JpcHRSdW5uZXI6OmNyZWF0ZShkb2N1bWVudCwgdGhpcykpCi0g
ICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKG1fdG9rZW5pemVyLmdl
dCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRy
ZWVCdWlsZGVyOjpjcmVhdGUobV90b2tlbml6ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJv
cnMsIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGRvY3VtZW50KSkpCiAgICAgLCBtX3BhcnNlclNj
aGVkdWxlcihIVE1MUGFyc2VyU2NoZWR1bGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2VuZFdh
c0RlbGF5ZWQoZmFsc2UpCiAgICAgLCBtX3dyaXRlTmVzdGluZ0xldmVsKDApCkBAIC05NCw3ICs5
NCw3IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEgKIEhUTUxEb2N1
bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50
LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNj
cmlwdGluZ1Blcm1pc3Npb24pCiAgICAgOiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoZnJhZ21l
bnQtPmRvY3VtZW50KCkpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUo
dXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZnJhZ21lbnQtPmRvY3VtZW50KCkpKSkKLSAgICAsIG1f
dHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUobV90b2tlbml6ZXIuZ2V0KCksIGZy
YWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbikpCisgICAgLCBtX3Ry
ZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKG1fdG9rZW5pemVyLmdldCgpLCBmcmFn
bWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIHVzZVByZUhUTUw1UGFy
c2VyUXVpcmtzKGZyYWdtZW50LT5kb2N1bWVudCgpKSkpCiAgICAgLCBtX2VuZFdhc0RlbGF5ZWQo
ZmFsc2UpCiAgICAgLCBtX3dyaXRlTmVzdGluZ0xldmVsKDApCiB7CkluZGV4OiBXZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCShyZXZpc2lvbiA2Nzk4MykKKysrIFdlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIzLDcg
KzMyMyw3IEBAIHByaXZhdGU6CiB9OwogCiAKLUhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWls
ZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9v
bCByZXBvcnRFcnJvcnMpCitIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MVG9r
ZW5pemVyKiB0b2tlbml6ZXIsIEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJy
b3JzLCBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQogICAgIDogbV9mcmFtZXNldE9rKHRy
dWUpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV90cmVlKGRvY3VtZW50LCBG
cmFnbWVudFNjcmlwdGluZ0FsbG93ZWQsIGZhbHNlKQpAQCAtMzM1LDEyICszMzUsMTMgQEAgSFRN
TFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRvawogICAgICwgbV90b2tlbml6ZXIo
dG9rZW5pemVyKQogICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXpl
ZExpbmVOdW1iZXJWYWx1ZSkKICAgICAsIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUodW5p
bml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKKyAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWly
a3ModXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiB7CiB9CiAKIC8vIEZJWE1FOiBNZW1iZXIgdmFy
aWFibGVzIHNob3VsZCBiZSBncm91cGVkIGludG8gc2VsZi1pbml0aWFsaXppbmcgc3RydWN0cyB0
bwogLy8gbWluaW1pemUgY29kZSBkdXBsaWNhdGlvbiBiZXR3ZWVuIHRoZXNlIGNvbnN0cnVjdG9y
cy4KLUhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2Vu
aXplciwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK0hUTUxU
cmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgRG9j
dW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVu
dFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbiwgYm9vbCB1c2VQcmVIVE1M
NVBhcnNlclF1aXJrcykKICAgICA6IG1fZnJhbWVzZXRPayh0cnVlKQogICAgICwgbV9mcmFnbWVu
dENvbnRleHQoZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKQog
ICAgICwgbV9kb2N1bWVudChtX2ZyYWdtZW50Q29udGV4dC5kb2N1bWVudCgpKQpAQCAtMzUzLDYg
KzM1NCw3IEBAIEhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2sKICAgICAs
IG1fdG9rZW5pemVyKHRva2VuaXplcikKICAgICAsIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5l
KHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50
U3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCisgICAgLCBtX3VzZVByZUhU
TUw1UGFyc2VyUXVpcmtzKHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQogewogICAgIGlmIChjb250
ZXh0RWxlbWVudCkgewogICAgICAgICAvLyBTdGVwcyA0LjItNC42IG9mIHRoZSBIVE1MNSBGcmFn
bWVudCBDYXNlIHBhcnNpbmcgYWxnb3JpdGhtOgpAQCAtMjcwNSw2ICsyNzA3LDExIEBAIGJvb2wg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gc2NyaXB0VGFnKSB7CisgICAgICAgIGlm
IChtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzICYmIHRva2VuLnNlbGZDbG9zaW5nKCkpIHsKKyAg
ICAgICAgICAgIHByb2Nlc3NTZWxmQ2xvc2luZ1NjcmlwdFRhZyh0b2tlbik7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgcHJvY2Vzc1Njcmlw
dFN0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjc0Myw2
ICsyNzUwLDE3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU2NyaXB0U3RhcnQKICAg
ICBzZXRJbnNlcnRpb25Nb2RlKFRleHRNb2RlKTsKIH0KIAordm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTZWxmQ2xvc2luZ1NjcmlwdFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQorewor
ICAgIEFTU0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFydFRhZyk7CisgICAgQVNT
RVJUKHRva2VuLnNlbGZDbG9zaW5nKCkpOworICAgIG1fdHJlZS5pbnNlcnRTY3JpcHRFbGVtZW50
KHRva2VuKTsKKyAgICBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IG1faW5zZXJ0aW9uTW9kZTsK
KyAgICBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lID0gbV90b2tlbml6ZXItPmxpbmVOdW1i
ZXIoKTsKKyAgICBzZXRJbnNlcnRpb25Nb2RlKFRleHRNb2RlKTsKKyAgICBwcm9jZXNzRmFrZUVu
ZFRhZyhzY3JpcHRUYWcpOworfQorCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZmluaXNoZWQoKQog
ewogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaAkocmV2aXNpb24gNjc5ODMpCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMyArNTEsMTMgQEAgY2xhc3MgTm9k
ZTsKIAogY2xhc3MgSFRNTFRyZWVCdWlsZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MVHJlZUJ1aWxkZXI+IGNyZWF0ZShIVE1MVG9r
ZW5pemVyKiB0b2tlbml6ZXIsIEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJy
b3JzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxUcmVlQnVpbGRlcj4gY3JlYXRlKEhUTUxU
b2tlbml6ZXIqIHRva2VuaXplciwgSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRF
cnJvcnMsIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEhUTUxUcmVlQnVpbGRlcih0b2tlbml6ZXIsIGRvY3VtZW50LCByZXBv
cnRFcnJvcnMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIo
dG9rZW5pemVyLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzLCB1c2VQcmVIVE1MNVBhcnNlclF1aXJr
cykpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MVHJlZUJ1aWxkZXI+IGNyZWF0
ZShIVE1MVG9rZW5pemVyKiB0b2tlbml6ZXIsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlw
dGluZ1Blcm1pc3Npb24pCisgICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTFRyZWVCdWlsZGVyPiBj
cmVhdGUoSFRNTFRva2VuaXplciogdG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVu
dCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBz
Y3JpcHRpbmdQZXJtaXNzaW9uLCBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIodG9rZW5pemVyLCBm
cmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIodG9rZW5pemVyLCBmcmFnbWVudCwg
Y29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIHVzZVByZUhUTUw1UGFyc2VyUXVp
cmtzKSk7CiAgICAgfQogICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIApAQCAtMTEwLDggKzExMCw4
IEBAIHByaXZhdGU6CiAgICAgICAgIEFmdGVyQWZ0ZXJGcmFtZXNldE1vZGUsCiAgICAgfTsKIAot
ICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgSFRNTERvY3VtZW50KiwgYm9vbCBy
ZXBvcnRFcnJvcnMpOwotICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgRG9jdW1l
bnRGcmFnbWVudCosIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24pOworICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgSFRNTERvY3Vt
ZW50KiwgYm9vbCByZXBvcnRFcnJvcnMsIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpOwor
ICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgRG9jdW1lbnRGcmFnbWVudCosIEVs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wg
dXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpOwogCiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgp
IGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQogCkBAIC0x
NTMsNiArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NHZW5lcmljUkNEQVRBU3Rh
cnRUYWcoQXRvbWljSFRNTFRva2VuJik7CiAgICAgdm9pZCBwcm9jZXNzR2VuZXJpY1Jhd1RleHRT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKICAgICB2b2lkIHByb2Nlc3NTY3JpcHRTdGFydFRh
ZyhBdG9taWNIVE1MVG9rZW4mKTsKKyAgICB2b2lkIHByb2Nlc3NTZWxmQ2xvc2luZ1NjcmlwdFRh
ZyhBdG9taWNIVE1MVG9rZW4mKTsKIAogICAgIC8vIERlZmF1bHQgcHJvY2Vzc2luZyBmb3IgdGhl
IGRpZmZlcmVudCBpbnNlcnRpb24gbW9kZXMuCiAgICAgdm9pZCBkZWZhdWx0Rm9ySW5pdGlhbCgp
OwpAQCAtMjUyLDYgKzI1Myw4IEBAIHByaXZhdGU6CiAgICAgLy8gY3JlYXRlZCB0byBzZXJ2aWNl
IHRoZSBsZWdhY3kgdHJlZSBidWlsZGVyLCBidXQgaXQgc2VlbXMgdG8gYmUgdXNlZCBmb3IKICAg
ICAvLyBzb21lIG90aGVyIHRoaW5ncyBub3cuCiAgICAgaW50IG1fbGFzdFNjcmlwdEVsZW1lbnRT
dGFydExpbmU7CisgICAgCisgICAgYm9vbCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOwogfTsK
IAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjgwMTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0yMiAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjYxMjg1KTogPHNjcmlwdCAvPiBwYXJzZXMgZGlmZmVy
ZW50bHkgaW4gSFRNTDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyOTA5CisKKyAgICAgICAgQWRkIGEgdGVzdCBmb3IgdGhlIHNlbGYtY2xvc2luZyBz
Y3JpcHQgdGFnIHF1aXJrLgorCisgICAgICAgICogZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNl
ci1xdWlya3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcGFyc2VyL3ByZS1odG1sNS1w
YXJzZXItcXVpcmtzLmh0bWw6CisgICAgICAgICogZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3ByZS1o
dG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNs
b3Npbmctc2NyaXB0LmpzOiBBZGRlZC4KKwogMjAxMC0wOS0yMSAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdGV4dCBleHBlY3RhdGlvbiB1
cGRhdGUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1
aXJrcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIv
cHJlLWh0bWw1LXBhcnNlci1xdWlya3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2Nzk4MykKKysr
IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKLVRoaXMgdGVzdHMgdGhhdCBjZXJ0
YWluIHByZS1IVE1MNSBwYXJzZXIgcnVsZXMgYXJlIGFwcGxpZWQgd2hlbiB0aGUgV2ViS2l0VXNl
UHJlSFRNTDVQYXJzZXJRdWlya3MgcHJlZmVyZW5jZSBpcyBzZXQuIFNlZSBodHRwczovL3dlYmtp
dC5vcmcvYi80MDk2MSBmb3IgZGV0YWlscy4KK1RoaXMgdGVzdHMgdGhhdCBjZXJ0YWluIHByZS1I
VE1MNSBwYXJzZXIgcnVsZXMgYXJlIGFwcGxpZWQgd2hlbiB0aGUgV2ViS2l0VXNlUHJlSFRNTDVQ
YXJzZXJRdWlya3MgcHJlZmVyZW5jZSBpcyBzZXQuIFNlZSBodHRwczovL3dlYmtpdC5vcmcvYi80
MDk2MSBhbmQgaHR0cHM6Ly93ZWJraXQub3JnL2IvNDI5MDkgZm9yIGRldGFpbHMuCiAKLSAgICAg
IAorICAgICAgIAogCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1l
MC0tPi0tPicKQEAgLTUzLDMgKzUzLDEwIEBAIEZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTYtLT4tLT4KIFRhZ05hbWVTdGF0ZToKIFN0YXJ0IFRhZzogUEFTUwogRW5kIFRhZzogUEFT
UworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNy0tPi0tPicK
Ky0tLS0tLS0tCitTZWxmLWNsb3NpbmcgPHNjcmlwdD46CitFeHRlcm5hbCBzY3JpcHQgbG9hZGlu
ZzogUEFTUworUGFyc2luZzogUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcHJl
LWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sCShyZXZpc2lvbiA2Nzk4MykKKysr
IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAgICAgfQogPC9zY3JpcHQ+CiAKLTxwPlRoaXMg
dGVzdHMgdGhhdCBjZXJ0YWluIHByZS1IVE1MNSBwYXJzZXIgcnVsZXMgYXJlIGFwcGxpZWQgd2hl
biB0aGUgV2ViS2l0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgcHJlZmVyZW5jZSBpcyBzZXQuIFNl
ZSA8YSBocmVmPSJodHRwczovL3dlYmtpdC5vcmcvYi80MDk2MSI+aHR0cHM6Ly93ZWJraXQub3Jn
L2IvNDA5NjE8L2E+IGZvciBkZXRhaWxzLjwvcD4KKzxwPlRoaXMgdGVzdHMgdGhhdCBjZXJ0YWlu
IHByZS1IVE1MNSBwYXJzZXIgcnVsZXMgYXJlIGFwcGxpZWQgd2hlbiB0aGUgV2ViS2l0VXNlUHJl
SFRNTDVQYXJzZXJRdWlya3MgcHJlZmVyZW5jZSBpcyBzZXQuIFNlZSA8YSBocmVmPSJodHRwczov
L3dlYmtpdC5vcmcvYi80MDk2MSI+aHR0cHM6Ly93ZWJraXQub3JnL2IvNDA5NjE8L2E+IGFuZCA8
YSBocmVmPSJodHRwczovL3dlYmtpdC5vcmcvYi80MjkwOSI+aHR0cHM6Ly93ZWJraXQub3JnL2Iv
NDI5MDk8L2E+IGZvciBkZXRhaWxzLjwvcD4KIAogPGlmcmFtZSBzcmM9InJlc291cmNlcy9wcmUt
aHRtbDUtcGFyc2VyLXF1aXJrLWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlLmh0bWwiPjwvaWZy
YW1lPgogPGlmcmFtZSBzcmM9InJlc291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLWFmdGVy
LWF0dHJpYnV0ZS12YWx1ZS1xdW90ZWQtc3RhdGUuaHRtbCI+PC9pZnJhbWU+CkBAIC0xNSw0ICsx
NSw1IEBACiA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmstYmVm
b3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlLmh0bWwiPjwvaWZyYW1lPgogPGlmcmFtZSBzcmM9InJl
c291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLWRvY3VtZW50LWZyYWdtZW50Lmh0bWwiPjwv
aWZyYW1lPgogPGlmcmFtZSBzcmM9InJlc291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLXRh
Zy1uYW1lLXN0YXRlLmh0bWwiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9wcmUt
aHRtbDUtcGFyc2VyLXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQuaHRtbCI+PC9pZnJhbWU+CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFyc2Vy
LXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Np
bmctc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9y
ZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorU2VsZi1jbG9zaW5nICZsdDtzY3JpcHQmZ3Q7
OgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icHJlLWh0bWw1LXBhcnNl
ci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0LmpzIiAvPgorUGFyc2luZzogUEFTUwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmst
c2VsZi1jbG9zaW5nLXNjcmlwdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Bh
cnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3By
ZS1odG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyIEBACit2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIik7Citjb25zb2xlLmlubmVySFRNTCA9ICJFeHRlcm5hbCBzY3JpcHQgbG9hZGluZzog
UEFTUyI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68484</attachid>
            <date>2010-09-22 18:00:13 -0700</date>
            <delta_ts>2010-09-22 19:11:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42909-20100922180012.patch</filename>
            <type>text/plain</type>
            <size>15135</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODEwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDktMjIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JF
U1NJT04gKHI2MTI4NSk6IDxzY3JpcHQgLz4gcGFyc2VzIGRpZmZlcmVudGx5IGluIEhUTUw1Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjkwOQorCisg
ICAgICAgIElmIHByZS1IVE1MNSBwYXJzZXIgcXVpcmtzIGFyZSBlbmFibGVkLCB0aGUgSFRNTFRy
ZWVCdWlsZGVyIHNob3VsZAorICAgICAgICBoYW5kbGUgc2VsZi1jbG9zaW5nIHNjcmlwdCB0YWdz
IGxpa2UgdGhlIG9sZCBwYXJzZXIgZGlkLiBTcGVjaWZpY2FsbHksCisgICAgICAgICI8c2NyaXB0
IC8+IiBzaG91bGQgYmUgdHJlYXRlZCBhcyAiPHNjcmlwdD48L3NjcmlwdD4iLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKTogSW5zdGFudGlhdGUKKyAg
ICAgICAgSFRNTFRyZWVCdWlsZGVyIHdpdGggdGhlIHZhbHVlIG9mIHVzZVByZUhUTUw1UGFyc2Vy
UXVpcmtzKCkuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IElmIHRoZSB0b2tl
bml6ZXIgaXMgbm90CisgICAgICAgIGN1cnJlbnRseSBpbiBEYXRhU3RhdGUsIHRoaXMgbWVhbnMg
dGhhdCB0aGUgY3VycmVudCBlbmQgdG9rZW4gaXMgZmFrZQorICAgICAgICBhbmQgd2FzIGNyZWF0
ZWQgYnkgdGhlIHRyZWUgYnVpbGRlciB0byBoYW5kbGUgYSBzZWxmLWNsb3Npbmcgc2NyaXB0IHRh
Zy4KKyAgICAgICAgQXNzZXJ0IHRoYXQgcHJlLUhUTUw1IHF1aXJrcyBhcmUgZW5hYmxlZCBhbmQg
c2V0IHRoZSB0b2tlbml6ZXIncyBzdGF0ZQorICAgICAgICB0byBEYXRhU3RhdGUgaW4gdGhpcyBj
YXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdG
b3JJbkhlYWQpOiBJZiBwcmUtSFRNTDUKKyAgICAgICAgcGFyc2VyIHF1aXJrcyBhcmUgZW5hYmxl
ZCBhbmQgdGhlIHNjcmlwdCB0YWcgaXMgc2VsZi1jbG9zaW5nLCBjcmVhdGUgYW5kCisgICAgICAg
IHByb2NzZXMgYSBmYWtlIHNjcmlwdCBlbmQgdGFnLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpjcmVh
dGUpOgorCiAyMDEwLTA5LTIyICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRHVtaXRydSBEYW5pbGl1Yy4KSW5kZXg6IFdlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAJKHJldmlzaW9uIDY3OTgzKQorKysgV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Miw3ICs4Miw3IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEgK
ICAgICA6IFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcihkb2N1bWVudCkKICAgICAsIG1fdG9rZW5p
emVyKEhUTUxUb2tlbml6ZXI6OmNyZWF0ZSh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcyhkb2N1bWVu
dCkpKQogICAgICwgbV9zY3JpcHRSdW5uZXIoSFRNTFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKGRvY3Vt
ZW50LCB0aGlzKSkKLSAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUo
bV90b2tlbml6ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQorICAgICwgbV90cmVl
QnVpbGRlcihIVE1MVHJlZUJ1aWxkZXI6OmNyZWF0ZShtX3Rva2VuaXplci5nZXQoKSwgZG9jdW1l
bnQsIHJlcG9ydEVycm9ycywgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZG9jdW1lbnQpKSkKICAg
ICAsIG1fcGFyc2VyU2NoZWR1bGVyKEhUTUxQYXJzZXJTY2hlZHVsZXI6OmNyZWF0ZSh0aGlzKSkK
ICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1fd3JpdGVOZXN0aW5nTGV2ZWwo
MCkKQEAgLTk0LDcgKzk0LDcgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJz
ZXIoSAogSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFn
bWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKICAgICA6IFNjcmlwdGFibGVEb2N1bWVu
dFBhcnNlcihmcmFnbWVudC0+ZG9jdW1lbnQoKSkKICAgICAsIG1fdG9rZW5pemVyKEhUTUxUb2tl
bml6ZXI6OmNyZWF0ZSh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcyhmcmFnbWVudC0+ZG9jdW1lbnQo
KSkpKQotICAgICwgbV90cmVlQnVpbGRlcihIVE1MVHJlZUJ1aWxkZXI6OmNyZWF0ZShtX3Rva2Vu
aXplci5nZXQoKSwgZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9u
KSkKKyAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUobV90b2tlbml6
ZXIuZ2V0KCksIGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbiwg
dXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZnJhZ21lbnQtPmRvY3VtZW50KCkpKSkKICAgICAsIG1f
ZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1fd3JpdGVOZXN0aW5nTGV2ZWwoMCkKIHsKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDY3OTgz
KQorKysgV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjMsNyArMzIzLDcgQEAgcHJpdmF0ZToKIH07CiAKIAotSFRNTFRyZWVCdWlsZGVy
OjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciogdG9rZW5pemVyLCBIVE1MRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycykKK0hUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVC
dWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgSFRNTERvY3VtZW50KiBkb2N1bWVudCwg
Ym9vbCByZXBvcnRFcnJvcnMsIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiAgICAgOiBt
X2ZyYW1lc2V0T2sodHJ1ZSkKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX3Ry
ZWUoZG9jdW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCwgZmFsc2UpCkBAIC0zMzUsMTIg
KzMzNSwxMyBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MVG9rCiAgICAg
LCBtX3Rva2VuaXplcih0b2tlbml6ZXIpCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGlu
ZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVu
dFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwgbV91c2VQcmVI
VE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKIHsKIH0KIAogLy8gRklY
TUU6IE1lbWJlciB2YXJpYWJsZXMgc2hvdWxkIGJlIGdyb3VwZWQgaW50byBzZWxmLWluaXRpYWxp
emluZyBzdHJ1Y3RzIHRvCiAvLyBtaW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uIGJldHdlZW4gdGhl
c2UgY29uc3RydWN0b3JzLgotSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRv
a2VuaXplciogdG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJt
aXNzaW9uKQorSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciog
dG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uLCBi
b29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQogICAgIDogbV9mcmFtZXNldE9rKHRydWUpCiAg
ICAgLCBtX2ZyYWdtZW50Q29udGV4dChmcmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGlu
Z1Blcm1pc3Npb24pCiAgICAgLCBtX2RvY3VtZW50KG1fZnJhZ21lbnRDb250ZXh0LmRvY3VtZW50
KCkpCkBAIC0zNTMsNiArMzU0LDcgQEAgSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIo
SFRNTFRvawogICAgICwgbV90b2tlbml6ZXIodG9rZW5pemVyKQogICAgICwgbV9zY3JpcHRUb1By
b2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKICAgICAsIG1fbGFz
dFNjcmlwdEVsZW1lbnRTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKKyAg
ICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3ModXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiB7
CiAgICAgaWYgKGNvbnRleHRFbGVtZW50KSB7CiAgICAgICAgIC8vIFN0ZXBzIDQuMi00LjYgb2Yg
dGhlIEhUTUw1IEZyYWdtZW50IENhc2UgcGFyc2luZyBhbGdvcml0aG06CkBAIC0yMjA0LDYgKzIy
MDYsMTggQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbQogICAgICAg
ICAgICAgaWYgKGlzUGFyc2luZ0ZyYWdtZW50KCkgJiYgbV9mcmFnbWVudENvbnRleHQuc2NyaXB0
aW5nUGVybWlzc2lvbigpID09IEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCkKICAgICAgICAg
ICAgICAgICBtX3NjcmlwdFRvUHJvY2Vzcy0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICAgICAg
ICAgIHNldEluc2VydGlvbk1vZGUobV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICAvLyBUaGUgdG9rZW5pemVyIHdpbGwgc2V0IGl0c2VsZiB0byBEYXRh
U3RhdGUgYWZ0ZXIgZW1pdHRpbmcgYW4gZW5kCisgICAgICAgICAgICAvLyB0YWcuIFRoZSBvbmx5
IHRpbWUgaXQgc2hvdWxkIG5vdCBiZSBpbiBEYXRhU3RhdGUgYXQgdGhpcyBwb2ludCBpcworICAg
ICAgICAgICAgLy8gaWYgcHJlLUhUTUw1IHBhcnNlciBxdWlya3MgYXJlIGVuYWJsZWQgYW5kIGEg
c2VsZi1jbG9zaW5nIHNjcmlwdAorICAgICAgICAgICAgLy8gdGFnIGlzIGVuY291bnRlcmVkLiBJ
biB0aGlzIGNhc2UsIG91ciBlbmQgdG9rZW4gaXMgZmFrZSBhbmQgd2FzCisgICAgICAgICAgICAv
LyBjcmVhdGVkIGJ5IHRoZSB0cmVlIGJ1aWxkZXIgcmF0aGVyIHRoYW4gZW1pdHRlZCBmcm9tIHRo
ZQorICAgICAgICAgICAgLy8gdG9rZW5pemVyLCBzbyB0aGUgdG9rZW5pemVyJ3Mgc3RhdGUgbmVl
ZHMgdG8gYmUgZXhwbGljaXRseSBzZXQgdG8KKyAgICAgICAgICAgIC8vIERhdGFTdGF0ZS4KKyAg
ICAgICAgICAgIGlmIChtX3Rva2VuaXplci0+c3RhdGUoKSAhPSBIVE1MVG9rZW5pemVyOjpEYXRh
U3RhdGUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobV91c2VQcmVIVE1MNVBhcnNlclF1aXJr
cyk7CisgICAgICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6
OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKQEAgLTI3MDYsNiArMjcy
MCw4IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICB9CiAg
ICAgaWYgKHRva2VuLm5hbWUoKSA9PSBzY3JpcHRUYWcpIHsKICAgICAgICAgcHJvY2Vzc1Njcmlw
dFN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgaWYgKG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3Mg
JiYgdG9rZW4uc2VsZkNsb3NpbmcoKSkKKyAgICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKHNj
cmlwdFRhZyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAodG9rZW4ubmFt
ZSgpID09IGhlYWRUYWcpIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
aAkocmV2aXNpb24gNjc5ODMpCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMyArNTEsMTMgQEAgY2xhc3MgTm9kZTsKIAogY2xh
c3MgSFRNTFRyZWVCdWlsZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxIVE1MVHJlZUJ1aWxkZXI+IGNyZWF0ZShIVE1MVG9rZW5pemVyKiB0
b2tlbml6ZXIsIEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPEhUTUxUcmVlQnVpbGRlcj4gY3JlYXRlKEhUTUxUb2tlbml6ZXIq
IHRva2VuaXplciwgSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMsIGJv
b2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEhUTUxUcmVlQnVpbGRlcih0b2tlbml6ZXIsIGRvY3VtZW50LCByZXBvcnRFcnJvcnMp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIodG9rZW5pemVy
LCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzLCB1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykpOwogICAg
IH0KLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MVHJlZUJ1aWxkZXI+IGNyZWF0ZShIVE1MVG9r
ZW5pemVyKiB0b2tlbml6ZXIsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1p
c3Npb24pCisgICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTFRyZWVCdWlsZGVyPiBjcmVhdGUoSFRN
TFRva2VuaXplciogdG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQ
ZXJtaXNzaW9uLCBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIodG9rZW5pemVyLCBmcmFnbWVudCwg
Y29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBIVE1MVHJlZUJ1aWxkZXIodG9rZW5pemVyLCBmcmFnbWVudCwgY29udGV4dEVs
ZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKSk7CiAg
ICAgfQogICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIApAQCAtMTEwLDggKzExMCw4IEBAIHByaXZh
dGU6CiAgICAgICAgIEFmdGVyQWZ0ZXJGcmFtZXNldE1vZGUsCiAgICAgfTsKIAotICAgIEhUTUxU
cmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgSFRNTERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJv
cnMpOwotICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgRG9jdW1lbnRGcmFnbWVu
dCosIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24p
OworICAgIEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgSFRNTERvY3VtZW50KiwgYm9v
bCByZXBvcnRFcnJvcnMsIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpOworICAgIEhUTUxU
cmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wgdXNlUHJlSFRN
TDVQYXJzZXJRdWlya3MpOwogCiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsg
cmV0dXJuICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQogCkBAIC0yNTIsNiArMjUy
LDggQEAgcHJpdmF0ZToKICAgICAvLyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIGxlZ2FjeSB0cmVl
IGJ1aWxkZXIsIGJ1dCBpdCBzZWVtcyB0byBiZSB1c2VkIGZvcgogICAgIC8vIHNvbWUgb3RoZXIg
dGhpbmdzIG5vdy4KICAgICBpbnQgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZTsKKyAgICAK
KyAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M7CiB9OwogCiB9CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA2ODEwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIwIEBACisyMDEwLTA5LTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdS
RVNTSU9OIChyNjEyODUpOiA8c2NyaXB0IC8+IHBhcnNlcyBkaWZmZXJlbnRseSBpbiBIVE1MNQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI5MDkKKwor
ICAgICAgICBBZGQgdGVzdHMgZm9yIHRoZSBzZWxmLWNsb3Npbmcgc2NyaXB0IHRhZyBxdWlyay4K
KworICAgICAgICAqIGZhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1s
OgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJr
LWRvY3VtZW50LWZyYWdtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9wYXJzZXIvcmVzb3VyY2Vz
L3ByZS1odG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC1pbi1ib2R5Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFyc2Vy
LXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQtaW4taGVhZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Np
bmctc2NyaXB0LmpzOiBBZGRlZC4KKyAgICAgICAgKHByaW50VG9Db25zb2xlKToKKwogMjAxMC0w
OS0yMiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGFyc2Vy
L3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY3OTgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBh
cnNlci1xdWlya3MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAot
VGhpcyB0ZXN0cyB0aGF0IGNlcnRhaW4gcHJlLUhUTUw1IHBhcnNlciBydWxlcyBhcmUgYXBwbGll
ZCB3aGVuIHRoZSBXZWJLaXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyBwcmVmZXJlbmNlIGlzIHNl
dC4gU2VlIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzQwOTYxIGZvciBkZXRhaWxzLgorVGhpcyB0ZXN0
cyB0aGF0IGNlcnRhaW4gcHJlLUhUTUw1IHBhcnNlciBydWxlcyBhcmUgYXBwbGllZCB3aGVuIHRo
ZSBXZWJLaXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyBwcmVmZXJlbmNlIGlzIHNldC4gU2VlIGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzQwOTYxIGFuZCBodHRwczovL3dlYmtpdC5vcmcvYi80MjkwOSBm
b3IgZGV0YWlscy4KIAotICAgICAgCisgICAgICAgIAogCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKQEAgLTQ1LDYgKzQ1LDggQEAgRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lNS0tPi0tPgogRG9jdW1lbnQgZnJhZ21lbnQ6CiBTdGFy
dCBUYWc6IFBBU1MKIEVuZCBUYWc6IFBBU1MKKzxzY3JpcHQgLz46IFBBU1MKKzxzY3JpcHQvPjog
UEFTUwogCiAKIC0tLS0tLS0tCkBAIC01MywzICs1NSwxNyBAQCBGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWU2LS0+LS0+CiBUYWdOYW1lU3RhdGU6CiBTdGFydCBUYWc6IFBBU1MKIEVu
ZCBUYWc6IFBBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFt
ZTctLT4tLT4nCistLS0tLS0tLQorU2VsZi1jbG9zaW5nIDxzY3JpcHQ+IGluIGhlYWQ6CitQYXJz
aW5nOiBQQVNTCitFeHRlcm5hbCBzY3JpcHQgbG9hZGluZzogUEFTUworCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lOC0tPi0tPicKKy0tLS0tLS0tCitTZWxmLWNs
b3NpbmcgPHNjcmlwdD4gaW4gYm9keToKK1BhcnNpbmc6IFBBU1MKK0V4dGVybmFsIHNjcmlwdCBs
b2FkaW5nOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFy
c2VyLXF1aXJrcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3By
ZS1odG1sNS1wYXJzZXItcXVpcmtzLmh0bWwJKHJldmlzaW9uIDY3OTgzKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAKICAgICB9CiA8L3NjcmlwdD4KIAotPHA+VGhpcyB0ZXN0cyB0aGF0
IGNlcnRhaW4gcHJlLUhUTUw1IHBhcnNlciBydWxlcyBhcmUgYXBwbGllZCB3aGVuIHRoZSBXZWJL
aXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyBwcmVmZXJlbmNlIGlzIHNldC4gU2VlIDxhIGhyZWY9
Imh0dHBzOi8vd2Via2l0Lm9yZy9iLzQwOTYxIj5odHRwczovL3dlYmtpdC5vcmcvYi80MDk2MTwv
YT4gZm9yIGRldGFpbHMuPC9wPgorPHA+VGhpcyB0ZXN0cyB0aGF0IGNlcnRhaW4gcHJlLUhUTUw1
IHBhcnNlciBydWxlcyBhcmUgYXBwbGllZCB3aGVuIHRoZSBXZWJLaXRVc2VQcmVIVE1MNVBhcnNl
clF1aXJrcyBwcmVmZXJlbmNlIGlzIHNldC4gU2VlIDxhIGhyZWY9Imh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzQwOTYxIj5odHRwczovL3dlYmtpdC5vcmcvYi80MDk2MTwvYT4gYW5kIDxhIGhyZWY9Imh0
dHBzOi8vd2Via2l0Lm9yZy9iLzQyOTA5Ij5odHRwczovL3dlYmtpdC5vcmcvYi80MjkwOTwvYT4g
Zm9yIGRldGFpbHMuPC9wPgogCiA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3ByZS1odG1sNS1wYXJz
ZXItcXVpcmstYWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGUuaHRtbCI+PC9pZnJhbWU+CiA8aWZy
YW1lIHNyYz0icmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmstYWZ0ZXItYXR0cmlidXRl
LXZhbHVlLXF1b3RlZC1zdGF0ZS5odG1sIj48L2lmcmFtZT4KQEAgLTE1LDQgKzE1LDYgQEAKIDxp
ZnJhbWUgc3JjPSJyZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1iZWZvcmUtYXR0cmli
dXRlLW5hbWUtc3RhdGUuaHRtbCI+PC9pZnJhbWU+CiA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3By
ZS1odG1sNS1wYXJzZXItcXVpcmstZG9jdW1lbnQtZnJhZ21lbnQuaHRtbCI+PC9pZnJhbWU+CiA8
aWZyYW1lIHNyYz0icmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmstdGFnLW5hbWUtc3Rh
dGUuaHRtbCI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL3ByZS1odG1sNS1wYXJz
ZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC1pbi1oZWFkLmh0bWwiPjwvaWZyYW1lPgorPGlm
cmFtZSBzcmM9InJlc291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLXNlbGYtY2xvc2luZy1z
Y3JpcHQtaW4tYm9keS5odG1sIj48L2lmcmFtZT4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvcmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmstZG9jdW1lbnQtZnJhZ21lbnQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJl
LWh0bWw1LXBhcnNlci1xdWlyay1kb2N1bWVudC1mcmFnbWVudC5odG1sCShyZXZpc2lvbiA2Nzk4
MykKKysrIExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFyc2Vy
LXF1aXJrLWRvY3VtZW50LWZyYWdtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNCArMyw2
IEBAIERvY3VtZW50IGZyYWdtZW50OgogPHNjcmlwdD4KICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgid3JhcHBlciIpLmlubmVySFRNTCArPSAiPGRpdiBzdHlsZT0ndmlzaWJpbGl0eTpoaWRk
ZW4nPjxwPC9kaXY+U3RhcnQgVGFnOiBQQVNTPGJyPiI7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIndyYXBwZXIiKS5pbm5lckhUTUwgKz0gIjxkaXYgc3R5bGU9J3Zpc2liaWxpdHk6aGlk
ZGVuJz48cD48L3A8L2Rpdj5FbmQgVGFnOiBQQVNTPGJyPiI7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIndyYXBwZXIiKS5pbm5lckhUTUwgKz0gIjxzY3JpcHQgLz4mbHQ7c2NyaXB0IC8m
Z3Q7OiBQQVNTPGJyPiI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndyYXBwZXIiKS5p
bm5lckhUTUwgKz0gIjxzY3JpcHQvPiZsdDtzY3JpcHQvJmd0OzogUEFTUzxicj4iOwogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBh
cnNlci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0LWluLWJvZHkuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0bWw1LXBhcnNlci1xdWly
ay1zZWxmLWNsb3Npbmctc2NyaXB0LWluLWJvZHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLXNlbGYt
Y2xvc2luZy1zY3JpcHQtaW4tYm9keS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAK
KzxodG1sPgorICAgIDxib2R5IG9ubG9hZD0icHJpbnRUb0NvbnNvbGUoKSI+CisgICAgICAgIFNl
bGYtY2xvc2luZyAmbHQ7c2NyaXB0Jmd0OyBpbiBib2R5Ojxicj4KKyAgICAgICAgPHNjcmlwdCBz
cmM9InByZS1odG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC5qcyIgLz4KKyAg
ICAgICAgUGFyc2luZzogUEFTUworICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJj
ZXMvcHJlLWh0bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0LWluLWhlYWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvcHJlLWh0
bWw1LXBhcnNlci1xdWlyay1zZWxmLWNsb3Npbmctc2NyaXB0LWluLWhlYWQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFy
c2VyLXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQtaW4taGVhZC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwIEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
InByZS1odG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9zaW5nLXNjcmlwdC5qcyIgLz4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJwcmludFRvQ29uc29sZSgpIj4KKyAgICAgICAgU2Vs
Zi1jbG9zaW5nICZsdDtzY3JpcHQmZ3Q7IGluIGhlYWQ6PGJyPgorICAgICAgICBQYXJzaW5nOiBQ
QVNTCisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jlc291cmNlcy9wcmUtaHRtbDUtcGFy
c2VyLXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3ByZS1odG1sNS1wYXJzZXItcXVpcmstc2VsZi1jbG9z
aW5nLXNjcmlwdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jl
c291cmNlcy9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrLXNlbGYtY2xvc2luZy1zY3JpcHQuanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorZnVuY3Rpb24gcHJpbnRUb0NvbnNvbGUoKQorewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MID0gIkV4dGVy
bmFsIHNjcmlwdCBsb2FkaW5nOiBQQVNTIjsKK30K
</data>
<flag name="review"
          id="58009"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="58018"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>