<?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>38195</bug_id>
          
          <creation_ts>2010-04-27 06:39:08 -0700</creation_ts>
          <short_desc>Bring CLIENT_BASED_GEOLOCATION more in line with non-client based: remove Geolocation::setPosition and use lastPosition()</short_desc>
          <delta_ts>2010-05-12 01:44:04 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Marcus Bulach">bulach</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bulach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217671</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-04-27 06:39:08 -0700</bug_when>
    <thetext>Non-client based geolocation uses &quot;lastPosition()&quot; rather than storing via &quot;setPosition()&quot;.
Client-based should have a similar mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217673</commentid>
    <comment_count>1</comment_count>
      <attachid>54413</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-04-27 06:45:42 -0700</bug_when>
    <thetext>Created attachment 54413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217681</commentid>
    <comment_count>2</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-04-27 07:06:16 -0700</bug_when>
    <thetext>Hi Steve,

This is a follow up on https://bugs.webkit.org/show_bug.cgi?id=36315, thanks for the clarification!

Would you mind taking a look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217870</commentid>
    <comment_count>3</comment_count>
      <attachid>54413</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-27 13:00:46 -0700</bug_when>
    <thetext>Comment on attachment 54413
Patch

The whitespace changes in the patch are far larger than the substance of the patch.

Does this change behavior? Is there a way to test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219499</commentid>
    <comment_count>4</comment_count>
      <attachid>54413</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-04-30 08:55:15 -0700</bug_when>
    <thetext>Comment on attachment 54413
Patch

&gt; - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
I think it&apos;s best to leave the whitespace changes out of this patch for clarity.

&gt; +    if (m_lastPosition.get())
&gt; +        return m_lastPosition.get();
Is this caching required for correct behaviour or is it just an optimisation? GeolocationController::lastPosition() should only be called once the client has called GeolocationController::positionChanged(), and it seems that the client should always have a last position available by this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220688</commentid>
    <comment_count>5</comment_count>
      <attachid>55031</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-04 11:40:45 -0700</bug_when>
    <thetext>Created attachment 55031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220692</commentid>
    <comment_count>6</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-04 11:44:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 54413 [details])
&gt; The whitespace changes in the patch are far larger than the substance of the
&gt; patch.

yep, sorry about that: my editor insisted in removing all trailing ws. :(
the latest patch is less invasive.

&gt; 
&gt; Does this change behavior? Is there a way to test this?
it&apos;s just a minor refactoring as suggested by Steve at https://bugs.webkit.org/show_bug.cgi?id=36315
there should be no changes in behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220694</commentid>
    <comment_count>7</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-04 11:48:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 54413 [details])
&gt; &gt; - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
&gt; &gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; I think it&apos;s best to leave the whitespace changes out of this patch for
&gt; clarity.
yep, reverted the ws changes.

&gt; 
&gt; &gt; +    if (m_lastPosition.get())
&gt; &gt; +        return m_lastPosition.get();
&gt; Is this caching required for correct behaviour or is it just an optimisation?
&gt; GeolocationController::lastPosition() should only be called once the client has
&gt; called GeolocationController::positionChanged(), and it seems that the client
&gt; should always have a last position available by this time.

AFAICT GeolocationController::m_client is optional, which means we need to hold on the position passed via the public method GeolocationController::positionChanged(GeolocationPosition* position), that is, this method may be called directly without a client.

I&apos;m not entirely familiar with this part, so please, let me know if I&apos;m wrong, or who else could help taking a look at it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224476</commentid>
    <comment_count>8</comment_count>
      <attachid>55031</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-12 01:43:59 -0700</bug_when>
    <thetext>Comment on attachment 55031
Patch

Clearing flags on attachment: 55031

Committed r59216: &lt;http://trac.webkit.org/changeset/59216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224477</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-12 01:44:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54413</attachid>
            <date>2010-04-27 06:45:42 -0700</date>
            <delta_ts>2010-05-04 11:40:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38195-20100427144541.patch</filename>
            <type>text/plain</type>
            <size>13229</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2Y1ZDNmMjA0OTQzZDJkZDI5MzQ5NzNhODk4NTU1Nzg2Zjk0NDVlMS4uNzU5ZjE1YTc2Mzc1OTUw
