<?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>75348</bug_id>
          
          <creation_ts>2011-12-29 05:51:29 -0800</creation_ts>
          <short_desc>Use HashMap&lt;OwnPtr&gt; for RenderBoxRegionInfo map in RenderRegion</short_desc>
          <delta_ts>2012-01-11 10:19:06 -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>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527898</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-12-29 05:51:29 -0800</bug_when>
    <thetext>Use HashMap&lt;OwnPtr&gt; for RenderBoxRegionInfo map in RenderRegion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527899</commentid>
    <comment_count>1</comment_count>
      <attachid>120737</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-12-29 05:53:19 -0800</bug_when>
    <thetext>Created attachment 120737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531965</commentid>
    <comment_count>2</comment_count>
      <attachid>120737</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-08 22:06:19 -0800</bug_when>
    <thetext>Comment on attachment 120737
Patch

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

This is OK. But a better fix for this code is to change m_renderBoxRegionInfo to be a HashMap&lt;const RenderBox*, RenderBoxRegionInfo&gt;. There is no reason for all that heap allocation.

&gt; Source/WebCore/rendering/RenderRegion.cpp:221
&gt;  RenderBoxRegionInfo* RenderRegion::takeRenderBoxRegionInfo(const RenderBox* box)
&gt;  {
&gt; -    return m_renderBoxRegionInfo.take(box);
&gt; +    return m_renderBoxRegionInfo.take(box).leakPtr();
&gt;  }

If we are going to keep this using pointers, then this function should be changed so that it returns a PassOwnPtr instead of a raw pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532123</commentid>
    <comment_count>3</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-01-09 05:51:02 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This is OK. But a better fix for this code is to change m_renderBoxRegionInfo to be a HashMap&lt;const RenderBox*, RenderBoxRegionInfo&gt;. There is no reason for all that heap allocation.

I&apos;ll give it a shot instead of landing this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532228</commentid>
    <comment_count>4</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-01-09 09:02:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; This is OK. But a better fix for this code is to change m_renderBoxRegionInfo to be a HashMap&lt;const RenderBox*, RenderBoxRegionInfo&gt;. There is no reason for all that heap allocation.
&gt; 
&gt; I&apos;ll give it a shot instead of landing this now.

Darin, I spent a bit of time looking the code would have to be modified, but I&apos;m still a bit unsure -- maybe because I&apos;m not very familiar with Render code. Some things I&apos;ve noticed:

- Clients of RenderRegion manipulate RenderBoxRegionInfo* and not the value type.  It is convenient to have the null pointer as a way to indicate there&apos;s no RBRI. This avoids a second hash lookup. 

- According to comment in RenderRegion.h, RBRI will also contain more style information in the future, this could make it less fit to be used as a value type.

    // This map holds unique information about a block that is split across regions.
    // A RenderBoxRegionInfo* tells us about any layout information for a RenderBox that
    // is unique to the region. For now it just holds logical width information for RenderBlocks, but eventually
    // it will also hold a custom style for any box (for region styling).
    HashMap&lt;const RenderBox*, RenderBoxRegionInfo&gt; m_renderBoxRegionInfo;

I have considered the case of trying to keep RenderRegion interface, but for this I would need a &quot;stable&quot; storage for RBRI, which could be done by a Vector&lt;RBRI&gt; + HashMap&lt;K, RBRI*&gt;. I&apos;m unsure this would give us practical benefits... maybe if the vector size is somehow predictable.

What do you think? Am I missing something here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532744</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-09 18:12:15 -0800</bug_when>
    <thetext>I think it’s OK to leave this as a pointer for now. I think it’s possible to change it to pass things by value and not use pointers at all but it would indeed take a bit of refactoring and I would *not* suggest the Vector/HashMap approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532762</commentid>
    <comment_count>6</comment_count>
      <attachid>121781</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-01-09 18:52:32 -0800</bug_when>
    <thetext>Created attachment 121781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533127</commentid>
    <comment_count>7</comment_count>
      <attachid>121781</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-10 09:12:32 -0800</bug_when>
    <thetext>Comment on attachment 121781
Patch

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

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:669
&gt; -        delete oldInfo;
&gt; +        oldInfo.clear();

I’m not sure it’s necessary to do this explicitly. The delete was needed before, but an OwnPtr takes care of this even if you don’t clear explicitly. I’d be tempted to just leave it out.

&gt; Source/WebCore/rendering/RenderRegion.cpp:228
&gt;  void RenderRegion::deleteAllRenderBoxRegionInfo()

