<?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>160870</bug_id>
          
          <creation_ts>2016-08-15 15:28:14 -0700</creation_ts>
          <short_desc>Member call on NULL pointer in JavaScriptCore/dfg/DFGAbstractInterpretterInlines.h</short_desc>
          <delta_ts>2016-09-06 16:53:28 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220181</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-15 15:28:14 -0700</bug_when>
    <thetext>In a few cases (js/regress/simple-regexp-exec-folding.html, for example) forAllTransitiveIncomingValues in PhiChildren (JavaScriptCore/dfg/DFGPhiChildren.h) is called from a NULL pointer.  Because of the current implementation of forAllTransitiveIncomingValues, this does not currently cause a crash.  It is, however, an obvious bug, especially because in another case, the caller checks the PhiChildren pointer before calling this function.

NULL pointer: JavaScriptCore/dfg/DFGAbstractInterpretterInlines.h line 1997
Analogous call: JavaScriptCore/dfg/DFGAbstractInterpretterInlines.h line 2273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220193</commentid>
    <comment_count>1</comment_count>
      <attachid>286102</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-15 15:45:13 -0700</bug_when>
    <thetext>Created attachment 286102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220196</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-15 15:46:05 -0700</bug_when>
    <thetext>This patch will fail style check, since it contains an edit to a Lambda function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220197</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 15:48:07 -0700</bug_when>
    <thetext>Attachment 286102 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2000:  Place brace on its own line for function definitions.  [whitespace/braces] [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>1220381</commentid>
    <comment_count>4</comment_count>
      <attachid>286102</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-15 23:31:26 -0700</bug_when>
    <thetext>Comment on attachment 286102
Patch

Needs a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220511</commentid>
    <comment_count>5</comment_count>
      <attachid>286102</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-16 11:55:30 -0700</bug_when>
    <thetext>Comment on attachment 286102
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        (JSC::DFG::AbstractInterpreter&lt;AbstractStateType&gt;::executeEffects): NULL check on m_phiChildren before function call.

Can you elaborate on why this happens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220596</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-16 15:18:18 -0700</bug_when>
    <thetext>I will revisit this bug tomorrow.  Changes in the last 24 hours have resulted in my inability to duplicate it.  I will update my undefined behavior sanitizer and see if I can replicate this bug (unfortunately, the undefined behavior sanitizer takes hours to build if top-level headers have been changed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220910</commentid>
    <comment_count>7</comment_count>
      <attachid>286310</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-17 11:53:55 -0700</bug_when>
    <thetext>Created attachment 286310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220911</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-17 11:55:18 -0700</bug_when>
    <thetext>Attachment 286310 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2000:  Place brace on its own line for function definitions.  [whitespace/braces] [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>1220913</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2016-08-17 12:02:09 -0700</bug_when>
    <thetext>A quick update on Daren&apos;s request: This is going to be a very difficult change to test.  The most obvious way would be to integrate undefined behavior sanitizer into our testing infrastructure, although this is many months off if it will happen at all.

The other method of testing would be construct a test which would crash without this change.  While this is likely possible, it&apos;s unclear to me what such a test would like like.  While attempting to construct a test which would crash without this change, I discovered that it really only seems to be js/regress/simple-regexp-exec-folding.html which exhibits the bug, but even this test will not always exhibit this error (most notably, is the number of iterations through the loop is decreased, the error will no longer occur).

If uncovering the precise code path which triggers this bug is important, I can continue to investigate.  However, I don&apos;t think continued investigation is worthwhile, as an analogous case in forAllTransitiveIncomingValues preforms this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221691</commentid>
    <comment_count>10</comment_count>
      <attachid>286310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-20 19:16:16 -0700</bug_when>
    <thetext>Comment on attachment 286310
Patch

No review yet. Who&apos;s going to review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221702</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-20 21:51:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; A quick update on Daren&apos;s request: This is going to be a very difficult
&gt; change to test.  The most obvious way would be to integrate undefined
&gt; behavior sanitizer into our testing infrastructure, although this is many
&gt; months off if it will happen at all.
&gt; 
&gt; The other method of testing would be construct a test which would crash
&gt; without this change.  While this is likely possible, it&apos;s unclear to me what
&gt; such a test would like like.  While attempting to construct a test which
&gt; would crash without this change, I discovered that it really only seems to
&gt; be js/regress/simple-regexp-exec-folding.html which exhibits the bug, but
&gt; even this test will not always exhibit this error (most notably, is the
&gt; number of iterations through the loop is decreased, the error will no longer
&gt; occur).
So there is a test where we call this function on a nullptr?
If so, why don&apos;t we crash? Does that function not load any fields?
If not, I&apos;m a bit confused as to what your explanation for needing this
check is. I&apos;m not too familiar about which states this particular field can be null in,
but there are other places where we allow for null in a pointer field,
but later access it without a null check because other conditions
being true imply that the field is non-null. (This may or may not
be the case here). 

&gt; 
&gt; If uncovering the precise code path which triggers this bug is important, I
&gt; can continue to investigate.  However, I don&apos;t think continued investigation
&gt; is worthwhile, as an analogous case in forAllTransitiveIncomingValues
&gt; preforms this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221703</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-20 21:52:34 -0700</bug_when>
    <thetext>When you say that that particular test &quot;exhibits the bug&quot;,
what exactly do you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221705</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-20 21:59:54 -0700</bug_when>
    <thetext>Jonathan has been compiling WebKit with clang&apos;s UndefinedBehaviorSanitizer &lt;http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html&gt;. When compiled like this, code will trap if it makes a non-static function member call with a nullptr for the this pointer.

I think of it as a way to add additional assertions.

When Jonathan is saying that a test &quot;exhibits the bug&quot;, he means that when compiled that way, that test hit the trap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221706</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-20 22:01:09 -0700</bug_when>
    <thetext>Please note: It’s not legal C++ to call a non-static member function with a null pointer for this, even if the function is non-virtual, and even if the function doesn&apos;t access the this pointer directly or indirectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221753</commentid>
    <comment_count>15</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-21 11:14:28 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Jonathan has been compiling WebKit with clang&apos;s UndefinedBehaviorSanitizer
&gt; &lt;http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html&gt;. When compiled
&gt; like this, code will trap if it makes a non-static function member call with
&gt; a nullptr for the this pointer.
&gt; 
&gt; I think of it as a way to add additional assertions.
&gt; 
&gt; When Jonathan is saying that a test &quot;exhibits the bug&quot;, he means that when
&gt; compiled that way, that test hit the trap.

I see. Very cool, I didn&apos;t know this was a thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221756</commentid>
    <comment_count>16</comment_count>
      <attachid>286310</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-21 11:19:52 -0700</bug_when>
    <thetext>Comment on attachment 286310
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2003
&gt; +        if (m_phiChildren) {
&gt; +            m_phiChildren-&gt;forAllTransitiveIncomingValues(
&gt; +                m_graph.varArgChild(node, 0).node(),
&gt; +                [&amp;] (Node* incoming) {
&gt; +                    set.add(incoming-&gt;castConstant&lt;Structure*&gt;());
&gt; +                });
&gt; +        }

Filip recently added code that will add MaterializeNewObject into the IR even when we&apos;re not in SSA.
This is when we do RegExp constant folding on various RegExp operations, like RegExp.prototype.exec.
That said, I don&apos;t think this code is correct when we&apos;re not in SSA form. For example, I think you&apos;re saying
that the result of this node is the emptySet of structures when we&apos;re not in SSA. That&apos;s not what we want.
If anything, if we can&apos;t give a specific result filled with structure sets, we probably want to widen our result
type to just arbitrary Object or something similar to that. However, maybe there are other methods in which
we can attain the Structure(s) that this produce in non-SSA form.

Filip, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221757</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-21 11:23:03 -0700</bug_when>
    <thetext>Actually, it looks like the StructureSet is in the first OpInfo of the node.
It seems like we should use that.
(I&apos;m looking at the code in StrengthReductionPhase that generates this node).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221758</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-21 11:25:26 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Actually, it looks like the StructureSet is in the first OpInfo of the node.
&gt; It seems like we should use that.
&gt; (I&apos;m looking at the code in StrengthReductionPhase that generates this node).

Actually, it looks like that&apos;s what happens when we add this node
to the IR for allocation sinking phase as well. The first OpInfo of
the node has the StructureSet of the resulting type.
I believe the correct patch is to use the StructureSet from the OpInfo
to mark as the result of this node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225991</commentid>
    <comment_count>19</comment_count>
      <attachid>287826</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-02 15:37:17 -0700</bug_when>
    <thetext>Created attachment 287826
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225993</commentid>
    <comment_count>20</comment_count>
      <attachid>287826</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-02 15:39:03 -0700</bug_when>
    <thetext>Comment on attachment 287826
patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        The rule for MaterlializeNewObject inside AI was assuming that the graph

/MaterlializeNewObject/MaterializeNewObject/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225995</commentid>
    <comment_count>21</comment_count>
      <attachid>287828</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-02 15:43:05 -0700</bug_when>
    <thetext>Created attachment 287828
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226007</commentid>
    <comment_count>22</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-02 15:58:22 -0700</bug_when>
    <thetext>This looks like its breaking an AsmJS test, not sure why. I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226009</commentid>
    <comment_count>23</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-02 16:06:40 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; This looks like its breaking an AsmJS test, not sure why. I&apos;ll investigate.

actually, this failure looks unrelated to my change. Investigating now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226012</commentid>
    <comment_count>24</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-02 16:16:19 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; This looks like its breaking an AsmJS test, not sure why. I&apos;ll investigate.
&gt; 
&gt; actually, this failure looks unrelated to my change. Investigating now.
Never mind, It looks like I&apos;m running an older version of asm js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226111</commentid>
    <comment_count>25</comment_count>
      <attachid>287828</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-03 06:46:07 -0700</bug_when>
    <thetext>Comment on attachment 287828
patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1953
&gt; +        const StructureSet&amp; set = node-&gt;structureSet();
&gt;          forNode(node).set(m_graph, set);

Why the local variable? Does not seem like it makes this code clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226907</commentid>
    <comment_count>26</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-06 16:06:52 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 287828 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=287828&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1953
&gt; &gt; +        const StructureSet&amp; set = node-&gt;structureSet();
&gt; &gt;          forNode(node).set(m_graph, set);
&gt; 
&gt; Why the local variable? Does not seem like it makes this code clearer.

Thanks for the review. No reason in particular for the local variable, I 
was just refactoring the old code. I agree that it&apos;s not needed, I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226910</commentid>
    <comment_count>27</comment_count>
      <attachid>288060</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-06 16:10:32 -0700</bug_when>
    <thetext>Created attachment 288060
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226928</commentid>
    <comment_count>28</comment_count>
      <attachid>288060</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-06 16:53:22 -0700</bug_when>
    <thetext>Comment on attachment 288060
patch for landing

Clearing flags on attachment: 288060

Committed r205522: &lt;http://trac.webkit.org/changeset/205522&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226929</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-06 16:53:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286102</attachid>
            <date>2016-08-15 15:45:13 -0700</date>
            <delta_ts>2016-08-17 11:53:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160870-20160815154328.patch</filename>
            <type>text/plain</type>
            <size>1773</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0NDg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTA4LTE1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAg
ICAgICBNZW1iZXIgY2FsbCBvbiBOVUxMIHBvaW50ZXIgaW4gSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0dGVySW5saW5lcy5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6IE5VTEwgY2hlY2sgb24gbV9waGlDaGlsZHJlbiBiZWZv
cmUgZnVuY3Rpb24gY2FsbC4KKwogMjAxNi0wOC0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBKU1ZhbHVlOjpzdHJpY3RFcXVhbCgpIGhhbmRsZSBmYWls
dXJlcyB0byByZXNvbHZlIEpTUm9wZVN0cmluZ3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShy
ZXZpc2lvbiAyMDQ0NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OTQsMTEgKzE5OTQsMTMg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIGNhc2UgTWF0
ZXJpYWxpemVOZXdPYmplY3Q6IHsKICAgICAgICAgU3RydWN0dXJlU2V0IHNldDsKICAgICAgICAg
Ci0gICAgICAgIG1fcGhpQ2hpbGRyZW4tPmZvckFsbFRyYW5zaXRpdmVJbmNvbWluZ1ZhbHVlcygK
LSAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkubm9kZSgpLAotICAgICAg
ICAgICAgWyZdIChOb2RlKiBpbmNvbWluZykgewotICAgICAgICAgICAgICAgIHNldC5hZGQoaW5j
b21pbmctPmNhc3RDb25zdGFudDxTdHJ1Y3R1cmUqPigpKTsKLSAgICAgICAgICAgIH0pOworICAg
ICAgICBpZiAobV9waGlDaGlsZHJlbikgeworICAgICAgICAgICAgbV9waGlDaGlsZHJlbi0+Zm9y
QWxsVHJhbnNpdGl2ZUluY29taW5nVmFsdWVzKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobm9kZSwgMCkubm9kZSgpLAorICAgICAgICAgICAgICAgIFsmXSAoTm9kZSogaW5j
b21pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChpbmNvbWluZy0+Y2FzdENvbnN0
YW50PFN0cnVjdHVyZSo+KCkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBoLCBzZXQpOwogICAgICAgICBi
cmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286310</attachid>
            <date>2016-08-17 11:53:55 -0700</date>
            <delta_ts>2016-09-02 15:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160870-20160817115207.patch</filename>
            <type>text/plain</type>
            <size>1791</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0NTIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTA4LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAg
ICAgICBNZW1iZXIgY2FsbCBvbiBOVUxMIHBvaW50ZXIgaW4gSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0dGVySW5saW5lcy5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6IENoZWNrIG9uIG1fcGhpQ2hpbGRyZW4gYmVmb3JlIGZ1
bmN0aW9uIGNhbGwgYmVjYXVzZSBtX3BoaUNoaWxkcmVuIGNhbiBiZSBOVUxMLgorCiAyMDE2LTA4
LTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENvbnZlcnNp
b24gdG8gc2VxdWVuY2U8VD4gaXMgYnJva2VuIGZvciBpdGVyYWJsZSBvYmplY3RzCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAyMDQ1MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE5OTQsMTEgKzE5OTQsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeQogICAgIGNhc2UgTWF0ZXJpYWxpemVOZXdPYmplY3Q6IHsKICAgICAgICAgU3RydWN0dXJl
U2V0IHNldDsKICAgICAgICAgCi0gICAgICAgIG1fcGhpQ2hpbGRyZW4tPmZvckFsbFRyYW5zaXRp
dmVJbmNvbWluZ1ZhbHVlcygKLSAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwg
MCkubm9kZSgpLAotICAgICAgICAgICAgWyZdIChOb2RlKiBpbmNvbWluZykgewotICAgICAgICAg
ICAgICAgIHNldC5hZGQoaW5jb21pbmctPmNhc3RDb25zdGFudDxTdHJ1Y3R1cmUqPigpKTsKLSAg
ICAgICAgICAgIH0pOworICAgICAgICBpZiAobV9waGlDaGlsZHJlbikgeworICAgICAgICAgICAg
bV9waGlDaGlsZHJlbi0+Zm9yQWxsVHJhbnNpdGl2ZUluY29taW5nVmFsdWVzKAorICAgICAgICAg
ICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkubm9kZSgpLAorICAgICAgICAgICAg
ICAgIFsmXSAoTm9kZSogaW5jb21pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChp
bmNvbWluZy0+Y2FzdENvbnN0YW50PFN0cnVjdHVyZSo+KCkpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBo
LCBzZXQpOwogICAgICAgICBicmVhazsK
</data>
<flag name="review"
          id="309862"
          type_id="1"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287826</attachid>
            <date>2016-09-02 15:37:17 -0700</date>
            <delta_ts>2016-09-02 15:43:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>2096</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA1Mzc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTA5LTAyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1lbWJlciBjYWxsIG9uIE5VTEwgcG9pbnRlciBpbiBKYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXR0ZXJJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENyZWRpdCBnb2VzIHRvIEpvbmF0aGFuIEJlZGFyZCBmb3IgZmlu
ZGluZyB0aGlzIGJ1ZyB1c2luZyB0aGUgdW5kZWZpbmVkCisgICAgICAgIGJlaGF2aW9yIHNhbml0
aXplci4KKworICAgICAgICBUaGUgcnVsZSBmb3IgTWF0ZXJsaWFsaXplTmV3T2JqZWN0IGluc2lk
ZSBBSSB3YXMgYXNzdW1pbmcgdGhhdCB0aGUgZ3JhcGgKKyAgICAgICAgd2FzIGluIFNTQSBmb3Jt
LiBUaGlzIHVzZWQgdG8gYmUgdHJ1ZSB3aGVuIE1hdGVyaWFsaXplTmV3T2JqZWN0IHdhcyBvbmx5
CisgICAgICAgIGluc2VydGVkIGJ5IHRoZSBhbGxvY2F0aW9uIHNpbmtpbmcgcGhhc2UuIEhvd2V2
ZXIsIEZpbGlwIGFkZGVkIG1vcmUgdXNlcworICAgICAgICBvZiBNYXRlcmlhbGl6ZU5ld09iamVj
dCBpbiBoaXMgUmVnRXhwIGNvbnN0YW50IGZvbGRpbmcgcGF0Y2guIFRoaXMgZml4ZXMKKyAgICAg
ICAgdGhlIGJ1ZyBieSB1c2luZyB0aGUgc3RydWN0dXJlIHNldCBpbnNpZGUgdGhlIE5vZGUncyBP
cEluZm8gcmF0aGVyIHRoYW4KKyAgICAgICAgZ2VuZXJhdGluZyBpdCBmcm9tIG1fcGhpQ2hpbGRy
ZW4gaW5zaWRlIEFJLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKwogMjAxNi0wOS0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIyMDUzNTQg
YmVjYXVzZSBpdCBjYXVzZWQgSlNDIHRlc3QgZmFpbHVyZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgJKHJldmlzaW9uIDIwNTM3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0OSwxNCArMTk0
OSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgTWF0ZXJpYWxpemVOZXdPYmplY3Q6IHsKLSAgICAg
ICAgU3RydWN0dXJlU2V0IHNldDsKLSAgICAgICAgCi0gICAgICAgIG1fcGhpQ2hpbGRyZW4tPmZv
ckFsbFRyYW5zaXRpdmVJbmNvbWluZ1ZhbHVlcygKLSAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMCkubm9kZSgpLAotICAgICAgICAgICAgWyZdIChOb2RlKiBpbmNvbWluZykg
ewotICAgICAgICAgICAgICAgIHNldC5hZGQoaW5jb21pbmctPmNhc3RDb25zdGFudDxTdHJ1Y3R1
cmUqPigpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKyAgICAgICAgY29uc3QgU3RydWN0
dXJlU2V0JiBzZXQgPSBub2RlLT5zdHJ1Y3R1cmVTZXQoKTsKICAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXQobV9ncmFwaCwgc2V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287828</attachid>
            <date>2016-09-02 15:43:05 -0700</date>
            <delta_ts>2016-09-06 16:10:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>2094</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA1Mzc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTA5LTAyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1lbWJlciBjYWxsIG9uIE5VTEwgcG9pbnRlciBpbiBKYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXR0ZXJJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENyZWRpdCBnb2VzIHRvIEpvbmF0aGFuIEJlZGFyZCBmb3IgZmlu
ZGluZyB0aGlzIGJ1ZyB1c2luZyB0aGUgdW5kZWZpbmVkCisgICAgICAgIGJlaGF2aW9yIHNhbml0
aXplci4KKworICAgICAgICBUaGUgcnVsZSBmb3IgTWF0ZXJpYWxpemVOZXdPYmplY3QgaW5zaWRl
IEFJIHdhcyBhc3N1bWluZyB0aGF0IHRoZSBncmFwaAorICAgICAgICBpcyBpbiBTU0EgZm9ybS4g
VGhpcyB1c2VkIHRvIGJlIHRydWUgd2hlbiBNYXRlcmlhbGl6ZU5ld09iamVjdCB3YXMgb25seQor
ICAgICAgICBpbnNlcnRlZCBieSB0aGUgYWxsb2NhdGlvbiBzaW5raW5nIHBoYXNlLiBIb3dldmVy
LCBGaWxpcCBhZGRlZCBtb3JlIHVzZXMKKyAgICAgICAgb2YgTWF0ZXJpYWxpemVOZXdPYmplY3Qg
aW4gaGlzIFJlZ0V4cCBjb25zdGFudCBmb2xkaW5nIHBhdGNoLiBUaGlzIGZpeGVzCisgICAgICAg
IHRoZSBidWcgYnkgdXNpbmcgdGhlIHN0cnVjdHVyZSBzZXQgaW5zaWRlIHRoZSBOb2RlJ3MgT3BJ
bmZvIHJhdGhlciB0aGFuCisgICAgICAgIGdlbmVyYXRpbmcgaXQgZnJvbSBtX3BoaUNoaWxkcmVu
IGluc2lkZSBBSS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMTYtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMjA1MzU0IGJl
Y2F1c2UgaXQgY2F1c2VkIEpTQyB0ZXN0IGZhaWx1cmVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CShyZXZpc2lvbiAyMDUzNzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NDksMTQgKzE5NDks
NyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIGJy
ZWFrOwogICAgICAgICAKICAgICBjYXNlIE1hdGVyaWFsaXplTmV3T2JqZWN0OiB7Ci0gICAgICAg
IFN0cnVjdHVyZVNldCBzZXQ7Ci0gICAgICAgIAotICAgICAgICBtX3BoaUNoaWxkcmVuLT5mb3JB
bGxUcmFuc2l0aXZlSW5jb21pbmdWYWx1ZXMoCi0gICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDApLm5vZGUoKSwKLSAgICAgICAgICAgIFsmXSAoTm9kZSogaW5jb21pbmcpIHsK
LSAgICAgICAgICAgICAgICBzZXQuYWRkKGluY29taW5nLT5jYXN0Q29uc3RhbnQ8U3RydWN0dXJl
Kj4oKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAgIGNvbnN0IFN0cnVjdHVy
ZVNldCYgc2V0ID0gbm9kZS0+c3RydWN0dXJlU2V0KCk7CiAgICAgICAgIGZvck5vZGUobm9kZSku
c2V0KG1fZ3JhcGgsIHNldCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
</data>
<flag name="review"
          id="311247"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288060</attachid>
            <date>2016-09-06 16:10:32 -0700</date>
            <delta_ts>2016-09-06 16:53:22 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>2084</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA1NTE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTA5LTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1lbWJlciBjYWxsIG9uIE5VTEwgcG9pbnRlciBpbiBKYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXR0ZXJJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIENyZWRpdCBnb2VzIHRvIEpvbmF0aGFuIEJlZGFyZCBmb3IgZmluZGlu
ZyB0aGlzIGJ1ZyB1c2luZyB0aGUgdW5kZWZpbmVkCisgICAgICAgIGJlaGF2aW9yIHNhbml0aXpl
ci4KKworICAgICAgICBUaGUgcnVsZSBmb3IgTWF0ZXJpYWxpemVOZXdPYmplY3QgaW5zaWRlIEFJ
IHdhcyBhc3N1bWluZyB0aGF0IHRoZSBncmFwaAorICAgICAgICBpcyBpbiBTU0EgZm9ybS4gVGhp
cyB1c2VkIHRvIGJlIHRydWUgd2hlbiBNYXRlcmlhbGl6ZU5ld09iamVjdCB3YXMgb25seQorICAg
ICAgICBpbnNlcnRlZCBieSB0aGUgYWxsb2NhdGlvbiBzaW5raW5nIHBoYXNlLiBIb3dldmVyLCBG
aWxpcCBhZGRlZCBtb3JlIHVzZXMKKyAgICAgICAgb2YgTWF0ZXJpYWxpemVOZXdPYmplY3QgaW4g
aGlzIFJlZ0V4cCBjb25zdGFudCBmb2xkaW5nIHBhdGNoLiBUaGlzIGZpeGVzCisgICAgICAgIHRo
ZSBidWcgYnkgdXNpbmcgdGhlIHN0cnVjdHVyZSBzZXQgaW5zaWRlIHRoZSBOb2RlJ3MgT3BJbmZv
IHJhdGhlciB0aGFuCisgICAgICAgIGdlbmVyYXRpbmcgaXQgZnJvbSBtX3BoaUNoaWxkcmVuIGlu
c2lkZSBBSS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMTYtMDktMDYgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gTWFrZSBBcml0aENsejMyIHdvcmsg
d2l0aCBDZWxsIGFyZ3VtZW50cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMjA1
NTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQ5LDE1ICsxOTQ5LDcgQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBicmVhazsKICAgICAgICAg
CiAgICAgY2FzZSBNYXRlcmlhbGl6ZU5ld09iamVjdDogewotICAgICAgICBTdHJ1Y3R1cmVTZXQg
c2V0OwotICAgICAgICAKLSAgICAgICAgbV9waGlDaGlsZHJlbi0+Zm9yQWxsVHJhbnNpdGl2ZUlu
Y29taW5nVmFsdWVzKAotICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS5u
b2RlKCksCi0gICAgICAgICAgICBbJl0gKE5vZGUqIGluY29taW5nKSB7Ci0gICAgICAgICAgICAg
ICAgc2V0LmFkZChpbmNvbWluZy0+Y2FzdENvbnN0YW50PFN0cnVjdHVyZSo+KCkpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBoLCBz
ZXQpOworICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBoLCBub2RlLT5zdHJ1Y3R1cmVT
ZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>