MGIzZDczZjZkYWJkYTI2NjRiODEzYzg2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNC0yNyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBHZW9sb2NhdGlvbjo6c2V0UG9zaXRp
b24gYW5kIHVzZXMgcG9zaXRpb25DaGFuZ2VkKCkgdG8gY2FwdHVyZSBsYXN0UG9zaXRpb24oKS4K
KyAgICAgICAgVGhpcyBicmluZ3MgQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIG1vcmUgaW5saW5l
IHdpdGggdGhlIG5vbi1jbGllbnQgYmFzZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTk1CisKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb3Bvc2l0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6
Y2xlYXJXYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6c3RvcFRpbWVyc0Zvck9uZVNob3RzKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzdG9wVGltZXJzRm9yV2F0Y2hlcnMpOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpy
ZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRp
b25DaGFuZ2VkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Om1ha2VT
dWNjZXNzQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpwb3NpdGlv
bkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2Vy
dmljZVBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOgorICAgICAgICAqIHBh
Z2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0
aW9uQ29udHJvbGxlcjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5oOgorCiAyMDEwLTA0LTI3ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uY3BwCmluZGV4IGZjYTk5N2YwYjdjZDhiMjU1MDRhMDhlZTIwZWY5NWU5ZTQ0YWQ5Nzcu
LjFmNTU5NzMxZmZjOTJkMGJjNzQ0M2FhMjQ3OTNmMTJmZDU1YWQ0MTAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmNwcApAQCAtMjIsNyArMjIsNyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCkBAIC01NCw4ICs1NCw4IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEdlb3Bvc2l0aW9u
PiBjcmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKICAg
ICBpZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBSZWZQdHI8Q29v
cmRpbmF0ZXM+IGNvb3JkaW5hdGVzID0gQ29vcmRpbmF0ZXM6OmNyZWF0ZShwb3NpdGlvbi0+bGF0
aXR1ZGUoKSwgcG9zaXRpb24tPmxvbmdpdHVkZSgpLCBwb3NpdGlvbi0+Y2FuUHJvdmlkZUFsdGl0
dWRlKCksIHBvc2l0aW9uLT5hbHRpdHVkZSgpLCAKKworICAgIFJlZlB0cjxDb29yZGluYXRlcz4g
Y29vcmRpbmF0ZXMgPSBDb29yZGluYXRlczo6Y3JlYXRlKHBvc2l0aW9uLT5sYXRpdHVkZSgpLCBw
b3NpdGlvbi0+bG9uZ2l0dWRlKCksIHBvc2l0aW9uLT5jYW5Qcm92aWRlQWx0aXR1ZGUoKSwgcG9z
aXRpb24tPmFsdGl0dWRlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24tPmFjY3VyYWN5KCksIHBvc2l0aW9uLT5jYW5Q
cm92aWRlQWx0aXR1ZGVBY2N1cmFjeSgpLCBwb3NpdGlvbi0+YWx0aXR1ZGVBY2N1cmFjeSgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvc2l0aW9uLT5jYW5Qcm92aWRlSGVhZGluZygpLCBwb3NpdGlvbi0+aGVhZGluZygpLCBwb3Np
dGlvbi0+Y2FuUHJvdmlkZVNwZWVkKCksIHBvc2l0aW9uLT5zcGVlZCgpKTsKICAgICByZXR1cm4g
R2VvcG9zaXRpb246OmNyZWF0ZShjb29yZGluYXRlcy5yZWxlYXNlKCksIHBvc2l0aW9uLT50aW1l
c3RhbXAoKSk7CkBAIC0yMzAsOCArMjMwLDYgQEAgdm9pZCBHZW9sb2NhdGlvbjo6ZGlzY29ubmVj
dEZyYW1lKCkKIAogR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewot
ICAgIEFTU0VSVChpc0FsbG93ZWQoKSk7Ci0KICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yODMsNyAr
MjgxLDcgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI+IEdlb2xvY2F0aW9u
OjpzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxQb3NpdGkKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQogICAgICAgICAvLyBPbmx5IHN0YXJ0IHRpbWVyIGlmIHdlJ3JlIG5vdCB3
YWl0aW5nIGZvciB1c2VyIHBlcm1pc3Npb24uCiAgICAgICAgIGlmICghbV9zdGFydFJlcXVlc3RQ
ZXJtaXNzaW9uTm90aWZpZXIpCi0jZW5kaWYgICAgICAgICAgICAKKyNlbmRpZgogICAgICAgICAg
ICAgbm90aWZpZXItPnN0YXJ0VGltZXJJZk5lZWRlZCgpOwogICAgIH0gZWxzZQogICAgICAgICBu
b3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJv
cjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdl
KSk7CkBAIC0zNzQsNyArMzcyLDcgQEAgYm9vbCBHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2Fj
aGVkUG9zaXRpb24oUG9zaXRpb25PcHRpb25zKiBvcHRpb25zKQogdm9pZCBHZW9sb2NhdGlvbjo6
Y2xlYXJXYXRjaChpbnQgd2F0Y2hJZCkKIHsKICAgICBtX3dhdGNoZXJzLnJlbW92ZSh3YXRjaElk
KTsKLSAgICAKKwogICAgIGlmICghaGFzTGlzdGVuZXJzKCkpCiAgICAgICAgIHN0b3BVcGRhdGlu
ZygpOwogfQpAQCAtNDAwLDcgKzM5OCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dl
ZChib29sIGFsbG93ZWQpCiAgICAgLy8gVGhpcyBtYXkgYmUgZHVlIHRvIGVpdGhlciBhIG5ldyBw
b3NpdGlvbiBmcm9tIHRoZSBzZXJ2aWNlLCBvciBhIGNhY2hlZAogICAgIC8vIHBvc2l0aW9uLgog
ICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IGFsbG93ZWQgPyBZZXMgOiBObzsKLSAgICAKKwogI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKG1fc3RhcnRSZXF1ZXN0
UGVybWlzc2lvbk5vdGlmaWVyKSB7CiAgICAgICAgIGlmIChpc0FsbG93ZWQoKSkgewpAQCAtNDQ0
LDcgKzQ0Miw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihWZWN0b3I8UmVmUHRyPEdl
b05vdGlmaWVyPiA+JiBub3RpZmllcnMsIFBvc2l0aW9uRXJyCiAgICAgIFZlY3RvcjxSZWZQdHI8
R2VvTm90aWZpZXI+ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG5vdGlmaWVycy5lbmQoKTsKICAg
ICAgZm9yIChWZWN0b3I8UmVmUHRyPEdlb05vdGlmaWVyPiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9
IG5vdGlmaWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgIFJlZlB0cjxH
ZW9Ob3RpZmllcj4gbm90aWZpZXIgPSAqaXQ7Ci0gICAgICAgICAKKwogICAgICAgICAgaWYgKG5v
dGlmaWVyLT5tX2Vycm9yQ2FsbGJhY2spCiAgICAgICAgICAgICAgbm90aWZpZXItPm1fZXJyb3JD
YWxsYmFjay0+aGFuZGxlRXZlbnQoZXJyb3IpOwogICAgICB9CkBAIC00NTYsNyArNDU0LDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0aW9uKFZlY3RvcjxSZWZQdHI8R2VvTm90aWZpZXI+
ID4mIG5vdGlmaWVycywgR2VvcG9zaXQKICAgICBmb3IgKFZlY3RvcjxSZWZQdHI8R2VvTm90aWZp
ZXI+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbm90aWZpZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgewogICAgICAgICBSZWZQdHI8R2VvTm90aWZpZXI+IG5vdGlmaWVyID0gKml0OwogICAg
ICAgICBBU1NFUlQobm90aWZpZXItPm1fc3VjY2Vzc0NhbGxiYWNrKTsKLSAgICAgICAgCisKICAg
ICAgICAgbm90aWZpZXItPm1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7
CiAgICAgfQogfQpAQCAtNDc0LDcgKzQ3Miw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnN0b3BUaW1l
cnNGb3JPbmVTaG90cygpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4gPiBjb3B5
OwogICAgIGNvcHlUb1ZlY3RvcihtX29uZVNob3RzLCBjb3B5KTsKLSAgICAKKwogICAgIHN0b3BU
aW1lcihjb3B5KTsKIH0KIApAQCAtNDgyLDcgKzQ4MCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnN0
b3BUaW1lcnNGb3JXYXRjaGVycygpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4g
PiBjb3B5OwogICAgIG1fd2F0Y2hlcnMuZ2V0Tm90aWZpZXJzVmVjdG9yKGNvcHkpOwotICAgIAor
CiAgICAgc3RvcFRpbWVyKGNvcHkpOwogfQogCkBAIC00OTUsNyArNDkzLDcgQEAgdm9pZCBHZW9s
b2NhdGlvbjo6c3RvcFRpbWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3Np
dGlvbkVycm9yKiBlcnJvcikKIHsKICAgICBBU1NFUlQoZXJyb3IpOwotICAgIAorCiAgICAgVmVj
dG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4gPiBvbmVTaG90c0NvcHk7CiAgICAgY29weVRvVmVjdG9y
KG1fb25lU2hvdHMsIG9uZVNob3RzQ29weSk7CiAKQEAgLTUyMywyNCArNTIxLDI0IEBAIHZvaWQg
R2VvbG9jYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKCkKIAogICAgIGlmICghbV9mcmFtZSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsK
ICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fYWxsb3dHZW9s
b2NhdGlvbiA9IEluUHJvZ3Jlc3M7CiAKICAgICAvLyBBc2sgdGhlIGNocm9tZTogaXQgbWFpbnRh
aW5zIHRoZSBnZW9sb2NhdGlvbiBjaGFsbGVuZ2UgcG9saWN5IGl0c2VsZi4KICAgICBwYWdlLT5j
aHJvbWUoKS0+cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKG1fZnJhbWUsIHRo
aXMpOwogfQogCi12b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoUGFzc1JlZlB0cjxH
ZW9wb3NpdGlvbj4gbmV3UG9zaXRpb24pCit2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5n
ZWRJbnRlcm5hbCgpCiB7Ci0gICAgbV9wb3NpdGlvbkNhY2hlLT5zZXRDYWNoZWRQb3NpdGlvbihu
ZXdQb3NpdGlvbi5nZXQoKSk7CisgICAgbV9wb3NpdGlvbkNhY2hlLT5zZXRDYWNoZWRQb3NpdGlv
bihsYXN0UG9zaXRpb24oKSk7CiAKICAgICAvLyBTdG9wIGFsbCBjdXJyZW50bHkgcnVubmluZyB0
aW1lcnMuCiAgICAgc3RvcFRpbWVycygpOwotICAgIAorCiAgICAgaWYgKCFpc0FsbG93ZWQoKSkg
ewogICAgICAgICAvLyByZXF1ZXN0UGVybWlzc2lvbigpIHdpbGwgYXNrIHRoZSBjaHJvbWUgZm9y
IHBlcm1pc3Npb24uIFRoaXMgbWF5IGJlCiAgICAgICAgIC8vIGltcGxlbWVudGVkIHN5bmNocm9u
b3VzbHkgb3IgYXN5bmNocm9ub3VzbHkuIEluIGJvdGggY2FzZXMsCkBAIC01NTcsMTMgKzU1NSwx
MyBAQCB2b2lkIEdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcygpCiB7CiAgICAgQVNT
RVJUKGxhc3RQb3NpdGlvbigpKTsKICAgICBBU1NFUlQoaXNBbGxvd2VkKCkpOwotICAgIAorCiAg
ICAgVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4gPiBvbmVTaG90c0NvcHk7CiAgICAgY29weVRv
VmVjdG9yKG1fb25lU2hvdHMsIG9uZVNob3RzQ29weSk7Ci0gICAgCisKICAgICBWZWN0b3I8UmVm
UHRyPEdlb05vdGlmaWVyPiA+IHdhdGNoZXJzQ29weTsKICAgICBtX3dhdGNoZXJzLmdldE5vdGlm
aWVyc1ZlY3Rvcih3YXRjaGVyc0NvcHkpOwotICAgIAorCiAgICAgLy8gQ2xlYXIgdGhlIGxpc3Rz
IGJlZm9yZSB3ZSBtYWtlIHRoZSBjYWxsYmFja3MsIHRvIGF2b2lkIGNsZWFyaW5nIG5vdGlmaWVy
cwogICAgIC8vIGFkZGVkIGJ5IGNhbGxzIHRvIEdlb2xvY2F0aW9uIG1ldGhvZHMgZnJvbSB0aGUg
Y2FsbGJhY2tzLCBhbmQgdG8gcHJldmVudAogICAgIC8vIGZ1cnRoZXIgY2FsbGJhY2tzIHRvIHRo
ZXNlIG5vdGlmaWVycy4KQEAgLTU3OCw5ICs1NzYsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjptYWtl
U3VjY2Vzc0NhbGxiYWNrcygpCiAKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogCi12b2lkIEdlb2xvY2F0aW9uOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKiBw
b3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgcG9z
aXRpb25DaGFuZ2VkKGNyZWF0ZUdlb3Bvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgcG9zaXRpb25D
aGFuZ2VkSW50ZXJuYWwoKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6c2V0RXJyb3IoR2VvbG9j
YXRpb25FcnJvciogZXJyb3IpCkBAIC01OTYsNyArNTk0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6
Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSogc2Vy
dmljZSkKICAgICBBU1NFUlRfVU5VU0VEKHNlcnZpY2UsIHNlcnZpY2UgPT0gbV9zZXJ2aWNlKTsK
ICAgICBBU1NFUlQobV9zZXJ2aWNlLT5sYXN0UG9zaXRpb24oKSk7CiAKLSAgICBwb3NpdGlvbkNo
YW5nZWQobV9zZXJ2aWNlLT5sYXN0UG9zaXRpb24oKSk7CisgICAgcG9zaXRpb25DaGFuZ2VkSW50
ZXJuYWwoKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JP
Y2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNlcnZpY2UpCkBAIC02MjEsNyArNjE5LDcgQEAg
Ym9vbCBHZW9sb2NhdGlvbjo6c3RhcnRVcGRhdGluZyhHZW9Ob3RpZmllciogbm90aWZpZXIpCiAg
ICAgICAgIHJlcXVlc3RQZXJtaXNzaW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
LSAgICAKKwogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC02
NjgsNSArNjY2LDUgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpIHt9CiB2b2lkIEdlb2xv
Y2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCkge30KIAogfQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwogI2VuZGlmIC8vIEVOQUJMRShH
RU9MT0NBVElPTikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oIGIvV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKaW5kZXggMWI1ZWI2ZjVkM2I0YzZiY2MzZDY3ZDI0NmU0
N2ZjOWUzY2ZhZjY5Yy4uZTA4ZGRlNzM4MzFiM2E4YjVkYzJhNmIxOTg3NDk1NjViYjZiNGMxMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uLmgKQEAgLTIxLDcgKzIxLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAog
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAog
I2lmbmRlZiBHZW9sb2NhdGlvbl9oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+R2Vv
bG9jYXRpb24oKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7Ci0gICAgCisKICAgICB2
b2lkIGdldEN1cnJlbnRQb3NpdGlvbihQYXNzUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UG9zaXRpb25PcHRpb25z
Pik7CiAgICAgaW50IHdhdGNoUG9zaXRpb24oUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiwg
UGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0
aW9ucz4pOwogICAgIHZvaWQgY2xlYXJXYXRjaChpbnQgd2F0Y2hJZCk7CkBAIC02OSw3ICs2OSw3
IEBAIHB1YmxpYzoKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9
CiAKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgIHZvaWQgc2V0UG9z
aXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiopOworICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7
CiAgICAgdm9pZCBzZXRFcnJvcihHZW9sb2NhdGlvbkVycm9yKik7CiAjZWxzZQogICAgIEdlb2xv
Y2F0aW9uU2VydmljZSogZ2V0R2VvbG9jYXRpb25TZXJ2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXJ2aWNlLmdldCgpOyB9CkBAIC04MCwyMCArODAsMjAgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
aXNBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd0dlb2xvY2F0aW9uID09IFllczsgfQog
ICAgIGJvb2wgaXNEZW5pZWQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0g
Tm87IH0KLSAgICAKKwogICAgIEdlb2xvY2F0aW9uKEZyYW1lKik7CiAKICAgICBjbGFzcyBHZW9O
b3RpZmllciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb05vdGlmaWVyPiB7CiAgICAgcHVibGljOgog
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4gY3JlYXRlKEdlb2xvY2F0aW9u
KiBnZW9sb2NhdGlvbiwgUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBwb3NpdGlvbkNhbGxi
YWNrLCBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gcG9zaXRpb25FcnJvckNhbGxi
YWNrLCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4gb3B0aW9ucykgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEdlb05vdGlmaWVyKGdlb2xvY2F0aW9uLCBwb3NpdGlvbkNhbGxiYWNrLCBwb3NpdGlv
bkVycm9yQ2FsbGJhY2ssIG9wdGlvbnMpKTsgfQotICAgICAgICAKKwogICAgICAgICB2b2lkIHNl
dEZhdGFsRXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yPik7CiAgICAgICAgIGJvb2wgaGFz
WmVyb1RpbWVvdXQoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3NpdGlvbigp
OwogICAgICAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9wb3NpdGlvbiopOwogICAgICAg
ICB2b2lkIHN0YXJ0VGltZXJJZk5lZWRlZCgpOwogICAgICAgICB2b2lkIHRpbWVyRmlyZWQoVGlt
ZXI8R2VvTm90aWZpZXI+Kik7Ci0gICAgICAgIAorCiAgICAgICAgIEdlb2xvY2F0aW9uKiBtX2dl
b2xvY2F0aW9uOwogICAgICAgICBSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4gbV9zdWNjZXNzQ2Fs
bGJhY2s7CiAgICAgICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxs
YmFjazsKQEAgLTEyNiwxMyArMTI2LDEzIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNlbmRFcnJv
cihWZWN0b3I8UmVmUHRyPEdlb05vdGlmaWVyPiA+JiwgUG9zaXRpb25FcnJvciopOwogICAgIHZv
aWQgc2VuZFBvc2l0aW9uKFZlY3RvcjxSZWZQdHI8R2VvTm90aWZpZXI+ID4mLCBHZW9wb3NpdGlv
biopOwotICAgIAorCiAgICAgc3RhdGljIHZvaWQgc3RvcFRpbWVyKFZlY3RvcjxSZWZQdHI8R2Vv
Tm90aWZpZXI+ID4mKTsKICAgICB2b2lkIHN0b3BUaW1lcnNGb3JPbmVTaG90cygpOwogICAgIHZv
aWQgc3RvcFRpbWVyc0ZvcldhdGNoZXJzKCk7CiAgICAgdm9pZCBzdG9wVGltZXJzKCk7Ci0gICAg
Ci0gICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQoUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4pOworCisg
ICAgdm9pZCBwb3NpdGlvbkNoYW5nZWRJbnRlcm5hbCgpOwogICAgIHZvaWQgbWFrZVN1Y2Nlc3ND
YWxsYmFja3MoKTsKICAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3IqKTsKIApAQCAt
MTU2LDcgKzE1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlQ2FjaGVkUG9zaXRpb25DYWxs
YmFja3MoKTsKIAogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8R2VvTm90aWZpZXI+ID4gR2Vv
Tm90aWZpZXJTZXQ7Ci0gICAgCisKICAgICBHZW9Ob3RpZmllclNldCBtX29uZVNob3RzOwogICAg
IFdhdGNoZXJzIG1fd2F0Y2hlcnM7CiAgICAgRnJhbWUqIG1fZnJhbWU7CkBAIC0xNzksNyArMTc5
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIEdlb05vdGlmaWVyU2V0IG1fcmVxdWVzdHNBd2Fp
dGluZ0NhY2hlZFBvc2l0aW9uOwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gR2VvbG9jYXRpb25faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcAppbmRleCBmZDE4YjQ1MDI3YTMxOGZhNGExY2NhMzMwZjc0YjRjZTNiNzE1ZGNmLi4zODEy
NzMwNmU2Y2M5Y2Y2ZTg2NGZmODgyNGVjZTEyM2NlNzk5ZjFjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb25Db250cm9sbGVyLmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25Qb3NpdGlvbi5oIgogCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
IApAQCAtNjYsMTAgKzY3LDExIEBAIHZvaWQgR2VvbG9jYXRpb25Db250cm9sbGVyOjpyZW1vdmVP
YnNlcnZlcihHZW9sb2NhdGlvbiogb2JzZXJ2ZXIpCiAKIHZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRpb24pCiB7Cisg
ICAgbV9sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICBWZWN0b3I8UmVmUHRyPEdlb2xvY2F0
aW9uPiA+IG9ic2VydmVyc1ZlY3RvcjsKICAgICBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMsIG9i
c2VydmVyc1ZlY3Rvcik7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYnNlcnZlcnNWZWN0
b3Iuc2l6ZSgpOyArK2kpCi0gICAgICAgIG9ic2VydmVyc1ZlY3RvcltpXS0+c2V0UG9zaXRpb24o
cG9zaXRpb24pOworICAgICAgICBvYnNlcnZlcnNWZWN0b3JbaV0tPnBvc2l0aW9uQ2hhbmdlZCgp
OwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2Nh
dGlvbkVycm9yKiBlcnJvcikKQEAgLTgyLDYgKzg0LDkgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRy
b2xsZXI6OmVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25FcnJvciogZXJyb3IpCiAKIEdlb2xvY2F0
aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9uKCkKIHsKKyAg
ICBpZiAobV9sYXN0UG9zaXRpb24uZ2V0KCkpCisgICAgICAgIHJldHVybiBtX2xhc3RQb3NpdGlv
bi5nZXQoKTsKKwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmggYi9XZWJDb3JlL3Bh
Z2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggODBmOWNhODk1NjhlYjIxYjEzMTIxMTg3
N2NjMWI1NTRkNmY1NzdjOC4uYmIzNjEwMWQ5NDZiNGUwMGUyYmZmOWE1MjkzNGY4NjQzMWE0Nzcz
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCisrKyBi
L1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApAQCAtNTcsNiArNTcsNyBAQCBw
cml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnQqIG1fY2xpZW50OwogCisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IG1fbGFzdFBv
c2l0aW9uOwogICAgIEhhc2hTZXQ8UmVmUHRyPEdlb2xvY2F0aW9uPiA+IG1fb2JzZXJ2ZXJzOwog
fTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55031</attachid>
            <date>2010-05-04 11:40:45 -0700</date>
            <delta_ts>2010-05-12 01:43:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38195-20100504194044.patch</filename>
            <type>text/plain</type>
            <size>5934</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDljZDZmMzI5MGY4ZmUwODNjZDhjZjllMzdhMjU3NTFlNDQyYWIyMy4uMGE2NGRkNjM0NzhmNzI4