The call to this function in the destructor is no longer needed. In fact, the destructor need not be declared or defined at all any more, since the default one will do the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533977</commentid>
    <comment_count>8</comment_count>
      <attachid>122043</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-01-11 09:56:20 -0800</bug_when>
    <thetext>Created attachment 122043
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533994</commentid>
    <comment_count>9</comment_count>
      <attachid>122043</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 10:18:15 -0800</bug_when>
    <thetext>Comment on attachment 122043
Patch for landing

Clearing flags on attachment: 122043

Committed r104721: &lt;http://trac.webkit.org/changeset/104721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533995</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 10:18:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533996</commentid>
    <comment_count>11</comment_count>
      <attachid>122043</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-11 10:19:06 -0800</bug_when>
    <thetext>Comment on attachment 122043
Patch for landing

Oops, sorry, should not have pushed the “EWS” button on a patch that’s already landed. Sorry.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120737</attachid>
            <date>2011-12-29 05:53:19 -0800</date>
            <delta_ts>2012-01-09 18:52:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75348-20111229105432.patch</filename>
            <type>text/plain</type>
            <size>3739</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMyN2RhNzU0MWUwZWQ4
Zjg2ZDU0OWY1YzI2NzNmYzU0YjNjOWY0NS4uODZmMDcyNmJlNmFjZTE1YTA0OTc1M2UxZTc4ZWVi
ZDQyZDYxZjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTI5ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgVXNlIEhhc2hNYXA8T3duUHRyPiBmb3IgUmVuZGVyQm94UmVnaW9uSW5mbyBt
YXAgaW4gUmVuZGVyUmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OnNldFJlbmRlckJveFJlZ2lvbkluZm8pOiB1c2UgSGFzaE1hcDo6YWRk
KCkgaW5zdGVhZCBvZgorICAgICAgICBnZXQoKSBwb3RlbnRpYWxseSBmb2xsb3dlZCBieSBzZXQo
KS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dGFrZVJlbmRlckJveFJlZ2lvbklu
Zm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZW1vdmVSZW5kZXJCb3hSZWdp
b25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZGVsZXRlQWxsUmVuZGVy
Qm94UmVnaW9uSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorCiAy
MDExLTEyLTI5ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogVHJlZSB2aWV3cyBjYW4gYmUgY29sbGFwc2VkL2hpZGRlbiB1
c2luZyB0aGUga2V5Ym9hcmQgYXJyb3dzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uY3BwCmluZGV4IDg4NTIwZTc2ZDEwOGFlNThjNDA0ZjdhMmFiOWYzODI5MmEyMjEzMTUu
LjMzZTQxZmI0YjZjMTc2OTlmYTI3MTRlMjU3OTc4YjFkOTE3MjJiMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCkBAIC0yMDYsMzAgKzIwNiwyNyBAQCBSZW5k
ZXJCb3hSZWdpb25JbmZvKiBSZW5kZXJSZWdpb246OnNldFJlbmRlckJveFJlZ2lvbkluZm8oY29u
c3QgUmVuZGVyQm94KiBib3gsCiAgICAgaWYgKCFtX2lzVmFsaWQgfHwgIW1fZmxvd1RocmVhZCkK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBleGlzdGluZ0Jv
eEluZm8gPSBtX3JlbmRlckJveFJlZ2lvbkluZm8uZ2V0KGJveCk7Ci0gICAgaWYgKGV4aXN0aW5n
Qm94SW5mbykgewotICAgICAgICAqZXhpc3RpbmdCb3hJbmZvID0gUmVuZGVyQm94UmVnaW9uSW5m
byhsb2dpY2FsTGVmdEluc2V0LCBsb2dpY2FsUmlnaHRJbnNldCwgY29udGFpbmluZ0Jsb2NrQ2hh
aW5Jc0luc2V0KTsKLSAgICAgICAgcmV0dXJuIGV4aXN0aW5nQm94SW5mbzsKLSAgICB9Ci0gICAg
Ci0gICAgUmVuZGVyQm94UmVnaW9uSW5mbyogbmV3Qm94SW5mbyA9IG5ldyBSZW5kZXJCb3hSZWdp
b25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBjb250YWluaW5nQmxv
Y2tDaGFpbklzSW5zZXQpOwotICAgIG1fcmVuZGVyQm94UmVnaW9uSW5mby5zZXQoYm94LCBuZXdC
b3hJbmZvKTsKLSAgICByZXR1cm4gbmV3Qm94SW5mbzsKKyAgICBPd25QdHI8UmVuZGVyQm94UmVn
aW9uSW5mbz4mIGJveEluZm8gPSBtX3JlbmRlckJveFJlZ2lvbkluZm8uYWRkKGJveCwgbnVsbHB0
cikuZmlyc3QtPnNlY29uZDsKKyAgICBpZiAoYm94SW5mbykKKyAgICAgICAgKmJveEluZm8gPSBS
ZW5kZXJCb3hSZWdpb25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBj
b250YWluaW5nQmxvY2tDaGFpbklzSW5zZXQpOworICAgIGVsc2UKKyAgICAgICAgYm94SW5mbyA9
IGFkb3B0UHRyKG5ldyBSZW5kZXJCb3hSZWdpb25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2lj
YWxSaWdodEluc2V0LCBjb250YWluaW5nQmxvY2tDaGFpbklzSW5zZXQpKTsKKworICAgIHJldHVy
biBib3hJbmZvLmdldCgpOwogfQogCiBSZW5kZXJCb3hSZWdpb25JbmZvKiBSZW5kZXJSZWdpb246
OnRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCogYm94KQogewotICAgIHJl
dHVybiBtX3JlbmRlckJveFJlZ2lvbkluZm8udGFrZShib3gpOworICAgIHJldHVybiBtX3JlbmRl
ckJveFJlZ2lvbkluZm8udGFrZShib3gpLmxlYWtQdHIoKTsKIH0KIAogdm9pZCBSZW5kZXJSZWdp
b246OnJlbW92ZVJlbmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQm94KiBib3gpCiB7Ci0g
ICAgZGVsZXRlIG1fcmVuZGVyQm94UmVnaW9uSW5mby50YWtlKGJveCk7CisgICAgbV9yZW5kZXJC
b3hSZWdpb25JbmZvLnJlbW92ZShib3gpOwogfQogCiB2b2lkIFJlbmRlclJlZ2lvbjo6ZGVsZXRl
QWxsUmVuZGVyQm94UmVnaW9uSW5mbygpCiB7Ci0gICAgZGVsZXRlQWxsVmFsdWVzKG1fcmVuZGVy
Qm94UmVnaW9uSW5mbyk7CiAgICAgbV9yZW5kZXJCb3hSZWdpb25JbmZvLmNsZWFyKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA1NzY2YmY4YTkyZjNl
M2I5ZjViYzI4N2U0N2RhODdhZjQyYTVhMzBiLi45MThmMzIwMGZlZjM3NjViYWNmM2E4YmZjNzc4
Yjg5OTNiMDA2NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBA
IC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQSBSZW5kZXJCb3hSZWdpb25JbmZvKiB0
ZWxscyB1cyBhYm91dCBhbnkgbGF5b3V0IGluZm9ybWF0aW9uIGZvciBhIFJlbmRlckJveCB0aGF0
CiAgICAgLy8gaXMgdW5pcXVlIHRvIHRoZSByZWdpb24uIEZvciBub3cgaXQganVzdCBob2xkcyBs
b2dpY2FsIHdpZHRoIGluZm9ybWF0aW9uIGZvciBSZW5kZXJCbG9ja3MsIGJ1dCBldmVudHVhbGx5
CiAgICAgLy8gaXQgd2lsbCBhbHNvIGhvbGQgYSBjdXN0b20gc3R5bGUgZm9yIGFueSBib3ggKGZv
ciByZWdpb24gc3R5bGluZykuCi0gICAgSGFzaE1hcDxjb25zdCBSZW5kZXJCb3gqLCBSZW5kZXJC
b3hSZWdpb25JbmZvKj4gbV9yZW5kZXJCb3hSZWdpb25JbmZvOworICAgIEhhc2hNYXA8Y29uc3Qg
UmVuZGVyQm94KiwgT3duUHRyPFJlbmRlckJveFJlZ2lvbkluZm8+ID4gbV9yZW5kZXJCb3hSZWdp
b25JbmZvOwogCiAgICAgLy8gVGhpcyBtYXAgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJl
Z2lvbiBzdHlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlbmRlciBvYmplY3RzIHRoYXQKICAgICAv
LyBhcmUgZGlzcGxheWVkIGludG8gdGhpcyByZWdpb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121781</attachid>
            <date>2012-01-09 18:52:32 -0800</date>
            <delta_ts>2012-01-11 09:56:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75348-20120109235352.patch</filename>
            <type>text/plain</type>
            <size>5340</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUwZDNkYjUwZmVmY2Zm
