<?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>108796</bug_id>
          
          <creation_ts>2013-02-03 23:38:40 -0800</creation_ts>
          <short_desc>[WK2][EFL] Stop using internal C++ API in ewk_error</short_desc>
          <delta_ts>2013-02-18 22:59:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107657</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>824094</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-03 23:38:40 -0800</bug_when>
    <thetext>There is currently no API to check if a WKError corresponds to a cancellation or not. I believe such API would be useful.

Note that both EFL and Qt ports of WK2 currently expose this information via their public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824098</commentid>
    <comment_count>1</comment_count>
      <attachid>186314</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-03 23:49:04 -0800</bug_when>
    <thetext>Created attachment 186314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824117</commentid>
    <comment_count>2</comment_count>
      <attachid>186314</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 00:29:45 -0800</bug_when>
    <thetext>Comment on attachment 186314
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824123</commentid>
    <comment_count>3</comment_count>
      <attachid>186314</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 00:58:11 -0800</bug_when>
    <thetext>Comment on attachment 186314
Patch

Attachment 186314 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16366186</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824124</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 00:58:54 -0800</bug_when>
    <thetext>Win-ews warning seems unrelated:
1&gt;ImageDiffCG.cpp
1&gt;..\cg\ImageDiffCG.cpp(37) : fatal error C1083: Cannot open include file: &apos;wtf/Platform.h&apos;: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824141</commentid>
    <comment_count>5</comment_count>
      <attachid>186314</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-04 01:27:28 -0800</bug_when>
    <thetext>Comment on attachment 186314
Patch

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

looks good.

&gt; Source/WebKit2/Shared/WebError.h:-54
&gt; -    int errorCode() const { return m_platformError.errorCode();; }

heh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824417</commentid>
    <comment_count>6</comment_count>
      <attachid>186314</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 09:08:26 -0800</bug_when>
    <thetext>Comment on attachment 186314
Patch

Why don&apos;t we simply add a new error code to WKError.h?

The only thing that makes a cancellation error special is that it&apos;s error code means &quot;cancelled&quot;
If we&apos;re adding a &quot;WKErrorIsCancellation&quot; API why not also add a &quot;WKErrorIsCannotLoadPlugIn&quot; API?  Or a &quot;WKErrorFrameLoadInterruptedByPolicyChange&quot; API?

Because that&apos;d be crazy when clients can already compare an error&apos;s error code to public API constants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824419</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 09:10:31 -0800</bug_when>
    <thetext>Also, another objection is that this patch is changing the cross platform C-API solely as an implementation detail of a platform specific API, when a perfectly good alternative already existed.

I had this same objection to some icon database API work within the last week, and that objection still stands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824466</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 09:45:49 -0800</bug_when>
    <thetext>Thanks for the suggestion. I&apos;ll look into checking the error code instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824505</commentid>
    <comment_count>9</comment_count>
      <attachid>186412</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 10:18:04 -0800</bug_when>
    <thetext>Created attachment 186412
Patch

No longer add any C API and compare error domain/code instead to determine if it is a cancellation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824507</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 10:20:37 -0800</bug_when>
    <thetext>Attachment 186412 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/UIProcess/API/efl/ewk_error.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/efl/ewk_error_private.h&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/API/efl/ewk_error_private.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 3 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>824516</commentid>
    <comment_count>11</comment_count>
      <attachid>186414</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 10:22:52 -0800</bug_when>
    <thetext>Created attachment 186414
Patch

Fix style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824521</commentid>
    <comment_count>12</comment_count>
      <attachid>186414</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 10:24:47 -0800</bug_when>
    <thetext>Comment on attachment 186414
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824524</commentid>
    <comment_count>13</comment_count>
      <attachid>186414</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 10:26:37 -0800</bug_when>
    <thetext>Comment on attachment 186414
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_error_private.h:46
&gt; -    String domain() const;
&gt; +    WKRetainPtr&lt;WKStringRef&gt; domain() const;