OGE0NmRlMWJiODU0NzQzMjc0MTFmZDQ2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNS0wNCAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBHZW9sb2NhdGlvbjo6c2V0UG9zaXRp
b24gYW5kIHVzZXMgcG9zaXRpb25DaGFuZ2VkKCkgdG8gY2FwdHVyZSBsYXN0UG9zaXRpb24oKS4K
KyAgICAgICAgVGhpcyBicmluZ3MgQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIG1vcmUgaW5saW5l
IHdpdGggdGhlIG5vbi1jbGllbnQgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zODE5NQorCisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKiBwYWdlL0dlb2xvY2F0aW9uLmg6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpwb3Np
dGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjps
YXN0UG9zaXRpb24pOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmg6CisK
IDIwMTAtMDUtMDQgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIHNvcnQgb2YgWENvZGVzIHByb2plY3QgZmlsZS4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCmlu
ZGV4IDNiZmViYzhjZWFlMDEzZDA4OWNkNDYyYzRiZjYxZjkwMmNlY2IzNDUuLmQzZTExNDY1MTQy
OWUxZDM0NzI3MjZkMDg3ODgyZDY4ODBiMDkyYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9H
ZW9sb2NhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcApAQCAtMjMw
LDggKzIzMCw2IEBAIHZvaWQgR2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSgpCiAKIEdlb3Bv
c2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkKIHsKLSAgICBBU1NFUlQoaXNBbGxv
d2VkKCkpOwotCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAo
IW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTIzLDI0ICs1MjEsMjQgQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oKQogCiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm47Ci0gICAgCisKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwog
ICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbV9hbGxvd0dlb2xv
Y2F0aW9uID0gSW5Qcm9ncmVzczsKIAogICAgIC8vIEFzayB0aGUgY2hyb21lOiBpdCBtYWludGFp
bnMgdGhlIGdlb2xvY2F0aW9uIGNoYWxsZW5nZSBwb2xpY3kgaXRzZWxmLgogICAgIHBhZ2UtPmNo
cm9tZSgpLT5yZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUobV9mcmFtZSwgdGhp
cyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZChQYXNzUmVmUHRyPEdl
b3Bvc2l0aW9uPiBuZXdQb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdl
ZEludGVybmFsKCkKIHsKLSAgICBtX3Bvc2l0aW9uQ2FjaGUtPnNldENhY2hlZFBvc2l0aW9uKG5l
d1Bvc2l0aW9uLmdldCgpKTsKKyAgICBtX3Bvc2l0aW9uQ2FjaGUtPnNldENhY2hlZFBvc2l0aW9u
KGxhc3RQb3NpdGlvbigpKTsKIAogICAgIC8vIFN0b3AgYWxsIGN1cnJlbnRseSBydW5uaW5nIHRp
bWVycy4KICAgICBzdG9wVGltZXJzKCk7Ci0gICAgCisKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7
CiAgICAgICAgIC8vIHJlcXVlc3RQZXJtaXNzaW9uKCkgd2lsbCBhc2sgdGhlIGNocm9tZSBmb3Ig
cGVybWlzc2lvbi4gVGhpcyBtYXkgYmUKICAgICAgICAgLy8gaW1wbGVtZW50ZWQgc3luY2hyb25v
dXNseSBvciBhc3luY2hyb25vdXNseS4gSW4gYm90aCBjYXNlcywKQEAgLTU3OCw5ICs1NzYsOSBA
QCB2b2lkIEdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcygpCiAKICNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogCi12b2lkIEdlb2xvY2F0aW9uOjpzZXRQb3NpdGlv
bihHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246OnBvc2l0
aW9uQ2hhbmdlZCgpCiB7Ci0gICAgcG9zaXRpb25DaGFuZ2VkKGNyZWF0ZUdlb3Bvc2l0aW9uKHBv
c2l0aW9uKSk7CisgICAgcG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvciogZXJyb3IpCkBAIC01OTYsNyArNTk0
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2Vk
KEdlb2xvY2F0aW9uU2VydmljZSogc2VydmljZSkKICAgICBBU1NFUlRfVU5VU0VEKHNlcnZpY2Us
IHNlcnZpY2UgPT0gbV9zZXJ2aWNlKTsKICAgICBBU1NFUlQobV9zZXJ2aWNlLT5sYXN0UG9zaXRp
b24oKSk7CiAKLSAgICBwb3NpdGlvbkNoYW5nZWQobV9zZXJ2aWNlLT5sYXN0UG9zaXRpb24oKSk7
CisgICAgcG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6
Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNlcnZp
Y2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaCBiL1dlYkNvcmUvcGFn
ZS9HZW9sb2NhdGlvbi5oCmluZGV4IDFiNWViNmY1ZDNiNGM2YmNjM2Q2N2QyNDZlNDdmYzllM2Nm
YWY2OWMuLjFkMDA1MGY5YTYyNGM5YTE4ZTQ0OWM5ZGZkZmZiZjg0ZDdhNWM2MjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9HZW9sb2Nh
dGlvbi5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBGcmFtZSogZnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQotICAgIHZvaWQgc2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiopOworICAgIHZv
aWQgcG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRFcnJvcihHZW9sb2NhdGlvbkVycm9y
Kik7CiAjZWxzZQogICAgIEdlb2xvY2F0aW9uU2VydmljZSogZ2V0R2VvbG9jYXRpb25TZXJ2aWNl
KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlLmdldCgpOyB9CkBAIC0xMjYsMTMgKzEyNiwxMyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZW5kRXJyb3IoVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmll
cj4gPiYsIFBvc2l0aW9uRXJyb3IqKTsKICAgICB2b2lkIHNlbmRQb3NpdGlvbihWZWN0b3I8UmVm
UHRyPEdlb05vdGlmaWVyPiA+JiwgR2VvcG9zaXRpb24qKTsKLSAgICAKKwogICAgIHN0YXRpYyB2
b2lkIHN0b3BUaW1lcihWZWN0b3I8UmVmUHRyPEdlb05vdGlmaWVyPiA+Jik7CiAgICAgdm9pZCBz
dG9wVGltZXJzRm9yT25lU2hvdHMoKTsKICAgICB2b2lkIHN0b3BUaW1lcnNGb3JXYXRjaGVycygp
OwogICAgIHZvaWQgc3RvcFRpbWVycygpOwotICAgIAotICAgIHZvaWQgcG9zaXRpb25DaGFuZ2Vk
KFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+KTsKKworICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkSW50
ZXJuYWwoKTsKICAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKCk7CiAgICAgdm9pZCBoYW5k
bGVFcnJvcihQb3NpdGlvbkVycm9yKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5jcHAKaW5kZXggZmQxOGI0NTAyN2EzMThmYTRhMWNjYTMzMGY3NGI0Y2UzYjcxNWRjZi4uMzgx
MjczMDZlNmNjOWNmNmU4NjRmZjg4MjRlY2UxMjNjZTc5OWYxYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCIKIAogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAKQEAgLTY2LDEwICs2NywxMSBAQCB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6cmVtb3Zl
T2JzZXJ2ZXIoR2VvbG9jYXRpb24qIG9ic2VydmVyKQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6cG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogewor
ICAgIG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZlB0cjxHZW9sb2Nh
dGlvbj4gPiBvYnNlcnZlcnNWZWN0b3I7CiAgICAgY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzLCBv
YnNlcnZlcnNWZWN0b3IpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JzZXJ2ZXJzVmVj
dG9yLnNpemUoKTsgKytpKQotICAgICAgICBvYnNlcnZlcnNWZWN0b3JbaV0tPnNldFBvc2l0aW9u
KHBvc2l0aW9uKTsKKyAgICAgICAgb2JzZXJ2ZXJzVmVjdG9yW2ldLT5wb3NpdGlvbkNoYW5nZWQo
KTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmVycm9yT2NjdXJyZWQoR2VvbG9j
YXRpb25FcnJvciogZXJyb3IpCkBAIC04Miw2ICs4NCw5IEBAIHZvaWQgR2VvbG9jYXRpb25Db250
cm9sbGVyOjplcnJvck9jY3VycmVkKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogCiBHZW9sb2Nh
dGlvblBvc2l0aW9uKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Omxhc3RQb3NpdGlvbigpCiB7Cisg
ICAgaWYgKG1fbGFzdFBvc2l0aW9uLmdldCgpKQorICAgICAgICByZXR1cm4gbV9sYXN0UG9zaXRp
b24uZ2V0KCk7CisKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm4gMDsKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oIGIvV2ViQ29yZS9w
YWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCmluZGV4IDgwZjljYTg5NTY4ZWIyMWIxMzEyMTE4
NzdjYzFiNTU0ZDZmNTc3YzguLmJiMzYxMDFkOTQ2YjRlMDBlMmJmZjlhNTI5MzRmODY0MzFhNDc3
MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysg
Yi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKQEAgLTU3LDYgKzU3LDcgQEAg
cHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50KiBtX2NsaWVudDsKIAorICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQ
b3NpdGlvbjsKICAgICBIYXNoU2V0PFJlZlB0cjxHZW9sb2NhdGlvbj4gPiBtX29ic2VydmVyczsK
IH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>