YzczMWY1NWYwYmYxM2E1ZDI3MjlhN2Q4YS4uZjRjNDVmMjVlMGZkOTAyMjBkMDEyMDc2MjQ3YzVm
NGJiNmVjMjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTA5ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgVXNlIEhhc2hNYXA8T3duUHRyPiBmb3IgUmVuZGVyQm94UmVnaW9uSW5mbyBt
YXAgaW4gUmVuZGVyUmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bG9naWNhbFdpZHRoQ2hhbmdlZEluUmVnaW9ucyk6IHVz
ZSBPd25QdHIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnNldFJlbmRlckJveFJlZ2lvbkluZm8pOiB1c2UgSGFz
aE1hcDo6YWRkKCkgaW5zdGVhZCBvZgorICAgICAgICBnZXQoKSBwb3RlbnRpYWxseSBmb2xsb3dl
ZCBieSBzZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dGFrZVJlbmRlckJv
eFJlZ2lvbkluZm8pOiBjaGFuZ2UgdG8gcmV0dXJuIFBhc3NPd25QdHIuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJSZWdpb246OnJlbW92ZVJlbmRlckJveFJlZ2lvbkluZm8pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTItMDEtMDkgIEdyZWcgQmls
bG9jayAgPGdiaWxsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5hdmlnYXRv
ci5zdGFydEFjdGl2aXR5OyBhZGQgSW50ZW50UmVxdWVzdCBvYmplY3QgZm9yIG1hbmFnaW5nIHdl
YiBpbnRlbnRzIGNhbGxiYWNrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcAppbmRleCA5NjdjNWQxNmI2NWE5NThlZjljMjZmZGU4YjM2MzY4ZmQxOWU4
MDZlLi5mZDc5YTc2Y2NmMzcxOGFlMjhmNWE0M2ZjNGEwZTE1YzViY2VhNWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC02NjEsMTIgKzY2
MSwxMiBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OmxvZ2ljYWxXaWR0aENoYW5nZWRJblJlZ2lv
bnMoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBMYQogCiAgICAgICAgIEFTU0VSVCghcmVnaW9u
LT5uZWVkc0xheW91dCgpKTsKIAotICAgICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBvbGRJbmZv
ID0gcmVnaW9uLT50YWtlUmVuZGVyQm94UmVnaW9uSW5mbyhibG9jayk7CisgICAgICAgIE93blB0
cjxSZW5kZXJCb3hSZWdpb25JbmZvPiBvbGRJbmZvID0gcmVnaW9uLT50YWtlUmVuZGVyQm94UmVn
aW9uSW5mbyhibG9jayk7CiAgICAgICAgIGlmICghb2xkSW5mbykKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIExheW91dFVuaXQgb2xkTG9naWNhbFdpZHRoID0gb2xkSW5mby0+bG9n
aWNhbFdpZHRoKCk7Ci0gICAgICAgIGRlbGV0ZSBvbGRJbmZvOworICAgICAgICBvbGRJbmZvLmNs
ZWFyKCk7CiAKICAgICAgICAgUmVuZGVyQm94UmVnaW9uSW5mbyogbmV3SW5mbyA9IGJsb2NrLT5y
ZW5kZXJCb3hSZWdpb25JbmZvKHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFn
ZSk7CiAgICAgICAgIGlmICghbmV3SW5mbyB8fCBuZXdJbmZvLT5sb2dpY2FsV2lkdGgoKSAhPSBv
bGRMb2dpY2FsV2lkdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3Bw
CmluZGV4IDM1ZDkwM2NjMTljYjI1ZmEzMjZkZDQ3YzQ5NTBjNzE2NTFiYWYyNTMuLmFjMTI0Y2Uy
NzFjYzgwNjgxMGJjZGJhYzEzZGM5Yzg0ZDY3OTA4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCkBAIC0yMDYsMzAgKzIwNiwyNyBAQCBSZW5kZXJCb3hSZWdp
b25JbmZvKiBSZW5kZXJSZWdpb246OnNldFJlbmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVy
Qm94KiBib3gsCiAgICAgaWYgKCFtX2lzVmFsaWQgfHwgIW1fZmxvd1RocmVhZCkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBleGlzdGluZ0JveEluZm8gPSBt
X3JlbmRlckJveFJlZ2lvbkluZm8uZ2V0KGJveCk7Ci0gICAgaWYgKGV4aXN0aW5nQm94SW5mbykg
ewotICAgICAgICAqZXhpc3RpbmdCb3hJbmZvID0gUmVuZGVyQm94UmVnaW9uSW5mbyhsb2dpY2Fs
TGVmdEluc2V0LCBsb2dpY2FsUmlnaHRJbnNldCwgY29udGFpbmluZ0Jsb2NrQ2hhaW5Jc0luc2V0
KTsKLSAgICAgICAgcmV0dXJuIGV4aXN0aW5nQm94SW5mbzsKLSAgICB9Ci0gICAgCi0gICAgUmVu
ZGVyQm94UmVnaW9uSW5mbyogbmV3Qm94SW5mbyA9IG5ldyBSZW5kZXJCb3hSZWdpb25JbmZvKGxv
Z2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBjb250YWluaW5nQmxvY2tDaGFpbklz
SW5zZXQpOwotICAgIG1fcmVuZGVyQm94UmVnaW9uSW5mby5zZXQoYm94LCBuZXdCb3hJbmZvKTsK
LSAgICByZXR1cm4gbmV3Qm94SW5mbzsKKyAgICBPd25QdHI8UmVuZGVyQm94UmVnaW9uSW5mbz4m
IGJveEluZm8gPSBtX3JlbmRlckJveFJlZ2lvbkluZm8uYWRkKGJveCwgbnVsbHB0cikuZmlyc3Qt
PnNlY29uZDsKKyAgICBpZiAoYm94SW5mbykKKyAgICAgICAgKmJveEluZm8gPSBSZW5kZXJCb3hS
ZWdpb25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBjb250YWluaW5n
QmxvY2tDaGFpbklzSW5zZXQpOworICAgIGVsc2UKKyAgICAgICAgYm94SW5mbyA9IGFkb3B0UHRy
KG5ldyBSZW5kZXJCb3hSZWdpb25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodElu
c2V0LCBjb250YWluaW5nQmxvY2tDaGFpbklzSW5zZXQpKTsKKworICAgIHJldHVybiBib3hJbmZv
LmdldCgpOwogfQogCi1SZW5kZXJCb3hSZWdpb25JbmZvKiBSZW5kZXJSZWdpb246OnRha2VSZW5k
ZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCogYm94KQorUGFzc093blB0cjxSZW5kZXJC
b3hSZWdpb25JbmZvPiBSZW5kZXJSZWdpb246OnRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0
IFJlbmRlckJveCogYm94KQogewogICAgIHJldHVybiBtX3JlbmRlckJveFJlZ2lvbkluZm8udGFr
ZShib3gpOwogfQogCiB2b2lkIFJlbmRlclJlZ2lvbjo6cmVtb3ZlUmVuZGVyQm94UmVnaW9uSW5m
byhjb25zdCBSZW5kZXJCb3gqIGJveCkKIHsKLSAgICBkZWxldGUgbV9yZW5kZXJCb3hSZWdpb25J
bmZvLnRha2UoYm94KTsKKyAgICBtX3JlbmRlckJveFJlZ2lvbkluZm8ucmVtb3ZlKGJveCk7CiB9
CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjpkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKCkKIHsK
LSAgICBkZWxldGVBbGxWYWx1ZXMobV9yZW5kZXJCb3hSZWdpb25JbmZvKTsKICAgICBtX3JlbmRl
ckJveFJlZ2lvbkluZm8uY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5oCmluZGV4IDI0OGQxNDg0NzM5YThkOTJlMWI5NmYxNmYwNmJhMGEyM2ZkMDYyMDcu
LmM2NGI5MWNhMmM2MGFhZWVmYjQ5MTU4MTg2ZWExZTZjNTBlN2RiYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAg
IFJlbmRlckJveFJlZ2lvbkluZm8qIHJlbmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQm94
KikgY29uc3Q7CiAgICAgUmVuZGVyQm94UmVnaW9uSW5mbyogc2V0UmVuZGVyQm94UmVnaW9uSW5m
byhjb25zdCBSZW5kZXJCb3gqLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0SW5zZXQsIExheW91dFVu
aXQgbG9naWNhbFJpZ2h0SW5zZXQsCiAgICAgICAgIGJvb2wgY29udGFpbmluZ0Jsb2NrQ2hhaW5J
c0luc2V0KTsKLSAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiB0YWtlUmVuZGVyQm94UmVnaW9uSW5m
byhjb25zdCBSZW5kZXJCb3gqKTsKKyAgICBQYXNzT3duUHRyPFJlbmRlckJveFJlZ2lvbkluZm8+
IHRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCopOwogICAgIHZvaWQgcmVt
b3ZlUmVuZGVyQm94UmVnaW9uSW5mbyhjb25zdCBSZW5kZXJCb3gqKTsKIAogICAgIHZvaWQgZGVs
ZXRlQWxsUmVuZGVyQm94UmVnaW9uSW5mbygpOwpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgog
ICAgIC8vIEEgUmVuZGVyQm94UmVnaW9uSW5mbyogdGVsbHMgdXMgYWJvdXQgYW55IGxheW91dCBp
bmZvcm1hdGlvbiBmb3IgYSBSZW5kZXJCb3ggdGhhdAogICAgIC8vIGlzIHVuaXF1ZSB0byB0aGUg
cmVnaW9uLiBGb3Igbm93IGl0IGp1c3QgaG9sZHMgbG9naWNhbCB3aWR0aCBpbmZvcm1hdGlvbiBm
b3IgUmVuZGVyQmxvY2tzLCBidXQgZXZlbnR1YWxseQogICAgIC8vIGl0IHdpbGwgYWxzbyBob2xk
IGEgY3VzdG9tIHN0eWxlIGZvciBhbnkgYm94IChmb3IgcmVnaW9uIHN0eWxpbmcpLgotICAgIEhh
c2hNYXA8Y29uc3QgUmVuZGVyQm94KiwgUmVuZGVyQm94UmVnaW9uSW5mbyo+IG1fcmVuZGVyQm94
UmVnaW9uSW5mbzsKKyAgICBIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIE93blB0cjxSZW5kZXJC
b3hSZWdpb25JbmZvPiA+IG1fcmVuZGVyQm94UmVnaW9uSW5mbzsKIAogICAgIGJvb2wgbV9pc1Zh
bGlkOwogICAgIGJvb2wgbV9oYXNDdXN0b21SZWdpb25TdHlsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122043</attachid>
            <date>2012-01-11 09:56:20 -0800</date>
            <delta_ts>2012-01-11 10:19:06 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75348-20120111145741.patch</filename>
            <type>text/plain</type>
            <size>5907</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiZjVkZjMwOTRlNjNi
M2VjZWQ2NDQwM2JiMGIyOWRmMDc3NDY2ZC4uMmRiNjk0ZTI4Y2Q3ZDk1Nzg0N2EyZjJlOGIzMGU5
ZmJmNTc0OGZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTEwICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgVXNlIEhhc2hNYXA8T3duUHRyPiBmb3IgUmVuZGVyQm94UmVnaW9uSW5mbyBt
YXAgaW4gUmVuZGVyUmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxvd1RocmVhZDo6bG9naWNhbFdpZHRoQ2hhbmdlZEluUmVnaW9ucyk6IHVzZSBP
d25QdHIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSZWdpb246OnNldFJlbmRlckJveFJlZ2lvbkluZm8pOiB1c2UgSGFzaE1h
cDo6YWRkKCkgaW5zdGVhZCBvZgorICAgICAgICBnZXQoKSBwb3RlbnRpYWxseSBmb2xsb3dlZCBi
eSBzZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dGFrZVJlbmRlckJveFJl
Z2lvbkluZm8pOiBjaGFuZ2UgdG8gcmV0dXJuIFBhc3NPd25QdHIuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OnJlbW92ZVJlbmRlckJveFJlZ2lvbkluZm8pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUmVnaW9uOjpkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTItMDEtMTEgIFBldGVyIFJ5Ymlu
ICA8cGV0ZXIucnliaW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHk6IGZpeCBjb2Rlc3R5bGUgb2YgZ2VuZXJhdGVkIGVudW1zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggZmEw
MDZiZTQ2YjVkZjc2MjVhN2RhY2MxMzdmNzcwODFlNDk2OGU0Yi4uZGZkYzk2NmQyZTZkOGMyNjAy
YWYwZWRhMzhmZTYxODNlY2E3OWE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNjUwLDEzICs2NTAsMTEgQEAgYm9vbCBSZW5kZXJGbG93
VGhyZWFkOjpsb2dpY2FsV2lkdGhDaGFuZ2VkSW5SZWdpb25zKGNvbnN0IFJlbmRlckJsb2NrKiBi
bG9jaywgTGEKIAogICAgICAgICBBU1NFUlQoIXJlZ2lvbi0+bmVlZHNMYXlvdXQoKSk7CiAKLSAg
ICAgICAgUmVuZGVyQm94UmVnaW9uSW5mbyogb2xkSW5mbyA9IHJlZ2lvbi0+dGFrZVJlbmRlckJv
eFJlZ2lvbkluZm8oYmxvY2spOworICAgICAgICBPd25QdHI8UmVuZGVyQm94UmVnaW9uSW5mbz4g
b2xkSW5mbyA9IHJlZ2lvbi0+dGFrZVJlbmRlckJveFJlZ2lvbkluZm8oYmxvY2spOwogICAgICAg
ICBpZiAoIW9sZEluZm8pCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBMYXlvdXRV
bml0IG9sZExvZ2ljYWxXaWR0aCA9IG9sZEluZm8tPmxvZ2ljYWxXaWR0aCgpOwotICAgICAgICBk
ZWxldGUgb2xkSW5mbzsKLQogICAgICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBuZXdJbmZvID0g
YmxvY2stPnJlbmRlckJveFJlZ2lvbkluZm8ocmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlKTsKICAgICAgICAgaWYgKCFuZXdJbmZvIHx8IG5ld0luZm8tPmxvZ2ljYWxXaWR0
aCgpICE9IG9sZExvZ2ljYWxXaWR0aCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCAzNWQ5MDNjYzE5Y2IyNWZh
MzI2ZGQ0N2M0OTUwYzcxNjUxYmFmMjUzLi4zMjdmODJiMDQ4NzQ3OGI1NDVmM2QyZTVmYmJjMjNh
ZGE0MmNlNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApA
QCAtNTAsMTEgKzUwLDYgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oTm9kZSogbm9kZSwg
UmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKIHsKIH0KIAotUmVuZGVyUmVnaW9uOjp+UmVu
ZGVyUmVnaW9uKCkKLXsKLSAgICBkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKCk7Ci19Ci0K
IExheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpyZWdpb25PdmVyZmxvd1JlY3QoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBXb3VsZCBsaWtlIHRvIGp1c3QgdXNlIGhhc092ZXJmbG93Q2xpcCgpIGJ1
dCB3ZSBhcmVuJ3QgYSBibG9jayB5ZXQuIFdoZW4gUmVuZGVyUmVnaW9uIGlzIGVsaW1pbmF0ZWQg
YW5kCkBAIC0yMDYsMzAgKzIwMSwyNyBAQCBSZW5kZXJCb3hSZWdpb25JbmZvKiBSZW5kZXJSZWdp
b246OnNldFJlbmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQm94KiBib3gsCiAgICAgaWYg
KCFtX2lzVmFsaWQgfHwgIW1fZmxvd1RocmVhZCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBS
ZW5kZXJCb3hSZWdpb25JbmZvKiBleGlzdGluZ0JveEluZm8gPSBtX3JlbmRlckJveFJlZ2lvbklu
Zm8uZ2V0KGJveCk7Ci0gICAgaWYgKGV4aXN0aW5nQm94SW5mbykgewotICAgICAgICAqZXhpc3Rp
bmdCb3hJbmZvID0gUmVuZGVyQm94UmVnaW9uSW5mbyhsb2dpY2FsTGVmdEluc2V0LCBsb2dpY2Fs
UmlnaHRJbnNldCwgY29udGFpbmluZ0Jsb2NrQ2hhaW5Jc0luc2V0KTsKLSAgICAgICAgcmV0dXJu
IGV4aXN0aW5nQm94SW5mbzsKLSAgICB9Ci0gICAgCi0gICAgUmVuZGVyQm94UmVnaW9uSW5mbyog
bmV3Qm94SW5mbyA9IG5ldyBSZW5kZXJCb3hSZWdpb25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxv
Z2ljYWxSaWdodEluc2V0LCBjb250YWluaW5nQmxvY2tDaGFpbklzSW5zZXQpOwotICAgIG1fcmVu
ZGVyQm94UmVnaW9uSW5mby5zZXQoYm94LCBuZXdCb3hJbmZvKTsKLSAgICByZXR1cm4gbmV3Qm94
SW5mbzsKKyAgICBPd25QdHI8UmVuZGVyQm94UmVnaW9uSW5mbz4mIGJveEluZm8gPSBtX3JlbmRl
ckJveFJlZ2lvbkluZm8uYWRkKGJveCwgbnVsbHB0cikuZmlyc3QtPnNlY29uZDsKKyAgICBpZiAo
Ym94SW5mbykKKyAgICAgICAgKmJveEluZm8gPSBSZW5kZXJCb3hSZWdpb25JbmZvKGxvZ2ljYWxM
ZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBjb250YWluaW5nQmxvY2tDaGFpbklzSW5zZXQp
OworICAgIGVsc2UKKyAgICAgICAgYm94SW5mbyA9IGFkb3B0UHRyKG5ldyBSZW5kZXJCb3hSZWdp
b25JbmZvKGxvZ2ljYWxMZWZ0SW5zZXQsIGxvZ2ljYWxSaWdodEluc2V0LCBjb250YWluaW5nQmxv
Y2tDaGFpbklzSW5zZXQpKTsKKworICAgIHJldHVybiBib3hJbmZvLmdldCgpOwogfQogCi1SZW5k
ZXJCb3hSZWdpb25JbmZvKiBSZW5kZXJSZWdpb246OnRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNv
bnN0IFJlbmRlckJveCogYm94KQorUGFzc093blB0cjxSZW5kZXJCb3hSZWdpb25JbmZvPiBSZW5k
ZXJSZWdpb246OnRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCogYm94KQog
ewogICAgIHJldHVybiBtX3JlbmRlckJveFJlZ2lvbkluZm8udGFrZShib3gpOwogfQogCiB2b2lk
IFJlbmRlclJlZ2lvbjo6cmVtb3ZlUmVuZGVyQm94UmVnaW9uSW5mbyhjb25zdCBSZW5kZXJCb3gq
IGJveCkKIHsKLSAgICBkZWxldGUgbV9yZW5kZXJCb3hSZWdpb25JbmZvLnRha2UoYm94KTsKKyAg
ICBtX3JlbmRlckJveFJlZ2lvbkluZm8ucmVtb3ZlKGJveCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVn
aW9uOjpkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKCkKIHsKLSAgICBkZWxldGVBbGxWYWx1
ZXMobV9yZW5kZXJCb3hSZWdpb25JbmZvKTsKICAgICBtX3JlbmRlckJveFJlZ2lvbkluZm8uY2xl
YXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDI0
OGQxNDg0NzM5YThkOTJlMWI5NmYxNmYwNmJhMGEyM2ZkMDYyMDcuLjYxY2YxZjU4Y2FmYWNmY2Rh
NDk5Y2MzMWY3NDU5NjBkOTdkMGVlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmgKQEAgLTQxLDcgKzQxLDYgQEAgY2xhc3MgUmVuZGVyRmxvd1RocmVhZDsKIGNsYXNz
IFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJSZXBsYWNlZCB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgUmVuZGVyUmVnaW9uKE5vZGUqLCBSZW5kZXJGbG93VGhyZWFkKik7Ci0gICAgdmlydHVh
bCB+UmVuZGVyUmVnaW9uKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTcxLDcgKzcwLDcgQEAgcHVibGljOgogICAgIFJl
bmRlckJveFJlZ2lvbkluZm8qIHJlbmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQm94Kikg
Y29uc3Q7CiAgICAgUmVuZGVyQm94UmVnaW9uSW5mbyogc2V0UmVuZGVyQm94UmVnaW9uSW5mbyhj
b25zdCBSZW5kZXJCb3gqLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0SW5zZXQsIExheW91dFVuaXQg
bG9naWNhbFJpZ2h0SW5zZXQsCiAgICAgICAgIGJvb2wgY29udGFpbmluZ0Jsb2NrQ2hhaW5Jc0lu
c2V0KTsKLSAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiB0YWtlUmVuZGVyQm94UmVnaW9uSW5mbyhj
b25zdCBSZW5kZXJCb3gqKTsKKyAgICBQYXNzT3duUHRyPFJlbmRlckJveFJlZ2lvbkluZm8+IHRh
a2VSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCopOwogICAgIHZvaWQgcmVtb3Zl
UmVuZGVyQm94UmVnaW9uSW5mbyhjb25zdCBSZW5kZXJCb3gqKTsKIAogICAgIHZvaWQgZGVsZXRl
QWxsUmVuZGVyQm94UmVnaW9uSW5mbygpOwpAQCAtOTYsNyArOTUsNyBAQCBwcml2YXRlOgogICAg
IC8vIEEgUmVuZGVyQm94UmVnaW9uSW5mbyogdGVsbHMgdXMgYWJvdXQgYW55IGxheW91dCBpbmZv
cm1hdGlvbiBmb3IgYSBSZW5kZXJCb3ggdGhhdAogICAgIC8vIGlzIHVuaXF1ZSB0byB0aGUgcmVn
aW9uLiBGb3Igbm93IGl0IGp1c3QgaG9sZHMgbG9naWNhbCB3aWR0aCBpbmZvcm1hdGlvbiBmb3Ig
UmVuZGVyQmxvY2tzLCBidXQgZXZlbnR1YWxseQogICAgIC8vIGl0IHdpbGwgYWxzbyBob2xkIGEg
Y3VzdG9tIHN0eWxlIGZvciBhbnkgYm94IChmb3IgcmVnaW9uIHN0eWxpbmcpLgotICAgIEhhc2hN
YXA8Y29uc3QgUmVuZGVyQm94KiwgUmVuZGVyQm94UmVnaW9uSW5mbyo+IG1fcmVuZGVyQm94UmVn
aW9uSW5mbzsKKyAgICBIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIE93blB0cjxSZW5kZXJCb3hS
ZWdpb25JbmZvPiA+IG1fcmVuZGVyQm94UmVnaW9uSW5mbzsKIAogICAgIGJvb2wgbV9pc1ZhbGlk
OwogICAgIGJvb2wgbV9oYXNDdXN0b21SZWdpb25TdHlsZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>