I don&apos;t understand the reason behind this change.  A WKStringRef is just a wrapper around WTF::String.  Why the desperation to use the C-API internally when using WTF::String directly would be easier and more efficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824529</commentid>
    <comment_count>14</comment_count>
      <attachid>186412</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 10:29:54 -0800</bug_when>
    <thetext>Comment on attachment 186412
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_error.cpp:55
&gt; -String EwkError::domain() const
&gt; +WKRetainPtr&lt;WKStringRef&gt; EwkError::domain() const
&gt;  {
&gt; -    WKRetainPtr&lt;WKStringRef&gt; wkDomain(AdoptWK, WKErrorCopyDomain(m_wkError.get()));
&gt; -    return toWTFString(wkDomain.get());
&gt; +    return adoptWK(WKErrorCopyDomain(m_wkError.get()));

Instead of passing WKStringRefs around and going through this dance, why not leave it like:

String EwkError::domain() const
{
    return toImpl(m_wkError.get())-&gt;domain();
}

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824531</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 10:33:03 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 186412 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186412&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_error.cpp:55
&gt; &gt; -String EwkError::domain() const
&gt; &gt; +WKRetainPtr&lt;WKStringRef&gt; EwkError::domain() const
&gt; &gt;  {
&gt; &gt; -    WKRetainPtr&lt;WKStringRef&gt; wkDomain(AdoptWK, WKErrorCopyDomain(m_wkError.get()));
&gt; &gt; -    return toWTFString(wkDomain.get());
&gt; &gt; +    return adoptWK(WKErrorCopyDomain(m_wkError.get()));
&gt; 
&gt; Instead of passing WKStringRefs around and going through this dance, why not leave it like:
&gt; 
&gt; String EwkError::domain() const
&gt; {
&gt;     return toImpl(m_wkError.get())-&gt;domain();
&gt; }
&gt; 
&gt; ?

That would mean using WebError type directly which is what we are trying to stop doing. As per recent recommendation from Benjamin Poulain, we decided to use the C API inside our EFL API implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824537</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 10:37:13 -0800</bug_when>
    <thetext>&gt; Instead of passing WKStringRefs around and going through this dance, why not leave it like:
&gt; 
&gt; String EwkError::domain() const
&gt; {
&gt;     return toImpl(m_wkError.get())-&gt;domain();
&gt; }
&gt; 
&gt; ?

We would like to be able to ship our EFL-like API as a separate project, and potentially use the more low-level WK C API directly for others products such as browser/runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824541</commentid>
    <comment_count>17</comment_count>
      <attachid>186414</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 10:40:12 -0800</bug_when>
    <thetext>Comment on attachment 186414
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_error_private.h:46
&gt;&gt; +    WKRetainPtr&lt;WKStringRef&gt; domain() const;
&gt; 
&gt; I don&apos;t understand the reason behind this change.  A WKStringRef is just a wrapper around WTF::String.  Why the desperation to use the C-API internally when using WTF::String directly would be easier and more efficient?

The domain is only used to compare with other UTF8 strings (as const char*). So I figured it was better to keep it as a WKStringRef and simply use WKStringIsEqualToUTF8CString(). We could keep converting the WKString to a WTF::String as well but then it would uselessly copy the String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824576</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 11:01:55 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 186414 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186414&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_error_private.h:46
&gt; &gt;&gt; +    WKRetainPtr&lt;WKStringRef&gt; domain() const;
&gt; &gt; 
&gt; &gt; I don&apos;t understand the reason behind this change.  A WKStringRef is just a wrapper around WTF::String.  Why the desperation to use the C-API internally when using WTF::String directly would be easier and more efficient?
&gt; 
&gt; The domain is only used to compare with other UTF8 strings (as const char*). So I figured it was better to keep it as a WKStringRef and simply use WKStringIsEqualToUTF8CString(). We could keep converting the WKString to a WTF::String as well but then it would uselessly copy the String.

...UNLESS you did a toImpl(error)-&gt;domain() as I mentioned in a previous comment.

(In reply to comment #16)
&gt; &gt; Instead of passing WKStringRefs around and going through this dance, why not leave it like:
&gt; &gt; 
&gt; &gt; String EwkError::domain() const
&gt; &gt; {
&gt; &gt;     return toImpl(m_wkError.get())-&gt;domain();
&gt; &gt; }
&gt; &gt; 
&gt; &gt; ?
&gt; 
&gt; We would like to be able to ship our EFL-like API as a separate project, and potentially use the more low-level WK C API directly for others products such as browser/runtime.

Is EwkError exposed directly in this EFL-like API, or is it an &quot;impl&quot; class the same way WebError is an impl class for WKError?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824579</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 11:03:47 -0800</bug_when>
    <thetext>I&apos;m seeing a bit of an impedance mismatch here.

If the Ewk* classes are meant to be exposed as EFL-like API, then they probably have no business exposing WK* API objects, and there&apos;s probably no need to work with WK* API objects internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824590</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 11:14:36 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I&apos;m seeing a bit of an impedance mismatch here.
&gt; 
&gt; If the Ewk* classes are meant to be exposed as EFL-like API, then they probably have no business exposing WK* API objects, and there&apos;s probably no need to work with WK* API objects internally.

Ewk* classes are not exposed to clients. Those are C++ classes that we use internally for convenience. Our public EFL API is in C and that C/EFL API uses our Ewk classes internally.

Regarding the use of toImpl(error)-&gt;domain(). We got patches r- by WK2 owners before because they used internal C++ WK2 API. It was then recommended to us to use the C API instead and stop poking holes through the layers. Also, the C API will hopefully be quite stable and using it would likely mean that our port code is less likely the break if the WK2 generic code is changed.

As Kenneth also commented, we may start having the WK2 EFL API as a separate project and relying only of the C API is needed to achieve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824600</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-04 11:26:55 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; I&apos;m seeing a bit of an impedance mismatch here.
&gt; &gt; 
&gt; &gt; If the Ewk* classes are meant to be exposed as EFL-like API, then they probably have no business exposing WK* API objects, and there&apos;s probably no need to work with WK* API objects internally.
&gt; 
&gt; Ewk* classes are not exposed to clients. Those are C++ classes that we use internally for convenience. Our public EFL API is in C and that C/EFL API uses our Ewk classes internally.

Right, so the Ewk classes are the &quot;impls&quot; for the actual EFL API classes.

And by moving the Ewk classes from generic WTF/WebCore types to WK* types, you&apos;re basically getting ready to punch a hole exposing WK* API in the EFL API.

I don&apos;t know if this is what you want to do or not.  I can tell you I personally don&apos;t think it&apos;s a good idea.
 
&gt; Regarding the use of toImpl(error)-&gt;domain(). We got patches r- by WK2 owners before because they used internal C++ WK2 API. It was then recommended to us to use the C API instead and stop poking holes through the layers. Also, the C API will hopefully be quite stable and using it would likely mean that our port code is less likely the break if the WK2 generic code is changed.

I wasn&apos;t around for those patches, so I don&apos;t know specifics.  I suspect situations were slightly different, but maybe it&apos;s exactly the same.
 
&gt; As Kenneth also commented, we may start having the WK2 EFL API as a separate project and relying only of the C API is needed to achieve this.

I&apos;m not sure I&apos;m convinced it&apos;s &quot;needed&quot; though I concede it would make it much more convenient from a build engineering perspective.

The mechanics of this patch look fine to me, I just think it&apos;s a whole bunch of needless object churn.

At this point I&apos;d recommend pinging one of the reviewers who encouraged previous patches to use the WK2 C-API to implement your API to get them to r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824614</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 11:40:04 -0800</bug_when>
    <thetext>&gt; The mechanics of this patch look fine to me, I just think it&apos;s a whole bunch of needless object churn.
&gt; 
&gt; At this point I&apos;d recommend pinging one of the reviewers who encouraged previous patches to use the WK2 C-API to implement your API to get them to r+.

Ok, will do. Thanks for taking a look at the patch and pointing me in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835990</commentid>
    <comment_count>23</comment_count>
      <attachid>186414</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 22:59:35 -0800</bug_when>
    <thetext>Comment on attachment 186414
Patch

Clearing flags on attachment: 186414

Committed r143297: &lt;http://trac.webkit.org/changeset/143297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835991</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 22:59:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186314</attachid>
            <date>2013-02-03 23:49:04 -0800</date>
            <delta_ts>2013-02-04 10:18:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108796_wkerroriscancellation.patch</filename>
            <type>text/plain</type>
            <size>3306</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhNTUwYjhiLi41NjllYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTMtMDItMDMgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNAZ21haWwuY29tPgorCisg
ICAgICAgIFtXSzJdIEFkZCBXS0Vycm9ySXNDYW5jZWxsYXRpb24oKSB0byBDIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Nzk2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdLRXJyb3JJc0Nh
bmNlbGxhdGlvbigpIEMgQVBJIGZ1bmN0aW9uIHRvIFdLRXJyb3IgdG8gcXVlcnkgaWYgdGhlCisg
ICAgICAgIGVycm9yIGNvcnJlc3BvbmRzIHRvIGEgY2FuY2VsbGF0aW9uLgorCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwOgorICAgICAgICAoV0tFcnJvcklzQ2FuY2VsbGF0aW9u
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tFcnJvci5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJFcnJvci5oOiBBZGQgaXNDYW5jZWxsYXRpb24oKSBtZXRob2QuCisgICAgICAgIChXZWJLaXQ6
OldlYkVycm9yOjplcnJvckNvZGUpOiBSZW1vdmUgZHVwbGljYXRlZCBzZW1pY29sb24uCisgICAg
ICAgIChXZWJLaXQ6OldlYkVycm9yOjppc0NhbmNlbGxhdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcDoKKyAgICAgICAgKEV3a0Vycm9yOjppc0NhbmNlbGxh
dGlvbik6IFVzZSBuZXcgV0tFcnJvcklzQ2FuY2VsbGF0aW9uKCkgQyBBUEkKKyAgICAgICAgZnVu
Y3Rpb24uCisKIDIwMTMtMDItMDMgIEt3YW5nWW9uZyBDaG9pICA8a3kwLmNob2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgRml4IGJ1aWxkIHdhcm5pbmcgYWZ0ZXIgcjE0MTY0OApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwCmluZGV4IDE0OGJkNjIuLmFjNzdmYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Vycm9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5jcHAKQEAgLTYwLDMgKzYwLDggQEAgV0tT
dHJpbmdSZWYgV0tFcnJvckNvcHlMb2NhbGl6ZWREZXNjcmlwdGlvbihXS0Vycm9yUmVmIGVycm9y
UmVmKQogewogICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwoZXJyb3JSZWYpLT5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpKTsKIH0KKworYm9vbCBXS0Vycm9ySXNDYW5jZWxsYXRpb24oV0tFcnJv
clJlZiBlcnJvclJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGVycm9yUmVmKS0+aXNDYW5jZWxs
YXRpb24oKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Vy
cm9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5oCmluZGV4IGIwOTli
NzMuLjY2N2E0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Vy
cm9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRXJyb3IuaApAQCAtNTUs
NiArNTUsNyBAQCBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tFcnJvckNvcHlEb21haW4oV0tFcnJv
clJlZiBlcnJvcik7CiBXS19FWFBPUlQgaW50IFdLRXJyb3JHZXRFcnJvckNvZGUoV0tFcnJvclJl
ZiBlcnJvcik7CiBXS19FWFBPUlQgV0tVUkxSZWYgV0tFcnJvckNvcHlGYWlsaW5nVVJMKFdLRXJy
b3JSZWYgZXJyb3IpOwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLRXJyb3JDb3B5TG9jYWxpemVk
RGVzY3JpcHRpb24oV0tFcnJvclJlZiBlcnJvcik7CitXS19FWFBPUlQgYm9vbCBXS0Vycm9ySXND
YW5jZWxsYXRpb24oV0tFcnJvclJlZiBlcnJvcik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXJyb3IuaAppbmRleCA5YzVkZGIwLi41YzdkYzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViRXJyb3IuaApAQCAtNTEsNyArNTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IFN0cmluZyYgd2ViS2l0RXJyb3JEb21haW4oKTsKIAogICAgIGNvbnN0IFN0cmluZyYgZG9t
YWluKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmRvbWFpbigpOyB9Ci0gICAgaW50
IGVycm9yQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5lcnJvckNvZGUoKTs7
IH0KKyAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmVy
cm9yQ29kZSgpOyB9CisgICAgYm9vbCBpc0NhbmNlbGxhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cGxhdGZvcm1FcnJvci5pc0NhbmNlbGxhdGlvbigpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBmYWls
aW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmZhaWxpbmdVUkwoKTsgfQog
ICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBt
X3BsYXRmb3JtRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcAppbmRleCBjYjlkNjhlLi5hNmI1
NDFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vy
cm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3Iu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIGludCBFd2tFcnJvcjo6ZXJyb3JDb2RlKCkgY29uc3QKIAog
Ym9vbCBFd2tFcnJvcjo6aXNDYW5jZWxsYXRpb24oKSBjb25zdAogewotICAgIHJldHVybiB0b0lt
cGwobV93a0Vycm9yLmdldCgpKS0+cGxhdGZvcm1FcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCk7Cisg
ICAgcmV0dXJuIFdLRXJyb3JJc0NhbmNlbGxhdGlvbihtX3drRXJyb3IuZ2V0KCkpOwogfQogCiBF
d2tfRXJyb3JfVHlwZSBld2tfZXJyb3JfdHlwZV9nZXQoY29uc3QgRXdrX0Vycm9yKiBlcnJvcikK
</data>
<flag name="review"
          id="205706"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186412</attachid>
            <date>2013-02-04 10:18:04 -0800</date>
            <delta_ts>2013-02-04 10:29:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108796_wkerroriscancellation.patch</filename>
            <type>text/plain</type>
            <size>3932</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2YjJhNjYxLi5iOWUzOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMDItMDQgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNAZ21haWwuY29tPgorCisg
ICAgICAgIFtXSzJdW0VGTF0gU3RvcCB1c2luZyBpbnRlcm5hbCBDKysgQVBJIGluIGV3a19lcnJv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Nzk2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1
c2luZyBpbnRlcm5hbCBDKysgQVBJIGluIGV3a19lcnJvciBhbmQgdXNlIEMgQVBJIGluc3RlYWQg
b2YgYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXllcmluZy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHA6CisgICAgICAgIChFd2tFcnJvcjo6ZG9tYWlu
KToKKyAgICAgICAgKEV3a0Vycm9yOjppc0NhbmNlbGxhdGlvbik6CisgICAgICAgIChld2tfZXJy
b3JfdHlwZV9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvcl9wcml2
YXRlLmg6CisgICAgICAgIChFd2tFcnJvcik6CisKIDIwMTMtMDItMDQgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3J0IFdlYktpdDIgWGNvZGUgcHJvamVj
dCBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNw
cAppbmRleCBjYjlkNjhlLi4yOTAzMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTI3LDE0ICsyNywxMiBAQAogI2luY2x1ZGUgImV3
a19lcnJvci5oIgogCiAjaW5jbHVkZSAiRXJyb3JzRWZsLmgiCisjaW5jbHVkZSAiV0tFcnJvci5o
IgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJl
d2tfZXJyb3JfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdLQVBJQ2FzdC5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCiBFd2tFcnJvcjo6RXdrRXJyb3IoV0tFcnJvclJlZiBlcnJvclJlZikK
ICAgICA6IG1fd2tFcnJvcihlcnJvclJlZikKQEAgLTUyLDEwICs1MCw5IEBAIGNvbnN0IGNoYXIq
IEV3a0Vycm9yOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVzY3JpcHRpb247
CiB9CiAKLVN0cmluZyBFd2tFcnJvcjo6ZG9tYWluKCkgY29uc3QKK1dLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBFd2tFcnJvcjo6ZG9tYWluKCkgY29uc3QKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gd2tEb21haW4oQWRvcHRXSywgV0tFcnJvckNvcHlEb21haW4obV93a0Vycm9yLmdl
dCgpKSk7Ci0gICAgcmV0dXJuIHRvV1RGU3RyaW5nKHdrRG9tYWluLmdldCgpKTsKKyAgICByZXR1
cm4gYWRvcHRXSyhXS0Vycm9yQ29weURvbWFpbihtX3drRXJyb3IuZ2V0KCkpKTsKIH0KIAogaW50
IEV3a0Vycm9yOjplcnJvckNvZGUoKSBjb25zdApAQCAtNjUsMjUgKzYyLDI2IEBAIGludCBFd2tF
cnJvcjo6ZXJyb3JDb2RlKCkgY29uc3QKIAogYm9vbCBFd2tFcnJvcjo6aXNDYW5jZWxsYXRpb24o
KSBjb25zdAogewotICAgIHJldHVybiB0b0ltcGwobV93a0Vycm9yLmdldCgpKS0+cGxhdGZvcm1F
cnJvcigpLmlzQ2FuY2VsbGF0aW9uKCk7CisgICAgcmV0dXJuIFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoZG9tYWluKCkuZ2V0KCksIGVycm9yRG9tYWluTmV0d29yaykgJiYgZXJyb3JDb2Rl
KCkgPT0gTmV0d29ya0Vycm9yQ2FuY2VsbGVkOwogfQogCiBFd2tfRXJyb3JfVHlwZSBld2tfZXJy
b3JfdHlwZV9nZXQoY29uc3QgRXdrX0Vycm9yKiBlcnJvcikKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoZXJyb3IsIEVXS19FUlJPUl9UWVBFX05PTkUpOwogCi0gICAgU3Ry
aW5nIGVycm9yRG9tYWluID0gZXJyb3ItPmRvbWFpbigpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB3a0Vycm9yRG9tYWluID0gZXJyb3ItPmRvbWFpbigpOwogCi0gICAgaWYgKGVycm9y
RG9tYWluID09IGVycm9yRG9tYWluTmV0d29yaykKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyh3a0Vycm9yRG9tYWluLmdldCgpLCBlcnJvckRvbWFpbk5ldHdvcmspKQogICAg
ICAgICByZXR1cm4gRVdLX0VSUk9SX1RZUEVfTkVUV09SSzsKLSAgICBpZiAoZXJyb3JEb21haW4g
PT0gZXJyb3JEb21haW5Qb2xpY3kpCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcod2tFcnJvckRvbWFpbi5nZXQoKSwgZXJyb3JEb21haW5Qb2xpY3kpKQogICAgICAgICByZXR1
cm4gRVdLX0VSUk9SX1RZUEVfUE9MSUNZOwotICAgIGlmIChlcnJvckRvbWFpbiA9PSBlcnJvckRv
bWFpblBsdWdpbikKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyh3a0Vycm9y
RG9tYWluLmdldCgpLCBlcnJvckRvbWFpblBsdWdpbikpCiAgICAgICAgIHJldHVybiBFV0tfRVJS
T1JfVFlQRV9QTFVHSU47Ci0gICAgaWYgKGVycm9yRG9tYWluID09IGVycm9yRG9tYWluRG93bmxv
YWQpCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcod2tFcnJvckRvbWFpbi5n
ZXQoKSwgZXJyb3JEb21haW5Eb3dubG9hZCkpCiAgICAgICAgIHJldHVybiBFV0tfRVJST1JfVFlQ
RV9ET1dOTE9BRDsKLSAgICBpZiAoZXJyb3JEb21haW4gPT0gZXJyb3JEb21haW5QcmludCkKKyAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyh3a0Vycm9yRG9tYWluLmdldCgpLCBl
cnJvckRvbWFpblByaW50KSkKICAgICAgICAgcmV0dXJuIEVXS19FUlJPUl9UWVBFX1BSSU5UOwor
CiAgICAgcmV0dXJuIEVXS19FUlJPUl9UWVBFX0lOVEVSTkFMOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaAppbmRleCAw
YTM4NzNiLi4zNzczOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19lcnJvcl9wcml2YXRlLmgKQEAgLTI3LDEwICsyNyw5IEBACiAjZGVmaW5lIGV3
a19lcnJvcl9wcml2YXRlX2gKIAogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2lu
Y2x1ZGUgPFdLRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUg
PFdLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogY2xhc3MgRXdrRXJyb3IgewogcHVibGljOgpAQCAtNDQs
NyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdDsKICAgICBj
b25zdCBjaGFyKiBkZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIFN0cmluZyBkb21haW4oKSBjb25z
dDsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZG9tYWluKCkgY29uc3Q7CiAgICAgaW50
IGVycm9yQ29kZSgpIGNvbnN0OwogICAgIGJvb2wgaXNDYW5jZWxsYXRpb24oKSBjb25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186414</attachid>
            <date>2013-02-04 10:22:52 -0800</date>
            <delta_ts>2013-02-18 22:59:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108796_wkerroriscancellation.patch</filename>
            <type>text/plain</type>
            <size>3932</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2YjJhNjYxLi5iOWUzOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMDItMDQgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNAZ21haWwuY29tPgorCisg
ICAgICAgIFtXSzJdW0VGTF0gU3RvcCB1c2luZyBpbnRlcm5hbCBDKysgQVBJIGluIGV3a19lcnJv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Nzk2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1
c2luZyBpbnRlcm5hbCBDKysgQVBJIGluIGV3a19lcnJvciBhbmQgdXNlIEMgQVBJIGluc3RlYWQg
b2YgYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXllcmluZy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHA6CisgICAgICAgIChFd2tFcnJvcjo6ZG9tYWlu
KToKKyAgICAgICAgKEV3a0Vycm9yOjppc0NhbmNlbGxhdGlvbik6CisgICAgICAgIChld2tfZXJy
b3JfdHlwZV9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvcl9wcml2
YXRlLmg6CisgICAgICAgIChFd2tFcnJvcik6CisKIDIwMTMtMDItMDQgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3J0IFdlYktpdDIgWGNvZGUgcHJvamVj
dCBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNw
cAppbmRleCBjYjlkNjhlLi4yOTAzMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTI3LDE0ICsyNywxMiBAQAogI2luY2x1ZGUgImV3
a19lcnJvci5oIgogCiAjaW5jbHVkZSAiRXJyb3JzRWZsLmgiCisjaW5jbHVkZSAiV0tFcnJvci5o
IgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJl
d2tfZXJyb3JfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdLQVBJQ2FzdC5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCiBFd2tFcnJvcjo6RXdrRXJyb3IoV0tFcnJvclJlZiBlcnJvclJlZikK
ICAgICA6IG1fd2tFcnJvcihlcnJvclJlZikKQEAgLTUyLDEwICs1MCw5IEBAIGNvbnN0IGNoYXIq
IEV3a0Vycm9yOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVzY3JpcHRpb247
CiB9CiAKLVN0cmluZyBFd2tFcnJvcjo6ZG9tYWluKCkgY29uc3QKK1dLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBFd2tFcnJvcjo6ZG9tYWluKCkgY29uc3QKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gd2tEb21haW4oQWRvcHRXSywgV0tFcnJvckNvcHlEb21haW4obV93a0Vycm9yLmdl
dCgpKSk7Ci0gICAgcmV0dXJuIHRvV1RGU3RyaW5nKHdrRG9tYWluLmdldCgpKTsKKyAgICByZXR1
cm4gYWRvcHRXSyhXS0Vycm9yQ29weURvbWFpbihtX3drRXJyb3IuZ2V0KCkpKTsKIH0KIAogaW50
IEV3a0Vycm9yOjplcnJvckNvZGUoKSBjb25zdApAQCAtNjUsMjUgKzYyLDI2IEBAIGludCBFd2tF
cnJvcjo6ZXJyb3JDb2RlKCkgY29uc3QKIAogYm9vbCBFd2tFcnJvcjo6aXNDYW5jZWxsYXRpb24o
KSBjb25zdAogewotICAgIHJldHVybiB0b0ltcGwobV93a0Vycm9yLmdldCgpKS0+cGxhdGZvcm1F
cnJvcigpLmlzQ2FuY2VsbGF0aW9uKCk7CisgICAgcmV0dXJuIFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoZG9tYWluKCkuZ2V0KCksIGVycm9yRG9tYWluTmV0d29yaykgJiYgZXJyb3JDb2Rl
KCkgPT0gTmV0d29ya0Vycm9yQ2FuY2VsbGVkOwogfQogCiBFd2tfRXJyb3JfVHlwZSBld2tfZXJy
b3JfdHlwZV9nZXQoY29uc3QgRXdrX0Vycm9yKiBlcnJvcikKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoZXJyb3IsIEVXS19FUlJPUl9UWVBFX05PTkUpOwogCi0gICAgU3Ry
aW5nIGVycm9yRG9tYWluID0gZXJyb3ItPmRvbWFpbigpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB3a0Vycm9yRG9tYWluID0gZXJyb3ItPmRvbWFpbigpOwogCi0gICAgaWYgKGVycm9y
RG9tYWluID09IGVycm9yRG9tYWluTmV0d29yaykKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyh3a0Vycm9yRG9tYWluLmdldCgpLCBlcnJvckRvbWFpbk5ldHdvcmspKQogICAg
ICAgICByZXR1cm4gRVdLX0VSUk9SX1RZUEVfTkVUV09SSzsKLSAgICBpZiAoZXJyb3JEb21haW4g
PT0gZXJyb3JEb21haW5Qb2xpY3kpCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcod2tFcnJvckRvbWFpbi5nZXQoKSwgZXJyb3JEb21haW5Qb2xpY3kpKQogICAgICAgICByZXR1
cm4gRVdLX0VSUk9SX1RZUEVfUE9MSUNZOwotICAgIGlmIChlcnJvckRvbWFpbiA9PSBlcnJvckRv
bWFpblBsdWdpbikKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyh3a0Vycm9y
RG9tYWluLmdldCgpLCBlcnJvckRvbWFpblBsdWdpbikpCiAgICAgICAgIHJldHVybiBFV0tfRVJS
T1JfVFlQRV9QTFVHSU47Ci0gICAgaWYgKGVycm9yRG9tYWluID09IGVycm9yRG9tYWluRG93bmxv
YWQpCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcod2tFcnJvckRvbWFpbi5n
ZXQoKSwgZXJyb3JEb21haW5Eb3dubG9hZCkpCiAgICAgICAgIHJldHVybiBFV0tfRVJST1JfVFlQ
RV9ET1dOTE9BRDsKLSAgICBpZiAoZXJyb3JEb21haW4gPT0gZXJyb3JEb21haW5QcmludCkKKyAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyh3a0Vycm9yRG9tYWluLmdldCgpLCBl
cnJvckRvbWFpblByaW50KSkKICAgICAgICAgcmV0dXJuIEVXS19FUlJPUl9UWVBFX1BSSU5UOwor
CiAgICAgcmV0dXJuIEVXS19FUlJPUl9UWVBFX0lOVEVSTkFMOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaAppbmRleCAw
YTM4NzNiLi41NDY4MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19lcnJvcl9wcml2YXRlLmgKQEAgLTI3LDEwICsyNyw5IEBACiAjZGVmaW5lIGV3
a19lcnJvcl9wcml2YXRlX2gKIAogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2lu
Y2x1ZGUgPFdLRXJyb3IuaD4KICNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogY2xhc3MgRXdrRXJyb3IgewogcHVibGljOgpAQCAtNDQs
NyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdDsKICAgICBj
b25zdCBjaGFyKiBkZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIFN0cmluZyBkb21haW4oKSBjb25z
dDsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZG9tYWluKCkgY29uc3Q7CiAgICAgaW50
IGVycm9yQ29kZSgpIGNvbnN0OwogICAgIGJvb2wgaXNDYW5jZWxsYXRpb24oKSBjb25zdDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>