<?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>25926</bug_id>
          
          <creation_ts>2009-05-21 06:39:12 -0700</creation_ts>
          <short_desc>Clean up DragController</short_desc>
          <delta_ts>2009-05-21 07:05:48 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>122339</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-21 06:39:12 -0700</bug_when>
    <thetext>Clean up DragController

Looking at DragController this evening to fix a few bugs I was confused by m_document.  I&apos;m no longer confused by it now that I&apos;ve renamed it to m_documentUnderMouse.

I also saw copy/paste code involving clearing the selection when moving out of one document and into another.  I moved that code into a function called mouseMovedIntoDocument.

I also got rid of a couple needless null-checks after confirming via source inspection they were not ever possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122340</commentid>
    <comment_count>1</comment_count>
      <attachid>30542</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-21 06:43:38 -0700</bug_when>
    <thetext>Created attachment 30542
Clean up DragController

 3 files changed, 82 insertions(+), 48 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122342</commentid>
    <comment_count>2</comment_count>
      <attachid>30543</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-21 06:47:00 -0700</bug_when>
    <thetext>Created attachment 30543
Clean up DragController

 4 files changed, 86 insertions(+), 51 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122346</commentid>
    <comment_count>3</comment_count>
      <attachid>30543</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-21 07:00:14 -0700</bug_when>
    <thetext>Comment on attachment 30543
Clean up DragController

r=me with some trivial comments over IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122347</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-21 07:05:48 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/page/DragController.cpp
	M	WebCore/page/DragController.h
	M	WebCore/page/mac/DragControllerMac.mm
Committed r43968

Hopefully future readers of DragController.cpp will find it easier to understand now. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30542</attachid>
            <date>2009-05-21 06:43:38 -0700</date>
            <delta_ts>2009-05-21 06:47:12 -0700</delta_ts>
            <desc>Clean up DragController</desc>
            <filename>Clean-up-DragController.patch</filename>
            <type>text/plain</type>
            <size>14070</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ODJiZDRhODBjOWI1ZjRkY2IxYzllMTRjMWQ5YzBlZDQxM2ZhNTQ4YgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZWNjZThkLi43YmZlMmQ4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDQ0IEBACiAyMDA5LTA1LTIxICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
biB1cCBEcmFnQ29udHJvbGxlcgorCisgICAgICAgIEkgcmVuYW1lZCBtX2RvY3VtZW50IHRvIG1f
ZG9jdW1lbnRVbmRlck1vdXNlIHRvIGJldHRlciBkb2N1bWVudCB3aGF0IGl0IGRvZXMKKyAgICAg
ICAgSSBjb3VsZCBjYWxsIGl0IG1fbGFzdERvY3VtZW50VW5kZXJNb3VzZSB0byBiZSBtb3N0LWFj
Y3VyYXRlLCBidXQgdGhpcyBzZWVtZWQKKyAgICAgICAgbG9uZyBlbm91Z2guCisKKyAgICAgICAg
SSBhbHNvIHNhdyBjb3B5L3Bhc3RlIGNvZGUgaW52b2x2aW5nIGNsZWFyaW5nIHRoZSBzZWxlY3Rp
b24gd2hlbiBtb3Zpbmcgb3V0IG9mCisgICAgICAgIG9uZSBkb2N1bWVudCBhbmQgaW50byBhbm90
aGVyLiAgSSBtb3ZlZCB0aGF0IGNvZGUgaW50byBhIGZ1bmN0aW9uIGNhbGxlZAorICAgICAgICBt
b3VzZU1vdmVkSW50b0RvY3VtZW50LgorCisgICAgICAgIEkgYWxzbyBnb3QgcmlkIG9mIGEgY291
cGxlIG5lZWRsZXNzIG51bGwtY2hlY2tzIGFmdGVyIGNvbmZpcm1pbmcgdmlhIHNvdXJjZQorICAg
ICAgICBpbnNwZWN0aW9uIHRoZXkgd2VyZSBub3QgZXZlciBwb3NzaWJsZS4KKyAgICAgICAgSW4g
TWFjIFdlYktpdCBpdCdzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgUGFnZSB0aGF0IGRvZXNuJ3Qg
aGF2ZSBhIG1haW5GcmFtZSgpCisgICAgICAgIEkgbGVmdCBhbiBBU1NFUlQobV9wYWdlLT5tYWlu
RnJhbWUoKSkgaW4gY2FzZSBzb21lIG90aGVyIHBvcnQgZXZlciB2aW9sYXRlcyB0aGlzLgorICAg
ICAgICBJdCdzIGFsc28gbm90IHBvc3NpYmxlIHRvIHJldHVybiBhIGRvY3VtZW50IGZyb20gZG9j
dW1lbnRBdFBvaW50IHRoYXQgaXMgbm90CisgICAgICAgIGluIGEgZnJhbWUgKGFzIHN1Y2ggYSBk
b2N1bWVudCB3b3VsZCBub3QgYmUgcmVuZGVyZWQpLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwg
Y2hhbmdlcywgdGh1cyBubyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnSXNNb3ZlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6bW91c2VNb3ZlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6b3BlcmF0aW9uRm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6Y2FuUHJvY2Vzc0RyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRy
eURIVE1MRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGxhY2VEcmFn
Q2FyZXQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpkb2N1bWVudFVuZGVyTW91c2UpOgorCisyMDA5LTA1LTIxICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgUHJvc2t1cnlha292LgogCiAgICAgICAgIFJlbmFtZSBEcmFnQ29udHJvbGxlcjo6ZHJhZ09w
ZXJhdGlvbigpIHRvIHNvdXJjZURyYWdPcGVyYXRpb24oKSBmb3IgY2xhcml0eQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKaW5kZXggZGEzYWNlMS4uZjhhMzlhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChEcmFnRGF0YSogZHJhZ0RhdGEpCiBEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xs
ZXIoUGFnZSogcGFnZSwgRHJhZ0NsaWVudCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAg
ICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2RvY3VtZW50KDApCisgICAgLCBtX2RvY3Vt
ZW50VW5kZXJNb3VzZSgwKQogICAgICwgbV9kcmFnSW5pdGlhdG9yKDApCiAgICAgLCBtX2RyYWdE
ZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lKQogICAgICwgbV9kcmFn
U291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25Ob25lKQpAQCAtMTI4LDkgKzEyOCwxMCBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURy
YWdEYXRhKERyYWdEYXRhKiBkcmFnRAogCiBib29sIERyYWdDb250cm9sbGVyOjpkcmFnSXNNb3Zl
KFNlbGVjdGlvbkNvbnRyb2xsZXIqIHNlbGVjdGlvbikKIHsKLSAgICByZXR1cm4gbV9kb2N1bWVu
dCA9PSBtX2RyYWdJbml0aWF0b3IgJiYgc2VsZWN0aW9uLT5pc0NvbnRlbnRFZGl0YWJsZSgpICYm
ICFpc0NvcHlLZXlEb3duKCk7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRVbmRlck1vdXNlID09IG1f
ZHJhZ0luaXRpYXRvciAmJiBzZWxlY3Rpb24tPmlzQ29udGVudEVkaXRhYmxlKCkgJiYgIWlzQ29w
eUtleURvd24oKTsKIH0KIAorLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIHBvb3JseSBuYW1lZC4g
IFdlJ3JlIGp1c3QgY2xlYXJpbmcgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZSBkb2N1bWVudCB0aGlz
IGRyYWcgaXMgZXhpdGluZy4KIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNhbmNlbERyYWcoKQogewog
ICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5jbGVhcigpOwpAQCAtMTYwLDkgKzE2
MSw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRh
KQogICAgICAgICBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5jYW5jZWxEcmFnQW5kRHJvcChj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgY2xpcGJvYXJkLmdldCgpKTsKICAgICAgICAgY2xp
cGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAgIC8vIGludmFsaWRhdGUg
Y2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CiAgICAgfQotCi0gICAgY2FuY2VsRHJhZygpOwot
ICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CiB9CiAg
ICAgCiBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSog
ZHJhZ0RhdGEpIApAQCAtMTczLDcgKzE3Miw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsgICAKICAgICBBU1NFUlQoZHJhZ0Rh
dGEpOwotICAgIG1fZG9jdW1lbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudEF0UG9p
bnQoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCkpOworICAgIG1fZG9jdW1lbnRVbmRlck1vdXNl
ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnRBdFBvaW50KGRyYWdEYXRhLT5jbGllbnRQ
b3NpdGlvbigpKTsKICAgICBpZiAobV9pc0hhbmRsaW5nRHJhZykgewogICAgICAgICBBU1NFUlQo
bV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCk7CiAg
ICAgICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVz
dGluYXRpb25BY3Rpb25ESFRNTCwgZHJhZ0RhdGEpOwpAQCAtMTg1LDE2ICsxODQsMTYgQEAgYm9v
bCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAg
ICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cGVyZm9ybURyYWdBbmREcm9wKGNyZWF0
ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBjbGlwYm9hcmQuZ2V0KCkpOwogICAgICAgICAgICAgY2xp
cGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAgIC8vIGludmFsaWRhdGUg
Y2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CiAgICAgICAgIH0KLSAgICAgICAgbV9kb2N1bWVu
dCA9IDA7CisgICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfSAKICAgICAKICAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYg
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCkgJiYgY29uY2x1ZGVFZGl0RHJhZyhkcmFnRGF0YSkp
IHsKLSAgICAgICAgbV9kb2N1bWVudCA9IDA7CisgICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNl
ID0gMDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1fZG9jdW1lbnQg
PSAwOworICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKIAogICAgIGlmIChvcGVyYXRpb25G
b3JMb2FkKGRyYWdEYXRhKSA9PSBEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjAzLDIxICsyMDIsMjQgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURy
YWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwoKSksIGZhbHNlKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KLSAgICAKKworRHJhZ0NvbnRyb2xsZXI6Om1vdXNlTW92ZWRJbnRvRG9j
dW1lbnQoRG9jdW1lbnQqIG5ld0RvY3VtZW50KQoreworICAgIGlmIChtX2RvY3VtZW50VW5kZXJN
b3VzZSA9PSBuZXdEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgd2Ugd2Vy
ZSBvdmVyIGFub3RoZXIgZG9jdW1lbnQgY2xlYXIgdGhlIHNlbGVjdGlvbgorICAgIGlmIChtX2Rv
Y3VtZW50VW5kZXJNb3VzZSkKKyAgICAgICAgY2FuY2VsRHJhZygpOworICAgIG1fZG9jdW1lbnRV
bmRlck1vdXNlID0gbmV3RG9jdW1lbnQ7Cit9CisKIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBBU1NF
UlQoZHJhZ0RhdGEpOwotICAgIEludFBvaW50IHdpbmRvd1BvaW50ID0gZHJhZ0RhdGEtPmNsaWVu
dFBvc2l0aW9uKCk7Ci0gICAgCi0gICAgRG9jdW1lbnQqIG5ld0RyYWdnaW5nRG9jID0gMDsKLSAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgbmV3RHJh
Z2dpbmdEb2MgPSBmcmFtZS0+ZG9jdW1lbnRBdFBvaW50KHdpbmRvd1BvaW50KTsKLSAgICBpZiAo
bV9kb2N1bWVudCAhPSBuZXdEcmFnZ2luZ0RvYykgewotICAgICAgICBpZiAobV9kb2N1bWVudCkK
LSAgICAgICAgICAgIGNhbmNlbERyYWcoKTsKLSAgICAgICAgbV9kb2N1bWVudCA9IG5ld0RyYWdn
aW5nRG9jOwotICAgIH0KLSAgICAKKyAgICBBU1NFUlQobV9wYWdlLT5tYWluRnJhbWUoKSk7IC8v
IEl0IGlzIG5vdCBwb3NzaWJsZSBpbiBNYWMgV2ViS2l0IHRvIGhhdmUgYSBQYWdlIHdpdGhvdXQg
YSBtYWluRnJhbWUoKQorICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQobV9wYWdlLT5tYWluRnJh
bWUoKS0+ZG9jdW1lbnRBdFBvaW50KGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKSk7CisKICAg
ICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9IG1fY2xpZW50LT5hY3Rpb25NYXNrRm9yRHJhZyhk
cmFnRGF0YSk7CiAgICAgCiAgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBEcmFnT3BlcmF0
aW9uTm9uZTsKQEAgLTI1Nyw3ICsyNTksNyBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpbwogewog
ICAgIEFTU0VSVChkcmFnRGF0YSk7CiAgICAgCi0gICAgaWYgKCFtX2RvY3VtZW50KQorICAgIGlm
ICghbV9kb2N1bWVudFVuZGVyTW91c2UpCiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9u
ZTsKICAgICAKICAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25l
OwpAQCAtMjY1LDcgKzI2Nyw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OnRyeURv
Y3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvCiAgICAgICAgIG9w
ZXJhdGlvbiA9IHRyeURIVE1MRHJhZyhkcmFnRGF0YSk7CiAgICAgbV9pc0hhbmRsaW5nRHJhZyA9
IG9wZXJhdGlvbiAhPSBEcmFnT3BlcmF0aW9uTm9uZTsgCiAKLSAgICBSZWZQdHI8RnJhbWVWaWV3
PiBmcmFtZVZpZXcgPSBtX2RvY3VtZW50LT52aWV3KCk7CisgICAgUmVmUHRyPEZyYW1lVmlldz4g
ZnJhbWVWaWV3ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnZpZXcoKTsKICAgICBpZiAoIWZyYW1l
VmlldykKICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbjsKICAgICAKQEAgLTI3NSwxMyArMjc3LDEz
IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0
YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvCiAgICAgICAgIAogICAgICAgICBJbnRQb2ludCBk
cmFnUG9zID0gZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCk7CiAgICAgICAgIEludFBvaW50IHBv
aW50ID0gZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKGRyYWdQb3MpOwotICAgICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gbV9kb2N1bWVudC0+ZWxlbWVudEZyb21Qb2ludChwb2ludC54KCksIHBv
aW50LnkoKSk7CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX2RvY3VtZW50VW5kZXJNb3Vz
ZS0+ZWxlbWVudEZyb21Qb2ludChwb2ludC54KCksIHBvaW50LnkoKSk7CiAgICAgICAgIEFTU0VS
VChlbGVtZW50KTsKICAgICAgICAgRnJhbWUqIGlubmVyRnJhbWUgPSBlbGVtZW50LT5kb2N1bWVu
dCgpLT5mcmFtZSgpOwogICAgICAgICBBU1NFUlQoaW5uZXJGcmFtZSk7CiAgICAgICAgIGlmICgh
YXNGaWxlSW5wdXQoZWxlbWVudCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gZHJh
Z0NhcmV0OwotICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQtPmZyYW1l
KCkpCisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudFVuZGVyTW91c2Ut
PmZyYW1lKCkpCiAgICAgICAgICAgICAgICAgZHJhZ0NhcmV0ID0gZnJhbWUtPnZpc2libGVQb3Np
dGlvbkZvclBvaW50KHBvaW50KTsKICAgICAgICAgICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJv
bGxlcigpLT5zZXRTZWxlY3Rpb24oZHJhZ0NhcmV0KTsKICAgICAgICAgfQpAQCAtMzAyLDggKzMw
NCw3IEBAIERyYWdTb3VyY2VBY3Rpb24gRHJhZ0NvbnRyb2xsZXI6OmRlbGVnYXRlRHJhZ1NvdXJj
ZUFjdGlvbihjb25zdCBJbnRQb2ludCYgd2luZG93CiBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9s
bGVyOjpvcGVyYXRpb25Gb3JMb2FkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBBU1NFUlQo
ZHJhZ0RhdGEpOwotICAgIERvY3VtZW50KiBkb2MgPSAwOwotICAgIGRvYyA9IG1fcGFnZS0+bWFp
bkZyYW1lKCktPmRvY3VtZW50QXRQb2ludChkcmFnRGF0YS0+Y2xpZW50UG9zaXRpb24oKSk7Cisg
ICAgRG9jdW1lbnQqIGRvYyA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50QXRQb2ludChk
cmFnRGF0YS0+Y2xpZW50UG9zaXRpb24oKSk7CiAgICAgaWYgKGRvYyAmJiAobV9kaWRJbml0aWF0
ZURyYWcgfHwgZG9jLT5pc1BsdWdpbkRvY3VtZW50KCkgfHwgKGRvYy0+ZnJhbWUoKSAmJiBkb2Mt
PmZyYW1lKCktPmVkaXRvcigpLT5jbGllbnRJc0VkaXRhYmxlKCkpKSkKICAgICAgICAgcmV0dXJu
IERyYWdPcGVyYXRpb25Ob25lOwogICAgIHJldHVybiBkcmFnT3BlcmF0aW9uKGRyYWdEYXRhKTsK
QEAgLTMyNSwxMSArMzI2LDExIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAgICAgQVNTRVJU
KCFtX2lzSGFuZGxpbmdEcmFnKTsKICAgICAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYg
KCFtX2RvY3VtZW50VW5kZXJNb3VzZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAg
IEludFBvaW50IHBvaW50ID0gbV9kb2N1bWVudC0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGRy
YWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKTsKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gIG1fZG9j
dW1lbnQtPmVsZW1lbnRGcm9tUG9pbnQocG9pbnQueCgpLCBwb2ludC55KCkpOworICAgIEludFBv
aW50IHBvaW50ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnZpZXcoKS0+d2luZG93VG9Db250ZW50
cyhkcmFnRGF0YS0+Y2xpZW50UG9zaXRpb24oKSk7CisgICAgRWxlbWVudCogZWxlbWVudCA9ICBt
X2RvY3VtZW50VW5kZXJNb3VzZS0+ZWxlbWVudEZyb21Qb2ludChwb2ludC54KCksIHBvaW50Lnko
KSk7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEZyYW1lKiBpbm5lckZyYW1lID0gZWxlbWVu
dC0+b3duZXJEb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIEFTU0VSVChpbm5lckZyYW1lKTsgICAg
CkBAIC0zNDEsNyArMzQyLDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJh
ZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgICAgIGlmICghaW5uZXJGcmFtZSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgUmVmUHRyPFJhbmdlPiBpbm5lclJhbmdlID0gaW5u
ZXJGcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgIFJlZlB0
cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSA9IG1fZG9jdW1lbnQtPmNyZWF0ZUNTU1N0eWxl
RGVjbGFyYXRpb24oKTsKKyAgICAgICAgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IHN0eWxl
ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPmNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKICAg
ICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KCJjb2xv
ciIsIGNvbG9yLm5hbWUoKSwgZWMpOwogICAgICAgICBpZiAoIWlubmVyRnJhbWUtPmVkaXRvcigp
LT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLmdldCgpLCBpbm5lclJhbmdlLmdldCgpKSkKQEAgLTQw
Niw3ICs0MDcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyYWdE
YXRhKiBkcmFnRGF0YSkKICAgICAgICAgICAgIGFwcGx5Q29tbWFuZChNb3ZlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGZyYWdtZW50LCBkcmFnQ2FyZXQuYmFzZSgpLCBzbWFydE1vdmUpKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChzZXRTZWxlY3Rpb25Ub0RyYWdDYXJldChp
bm5lckZyYW1lLCBkcmFnQ2FyZXQsIHJhbmdlLCBwb2ludCkpCi0gICAgICAgICAgICAgICAgYXBw
bHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUobV9kb2N1bWVudCwgZnJh
Z21lbnQsIHRydWUsIGRyYWdEYXRhLT5jYW5TbWFydFJlcGxhY2UoKSwgY2hvc2VQbGFpblRleHQp
KTsgCisgICAgICAgICAgICAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUobV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LCB0cnVlLCBkcmFnRGF0YS0+
Y2FuU21hcnRSZXBsYWNlKCksIGNob3NlUGxhaW5UZXh0KSk7IAogICAgICAgICB9ICAgIAogICAg
IH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyB0ZXh0ID0gZHJhZ0RhdGEtPmFzUGxhaW5UZXh0KCk7
CkBAIC00MTcsNyArNDE4LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJh
ZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgICAgIAogICAgICAgICBtX2NsaWVudC0+d2lsbFBl
cmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCwgZHJh
Z0RhdGEpOwogICAgICAgICBpZiAoc2V0U2VsZWN0aW9uVG9EcmFnQ2FyZXQoaW5uZXJGcmFtZSwg
ZHJhZ0NhcmV0LCByYW5nZSwgcG9pbnQpKQotICAgICAgICAgICAgYXBwbHlDb21tYW5kKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUobV9kb2N1bWVudCwgY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChyYW5nZS5nZXQoKSwgdGV4dCksIHRydWUsIGZhbHNlLCB0cnVlKSk7IAorICAgICAgICAg
ICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUobV9kb2N1bWVu
dFVuZGVyTW91c2UsIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQocmFuZ2UuZ2V0KCksIHRleHQpLCB0
cnVlLCBmYWxzZSwgdHJ1ZSkpOyAKICAgICB9CiAgICAgbG9hZGVyLT5zZXRBbGxvd1N0YWxlUmVz
b3VyY2VzKGZhbHNlKTsKIApAQCAtNDQ4LDcgKzQ0OSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OmNhblByb2Nlc3NEcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICBpZiAoIXJlc3VsdC5pbm5l
ck5vblNoYXJlZE5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAKLSAgICBpZiAobV9kaWRJbml0aWF0ZURyYWcgJiYgbV9kb2N1bWVudCA9
PSBtX2RyYWdJbml0aWF0b3IgJiYgcmVzdWx0LmlzU2VsZWN0ZWQoKSkKKyAgICBpZiAobV9kaWRJ
bml0aWF0ZURyYWcgJiYgbV9kb2N1bWVudFVuZGVyTW91c2UgPT0gbV9kcmFnSW5pdGlhdG9yICYm
IHJlc3VsdC5pc1NlbGVjdGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtNDU3LDcgKzQ1OCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNhblByb2Nl
c3NEcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6
OnRyeURIVE1MRHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiB7ICAgCiAgICAgQVNTRVJUKGRyYWdE
YXRhKTsKLSAgICBBU1NFUlQobV9kb2N1bWVudCk7CisgICAgQVNTRVJUKG1fZG9jdW1lbnRVbmRl
ck1vdXNlKTsKICAgICBEcmFnT3BlcmF0aW9uIG9wID0gRHJhZ09wZXJhdGlvbk5vbmU7CiAgICAg
UmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgUmVmUHRyPEZy
YW1lVmlldz4gdmlld1Byb3RlY3RvciA9IGZyYW1lLT52aWV3KCk7CkBAIC03NTUsMTggKzc1Niwx
MCBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmIGltYWdl
LCBjb25zdCBJbnRQb2ludCYgZHJhZ0xvYywgYwogLy8gTWFudWFsIGRyYWcgY2FyZXQgbWFuaXB1
bGF0aW9uCiB2b2lkIERyYWdDb250cm9sbGVyOjpwbGFjZURyYWdDYXJldChjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9pbnQpCiB7Ci0gICAgRnJhbWUqIG1haW5GcmFtZSA9IG1fcGFnZS0+bWFpbkZy
YW1lKCk7ICAgIAotICAgIERvY3VtZW50KiBuZXdEcmFnZ2luZ0RvYyA9IG1haW5GcmFtZS0+ZG9j
dW1lbnRBdFBvaW50KHdpbmRvd1BvaW50KTsKLSAgICBpZiAobV9kb2N1bWVudCAhPSBuZXdEcmFn
Z2luZ0RvYykgewotICAgICAgICBpZiAobV9kb2N1bWVudCkKLSAgICAgICAgICAgIGNhbmNlbERy
YWcoKTsKLSAgICAgICAgbV9kb2N1bWVudCA9IG5ld0RyYWdnaW5nRG9jOwotICAgIH0KLSAgICBp
ZiAoIW1fZG9jdW1lbnQpCisgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChtX3BhZ2UtPm1haW5G
cmFtZSgpLT5kb2N1bWVudEF0UG9pbnQod2luZG93UG9pbnQpKTsKKyAgICBpZiAoIW1fZG9jdW1l
bnRVbmRlck1vdXNlKQogICAgICAgICByZXR1cm47Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9kb2N1
bWVudC0+ZnJhbWUoKTsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fZG9jdW1l
bnRVbmRlck1vdXNlLT5mcmFtZSgpLT52aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAg
ICAgIHJldHVybjsKICAgICBJbnRQb2ludCBmcmFtZVBvaW50ID0gZnJhbWVWaWV3LT53aW5kb3dU
b0NvbnRlbnRzKHdpbmRvd1BvaW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5oIGIvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggODE5ZWEzNS4u
NmZlMWY3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJhZ09mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fZHJhZ09mZnNldDsgfQogICAgICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3Vy
Y2VBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VBY3Rpb247IH0KIAotICAgICAg
ICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAg
ICAgIERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RvY3Vt
ZW50VW5kZXJNb3VzZTsgfQogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0K
ICAgICAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3Qg
SW50UG9pbnQmIHBhZ2VQb2ludCk7CiAgICAgICAgIApAQCAtMTAzLDYgKzEwMyw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBkcmFnSXNNb3ZlKFNlbGVjdGlvbkNvbnRyb2xs
ZXIqKTsKICAgICAgICAgYm9vbCBpc0NvcHlLZXlEb3duKCk7CiAKKyAgICAgICAgdm9pZCBtb3Vz
ZU1vdmVkSW50b0RvY3VtZW50KERvY3VtZW50Kik7CisKICAgICAgICAgSW50UmVjdCBzZWxlY3Rp
b25EcmFnZ2luZ1JlY3QoRnJhbWUqKTsKICAgICAgICAgYm9vbCBkb0RyYWcoRnJhbWUqIHNyYywg
Q2xpcGJvYXJkKiBjbGlwYm9hcmQsIERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEtVUkwm
IGxpbmtVUkwsIGNvbnN0IEtVUkwmIGltYWdlVVJMLCBOb2RlKiBub2RlLCBJbnRQb2ludCYgZHJh
Z0xvYywgSW50UG9pbnQmIGRyYWdJbWFnZU9mZnNldCk7CiAgICAgICAgIHZvaWQgZG9JbWFnZURy
YWcoRWxlbWVudCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCos
IEZyYW1lKiwgSW50UG9pbnQmKTsKQEAgLTExMiw3ICsxMTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgRHJhZ0NsaWVudCogbV9jbGllbnQ7
CiAgICAgICAgIAotICAgICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsgLy8gVGhlIGRvY3VtZW50
IHRoZSBtb3VzZSB3YXMgbGFzdCBkcmFnZ2VkIG92ZXIuCisgICAgICAgIERvY3VtZW50KiBtX2Rv
Y3VtZW50VW5kZXJNb3VzZTsgLy8gVGhlIGRvY3VtZW50IHRoZSBtb3VzZSB3YXMgbGFzdCBkcmFn
Z2VkIG92ZXIuCiAgICAgICAgIERvY3VtZW50KiBtX2RyYWdJbml0aWF0b3I7IC8vIFRoZSBEb2N1
bWVudCAoaWYgYW55KSB0aGF0IGluaXRpYXRlZCB0aGUgZHJhZy4KICAgICAgICAgCiAgICAgICAg
IERyYWdEZXN0aW5hdGlvbkFjdGlvbiBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30543</attachid>
            <date>2009-05-21 06:47:00 -0700</date>
            <delta_ts>2009-05-21 07:00:14 -0700</delta_ts>
            <desc>Clean up DragController</desc>
            <filename>Clean-up-DragController.patch</filename>
            <type>text/plain</type>
            <size>14975</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZTc3ODcxZGQzYzM4YmE1ZDcyYmI5ZmQ3M2Q5MmVmM2FjZGEwYjc5YQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZWNjZThkLi43YmZlMmQ4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDQ0IEBACiAyMDA5LTA1LTIxICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
biB1cCBEcmFnQ29udHJvbGxlcgorCisgICAgICAgIEkgcmVuYW1lZCBtX2RvY3VtZW50IHRvIG1f
ZG9jdW1lbnRVbmRlck1vdXNlIHRvIGJldHRlciBkb2N1bWVudCB3aGF0IGl0IGRvZXMKKyAgICAg
ICAgSSBjb3VsZCBjYWxsIGl0IG1fbGFzdERvY3VtZW50VW5kZXJNb3VzZSB0byBiZSBtb3N0LWFj
Y3VyYXRlLCBidXQgdGhpcyBzZWVtZWQKKyAgICAgICAgbG9uZyBlbm91Z2guCisKKyAgICAgICAg
SSBhbHNvIHNhdyBjb3B5L3Bhc3RlIGNvZGUgaW52b2x2aW5nIGNsZWFyaW5nIHRoZSBzZWxlY3Rp
b24gd2hlbiBtb3Zpbmcgb3V0IG9mCisgICAgICAgIG9uZSBkb2N1bWVudCBhbmQgaW50byBhbm90
aGVyLiAgSSBtb3ZlZCB0aGF0IGNvZGUgaW50byBhIGZ1bmN0aW9uIGNhbGxlZAorICAgICAgICBt
b3VzZU1vdmVkSW50b0RvY3VtZW50LgorCisgICAgICAgIEkgYWxzbyBnb3QgcmlkIG9mIGEgY291
cGxlIG5lZWRsZXNzIG51bGwtY2hlY2tzIGFmdGVyIGNvbmZpcm1pbmcgdmlhIHNvdXJjZQorICAg
ICAgICBpbnNwZWN0aW9uIHRoZXkgd2VyZSBub3QgZXZlciBwb3NzaWJsZS4KKyAgICAgICAgSW4g
TWFjIFdlYktpdCBpdCdzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgUGFnZSB0aGF0IGRvZXNuJ3Qg
aGF2ZSBhIG1haW5GcmFtZSgpCisgICAgICAgIEkgbGVmdCBhbiBBU1NFUlQobV9wYWdlLT5tYWlu
RnJhbWUoKSkgaW4gY2FzZSBzb21lIG90aGVyIHBvcnQgZXZlciB2aW9sYXRlcyB0aGlzLgorICAg
ICAgICBJdCdzIGFsc28gbm90IHBvc3NpYmxlIHRvIHJldHVybiBhIGRvY3VtZW50IGZyb20gZG9j
dW1lbnRBdFBvaW50IHRoYXQgaXMgbm90CisgICAgICAgIGluIGEgZnJhbWUgKGFzIHN1Y2ggYSBk
b2N1bWVudCB3b3VsZCBub3QgYmUgcmVuZGVyZWQpLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwg
Y2hhbmdlcywgdGh1cyBubyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnSXNNb3ZlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6bW91c2VNb3ZlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6b3BlcmF0aW9uRm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6Y2FuUHJvY2Vzc0RyYWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRy
eURIVE1MRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGxhY2VEcmFn
Q2FyZXQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpkb2N1bWVudFVuZGVyTW91c2UpOgorCisyMDA5LTA1LTIxICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgUHJvc2t1cnlha292LgogCiAgICAgICAgIFJlbmFtZSBEcmFnQ29udHJvbGxlcjo6ZHJhZ09w
ZXJhdGlvbigpIHRvIHNvdXJjZURyYWdPcGVyYXRpb24oKSBmb3IgY2xhcml0eQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKaW5kZXggZGEzYWNlMS4uOGNhZDQwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChEcmFnRGF0YSogZHJhZ0RhdGEpCiBEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xs
ZXIoUGFnZSogcGFnZSwgRHJhZ0NsaWVudCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAg
ICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2RvY3VtZW50KDApCisgICAgLCBtX2RvY3Vt
ZW50VW5kZXJNb3VzZSgwKQogICAgICwgbV9kcmFnSW5pdGlhdG9yKDApCiAgICAgLCBtX2RyYWdE
ZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lKQogICAgICwgbV9kcmFn
U291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25Ob25lKQpAQCAtMTI4LDkgKzEyOCwxMCBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURy
YWdEYXRhKERyYWdEYXRhKiBkcmFnRAogCiBib29sIERyYWdDb250cm9sbGVyOjpkcmFnSXNNb3Zl
KFNlbGVjdGlvbkNvbnRyb2xsZXIqIHNlbGVjdGlvbikKIHsKLSAgICByZXR1cm4gbV9kb2N1bWVu
dCA9PSBtX2RyYWdJbml0aWF0b3IgJiYgc2VsZWN0aW9uLT5pc0NvbnRlbnRFZGl0YWJsZSgpICYm
ICFpc0NvcHlLZXlEb3duKCk7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRVbmRlck1vdXNlID09IG1f
ZHJhZ0luaXRpYXRvciAmJiBzZWxlY3Rpb24tPmlzQ29udGVudEVkaXRhYmxlKCkgJiYgIWlzQ29w
eUtleURvd24oKTsKIH0KIAorLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIHBvb3JseSBuYW1lZC4g
IFdlJ3JlIGp1c3QgY2xlYXJpbmcgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZSBkb2N1bWVudCB0aGlz
IGRyYWcgaXMgZXhpdGluZy4KIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNhbmNlbERyYWcoKQogewog
ICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5jbGVhcigpOwpAQCAtMTYwLDkgKzE2
MSw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRh
KQogICAgICAgICBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5jYW5jZWxEcmFnQW5kRHJvcChj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgY2xpcGJvYXJkLmdldCgpKTsKICAgICAgICAgY2xp
cGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAgIC8vIGludmFsaWRhdGUg
Y2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CiAgICAgfQotCi0gICAgY2FuY2VsRHJhZygpOwot
ICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CiB9CiAg
ICAgCiBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSog
ZHJhZ0RhdGEpIApAQCAtMTczLDcgKzE3Miw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsgICAKICAgICBBU1NFUlQoZHJhZ0Rh
dGEpOwotICAgIG1fZG9jdW1lbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudEF0UG9p
bnQoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCkpOworICAgIG1fZG9jdW1lbnRVbmRlck1vdXNl
ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnRBdFBvaW50KGRyYWdEYXRhLT5jbGllbnRQ
b3NpdGlvbigpKTsKICAgICBpZiAobV9pc0hhbmRsaW5nRHJhZykgewogICAgICAgICBBU1NFUlQo
bV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCk7CiAg
ICAgICAgIG1fY2xpZW50LT53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVz
dGluYXRpb25BY3Rpb25ESFRNTCwgZHJhZ0RhdGEpOwpAQCAtMTg1LDE2ICsxODQsMTYgQEAgYm9v
bCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAg
ICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cGVyZm9ybURyYWdBbmREcm9wKGNyZWF0
ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBjbGlwYm9hcmQuZ2V0KCkpOwogICAgICAgICAgICAgY2xp
cGJvYXJkLT5zZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkTnVtYik7ICAgIC8vIGludmFsaWRhdGUg
Y2xpcGJvYXJkIGhlcmUgZm9yIHNlY3VyaXR5CiAgICAgICAgIH0KLSAgICAgICAgbV9kb2N1bWVu
dCA9IDA7CisgICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfSAKICAgICAKICAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYg
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCkgJiYgY29uY2x1ZGVFZGl0RHJhZyhkcmFnRGF0YSkp
IHsKLSAgICAgICAgbV9kb2N1bWVudCA9IDA7CisgICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNl
ID0gMDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIG1fZG9jdW1lbnQg
PSAwOworICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKIAogICAgIGlmIChvcGVyYXRpb25G
b3JMb2FkKGRyYWdEYXRhKSA9PSBEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjAzLDIxICsyMDIsMjQgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURy
YWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigp
LT5sb2FkKFJlc291cmNlUmVxdWVzdChkcmFnRGF0YS0+YXNVUkwoKSksIGZhbHNlKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KLSAgICAKKwordm9pZCBEcmFnQ29udHJvbGxlcjo6bW91c2VNb3ZlZElu
dG9Eb2N1bWVudChEb2N1bWVudCogbmV3RG9jdW1lbnQpCit7CisgICAgaWYgKG1fZG9jdW1lbnRV
bmRlck1vdXNlID09IG5ld0RvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB3
ZSB3ZXJlIG92ZXIgYW5vdGhlciBkb2N1bWVudCBjbGVhciB0aGUgc2VsZWN0aW9uCisgICAgaWYg
KG1fZG9jdW1lbnRVbmRlck1vdXNlKQorICAgICAgICBjYW5jZWxEcmFnKCk7CisgICAgbV9kb2N1
bWVudFVuZGVyTW91c2UgPSBuZXdEb2N1bWVudDsKK30KKwogRHJhZ09wZXJhdGlvbiBEcmFnQ29u
dHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAg
IEFTU0VSVChkcmFnRGF0YSk7Ci0gICAgSW50UG9pbnQgd2luZG93UG9pbnQgPSBkcmFnRGF0YS0+
Y2xpZW50UG9zaXRpb24oKTsKLSAgICAKLSAgICBEb2N1bWVudCogbmV3RHJhZ2dpbmdEb2MgPSAw
OwotICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBu
ZXdEcmFnZ2luZ0RvYyA9IGZyYW1lLT5kb2N1bWVudEF0UG9pbnQod2luZG93UG9pbnQpOwotICAg
IGlmIChtX2RvY3VtZW50ICE9IG5ld0RyYWdnaW5nRG9jKSB7Ci0gICAgICAgIGlmIChtX2RvY3Vt
ZW50KQotICAgICAgICAgICAgY2FuY2VsRHJhZygpOwotICAgICAgICBtX2RvY3VtZW50ID0gbmV3
RHJhZ2dpbmdEb2M7Ci0gICAgfQotICAgIAorICAgIEFTU0VSVChtX3BhZ2UtPm1haW5GcmFtZSgp
KTsgLy8gSXQgaXMgbm90IHBvc3NpYmxlIGluIE1hYyBXZWJLaXQgdG8gaGF2ZSBhIFBhZ2Ugd2l0
aG91dCBhIG1haW5GcmFtZSgpCisgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChtX3BhZ2UtPm1h
aW5GcmFtZSgpLT5kb2N1bWVudEF0UG9pbnQoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCkpKTsK
KwogICAgIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID0gbV9jbGllbnQtPmFjdGlvbk1hc2tGb3JE
cmFnKGRyYWdEYXRhKTsKICAgICAKICAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IERyYWdP
cGVyYXRpb25Ob25lOwpAQCAtMjU3LDcgKzI1OSw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRy
b2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlv
CiB7CiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisg
ICAgaWYgKCFtX2RvY3VtZW50VW5kZXJNb3VzZSkKICAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRp
b25Ob25lOwogICAgIAogICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlv
bk5vbmU7CkBAIC0yNjUsNyArMjY3LDcgQEAgRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6
dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW8KICAgICAg
ICAgb3BlcmF0aW9uID0gdHJ5REhUTUxEcmFnKGRyYWdEYXRhKTsKICAgICBtX2lzSGFuZGxpbmdE
cmFnID0gb3BlcmF0aW9uICE9IERyYWdPcGVyYXRpb25Ob25lOyAKIAotICAgIFJlZlB0cjxGcmFt
ZVZpZXc+IGZyYW1lVmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKTsKKyAgICBSZWZQdHI8RnJhbWVW
aWV3PiBmcmFtZVZpZXcgPSBtX2RvY3VtZW50VW5kZXJNb3VzZS0+dmlldygpOwogICAgIGlmICgh
ZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gb3BlcmF0aW9uOwogICAgIApAQCAtMjc1LDEzICsy
NzcsMTMgQEAgRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERy
YWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW8KICAgICAgICAgCiAgICAgICAgIEludFBv
aW50IGRyYWdQb3MgPSBkcmFnRGF0YS0+Y2xpZW50UG9zaXRpb24oKTsKICAgICAgICAgSW50UG9p
bnQgcG9pbnQgPSBmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMoZHJhZ1Bvcyk7Ci0gICAgICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSBtX2RvY3VtZW50LT5lbGVtZW50RnJvbVBvaW50KHBvaW50Lngo
KSwgcG9pbnQueSgpKTsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG1fZG9jdW1lbnRVbmRl
ck1vdXNlLT5lbGVtZW50RnJvbVBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpKTsKICAgICAgICAg
QVNTRVJUKGVsZW1lbnQpOwogICAgICAgICBGcmFtZSogaW5uZXJGcmFtZSA9IGVsZW1lbnQtPmRv
Y3VtZW50KCktPmZyYW1lKCk7CiAgICAgICAgIEFTU0VSVChpbm5lckZyYW1lKTsKICAgICAgICAg
aWYgKCFhc0ZpbGVJbnB1dChlbGVtZW50KSkgewogICAgICAgICAgICAgVmlzaWJsZVNlbGVjdGlv
biBkcmFnQ2FyZXQ7Ci0gICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC0+
ZnJhbWUoKSkKKyAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50VW5kZXJN
b3VzZS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAgICBkcmFnQ2FyZXQgPSBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQocG9pbnQpOwogICAgICAgICAgICAgbV9wYWdlLT5kcmFnQ2FyZXRD
b250cm9sbGVyKCktPnNldFNlbGVjdGlvbihkcmFnQ2FyZXQpOwogICAgICAgICB9CkBAIC0zMDIs
OCArMzA0LDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBEcmFnQ29udHJvbGxlcjo6ZGVsZWdhdGVEcmFn
U291cmNlQWN0aW9uKGNvbnN0IEludFBvaW50JiB3aW5kb3cKIERyYWdPcGVyYXRpb24gRHJhZ0Nv
bnRyb2xsZXI6Om9wZXJhdGlvbkZvckxvYWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIEFT
U0VSVChkcmFnRGF0YSk7Ci0gICAgRG9jdW1lbnQqIGRvYyA9IDA7Ci0gICAgZG9jID0gbV9wYWdl
LT5tYWluRnJhbWUoKS0+ZG9jdW1lbnRBdFBvaW50KGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigp
KTsKKyAgICBEb2N1bWVudCogZG9jID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnRBdFBv
aW50KGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKTsKICAgICBpZiAoZG9jICYmIChtX2RpZElu
aXRpYXRlRHJhZyB8fCBkb2MtPmlzUGx1Z2luRG9jdW1lbnQoKSB8fCAoZG9jLT5mcmFtZSgpICYm
IGRvYy0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudElzRWRpdGFibGUoKSkpKQogICAgICAgICBy
ZXR1cm4gRHJhZ09wZXJhdGlvbk5vbmU7CiAgICAgcmV0dXJuIGRyYWdPcGVyYXRpb24oZHJhZ0Rh
dGEpOwpAQCAtMzI1LDExICszMjYsMTEgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVF
ZGl0RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICBB
U1NFUlQoIW1faXNIYW5kbGluZ0RyYWcpOwogICAgIAotICAgIGlmICghbV9kb2N1bWVudCkKKyAg
ICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
Ci0gICAgSW50UG9pbnQgcG9pbnQgPSBtX2RvY3VtZW50LT52aWV3KCktPndpbmRvd1RvQ29udGVu
dHMoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCkpOwotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSAg
bV9kb2N1bWVudC0+ZWxlbWVudEZyb21Qb2ludChwb2ludC54KCksIHBvaW50LnkoKSk7CisgICAg
SW50UG9pbnQgcG9pbnQgPSBtX2RvY3VtZW50VW5kZXJNb3VzZS0+dmlldygpLT53aW5kb3dUb0Nv
bnRlbnRzKGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKTsKKyAgICBFbGVtZW50KiBlbGVtZW50
ID0gIG1fZG9jdW1lbnRVbmRlck1vdXNlLT5lbGVtZW50RnJvbVBvaW50KHBvaW50LngoKSwgcG9p
bnQueSgpKTsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgRnJhbWUqIGlubmVyRnJhbWUgPSBl
bGVtZW50LT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgQVNTRVJUKGlubmVyRnJhbWUp
OyAgICAKQEAgLTM0MSw3ICszNDIsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVk
aXREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAgaWYgKCFpbm5lckZyYW1lKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IGlubmVyUmFuZ2Ug
PSBpbm5lckZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICAgICAg
UmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IHN0eWxlID0gbV9kb2N1bWVudC0+Y3JlYXRlQ1NT
U3R5bGVEZWNsYXJhdGlvbigpOworICAgICAgICBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4g
c3R5bGUgPSBtX2RvY3VtZW50VW5kZXJNb3VzZS0+Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigp
OwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHko
ImNvbG9yIiwgY29sb3IubmFtZSgpLCBlYyk7CiAgICAgICAgIGlmICghaW5uZXJGcmFtZS0+ZWRp
dG9yKCktPnNob3VsZEFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIGlubmVyUmFuZ2UuZ2V0KCkpKQpA
QCAtNDA2LDcgKzQwNyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWco
RHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICAgICAgYXBwbHlDb21tYW5kKE1vdmVTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZnJhZ21lbnQsIGRyYWdDYXJldC5iYXNlKCksIHNtYXJ0TW92ZSkp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKHNldFNlbGVjdGlvblRvRHJhZ0Nh
cmV0KGlubmVyRnJhbWUsIGRyYWdDYXJldCwgcmFuZ2UsIHBvaW50KSkKLSAgICAgICAgICAgICAg
ICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShtX2RvY3VtZW50
LCBmcmFnbWVudCwgdHJ1ZSwgZHJhZ0RhdGEtPmNhblNtYXJ0UmVwbGFjZSgpLCBjaG9zZVBsYWlu
VGV4dCkpOyAKKyAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShtX2RvY3VtZW50VW5kZXJNb3VzZSwgZnJhZ21lbnQsIHRydWUsIGRyYWdE
YXRhLT5jYW5TbWFydFJlcGxhY2UoKSwgY2hvc2VQbGFpblRleHQpKTsgCiAgICAgICAgIH0gICAg
CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIHRleHQgPSBkcmFnRGF0YS0+YXNQbGFpblRl
eHQoKTsKQEAgLTQxNyw3ICs0MTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVk
aXREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAgCiAgICAgICAgIG1fY2xpZW50LT53
aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0
LCBkcmFnRGF0YSk7CiAgICAgICAgIGlmIChzZXRTZWxlY3Rpb25Ub0RyYWdDYXJldChpbm5lckZy
YW1lLCBkcmFnQ2FyZXQsIHJhbmdlLCBwb2ludCkpCi0gICAgICAgICAgICBhcHBseUNvbW1hbmQo
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShtX2RvY3VtZW50LCBjcmVhdGVGcmFnbWVu
dEZyb21UZXh0KHJhbmdlLmdldCgpLCB0ZXh0KSwgdHJ1ZSwgZmFsc2UsIHRydWUpKTsgCisgICAg
ICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShtX2Rv
Y3VtZW50VW5kZXJNb3VzZSwgY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChyYW5nZS5nZXQoKSwgdGV4
dCksIHRydWUsIGZhbHNlLCB0cnVlKSk7IAogICAgIH0KICAgICBsb2FkZXItPnNldEFsbG93U3Rh
bGVSZXNvdXJjZXMoZmFsc2UpOwogCkBAIC00NDgsNyArNDQ5LDcgQEAgYm9vbCBEcmFnQ29udHJv
bGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIGlmICghcmVzdWx0
LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIAotICAgIGlmIChtX2RpZEluaXRpYXRlRHJhZyAmJiBtX2RvY3Vt
ZW50ID09IG1fZHJhZ0luaXRpYXRvciAmJiByZXN1bHQuaXNTZWxlY3RlZCgpKQorICAgIGlmICht
X2RpZEluaXRpYXRlRHJhZyAmJiBtX2RvY3VtZW50VW5kZXJNb3VzZSA9PSBtX2RyYWdJbml0aWF0
b3IgJiYgcmVzdWx0LmlzU2VsZWN0ZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CkBAIC00NTcsNyArNDU4LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y2Fu
UHJvY2Vzc0RyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJv
bGxlcjo6dHJ5REhUTUxEcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsgICAKICAgICBBU1NFUlQo
ZHJhZ0RhdGEpOwotICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKyAgICBBU1NFUlQobV9kb2N1bWVu
dFVuZGVyTW91c2UpOwogICAgIERyYWdPcGVyYXRpb24gb3AgPSBEcmFnT3BlcmF0aW9uTm9uZTsK
ICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKICAgICBSZWZQ
dHI8RnJhbWVWaWV3PiB2aWV3UHJvdGVjdG9yID0gZnJhbWUtPnZpZXcoKTsKQEAgLTc1NSwxNyAr
NzU2LDEwIEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJhZyhEcmFnSW1hZ2VSZWYg
aW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjCiAvLyBNYW51YWwgZHJhZyBjYXJldCBt
YW5pcHVsYXRpb24KIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OnBsYWNlRHJhZ0NhcmV0KGNvbnN0IElu
dFBvaW50JiB3aW5kb3dQb2ludCkKIHsKLSAgICBGcmFtZSogbWFpbkZyYW1lID0gbV9wYWdlLT5t
YWluRnJhbWUoKTsgICAgCi0gICAgRG9jdW1lbnQqIG5ld0RyYWdnaW5nRG9jID0gbWFpbkZyYW1l
LT5kb2N1bWVudEF0UG9pbnQod2luZG93UG9pbnQpOwotICAgIGlmIChtX2RvY3VtZW50ICE9IG5l
d0RyYWdnaW5nRG9jKSB7Ci0gICAgICAgIGlmIChtX2RvY3VtZW50KQotICAgICAgICAgICAgY2Fu
Y2VsRHJhZygpOwotICAgICAgICBtX2RvY3VtZW50ID0gbmV3RHJhZ2dpbmdEb2M7Ci0gICAgfQot
ICAgIGlmICghbV9kb2N1bWVudCkKKyAgICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KG1fcGFnZS0+
bWFpbkZyYW1lKCktPmRvY3VtZW50QXRQb2ludCh3aW5kb3dQb2ludCkpOworICAgIGlmICghbV9k
b2N1bWVudFVuZGVyTW91c2UpCiAgICAgICAgIHJldHVybjsKLSAgICBGcmFtZSogZnJhbWUgPSBt
X2RvY3VtZW50LT5mcmFtZSgpOwotICAgIEFTU0VSVChmcmFtZSk7CisgICAgRnJhbWUqIGZyYW1l
ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPmZyYW1lKCk7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBmcmFtZS0+dmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm47
CkBAIC03NzQsNCArNzY4LDQgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6cGxhY2VEcmFnQ2FyZXQo
Y29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQogICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJv
bGxlcigpLT5zZXRTZWxlY3Rpb24oZHJhZ0NhcmV0KTsKIH0KICAgICAKLX0KK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggODE5ZWEzNS4uNmZlMWY3ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJhZ09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJh
Z09mZnNldDsgfQogICAgICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VBY3Rpb247IH0KIAotICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudFVuZGVyTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VW5kZXJNb3Vz
ZTsgfQogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0KICAgICAgICAgRHJh
Z1NvdXJjZUFjdGlvbiBkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHBh
Z2VQb2ludCk7CiAgICAgICAgIApAQCAtMTAzLDYgKzEwMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBkcmFnSXNNb3ZlKFNlbGVjdGlvbkNvbnRyb2xsZXIqKTsKICAgICAg
ICAgYm9vbCBpc0NvcHlLZXlEb3duKCk7CiAKKyAgICAgICAgdm9pZCBtb3VzZU1vdmVkSW50b0Rv
Y3VtZW50KERvY3VtZW50Kik7CisKICAgICAgICAgSW50UmVjdCBzZWxlY3Rpb25EcmFnZ2luZ1Jl
Y3QoRnJhbWUqKTsKICAgICAgICAgYm9vbCBkb0RyYWcoRnJhbWUqIHNyYywgQ2xpcGJvYXJkKiBj
bGlwYm9hcmQsIERyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsIGNvbnN0IEtVUkwmIGxpbmtVUkwsIGNv
bnN0IEtVUkwmIGltYWdlVVJMLCBOb2RlKiBub2RlLCBJbnRQb2ludCYgZHJhZ0xvYywgSW50UG9p
bnQmIGRyYWdJbWFnZU9mZnNldCk7CiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCos
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCosIEZyYW1lKiwgSW50
UG9pbnQmKTsKQEAgLTExMiw3ICsxMTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IFBhZ2UqIG1fcGFnZTsKICAgICAgICAgRHJhZ0NsaWVudCogbV9jbGllbnQ7CiAgICAgICAgIAot
ICAgICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsgLy8gVGhlIGRvY3VtZW50IHRoZSBtb3VzZSB3
YXMgbGFzdCBkcmFnZ2VkIG92ZXIuCisgICAgICAgIERvY3VtZW50KiBtX2RvY3VtZW50VW5kZXJN
b3VzZTsgLy8gVGhlIGRvY3VtZW50IHRoZSBtb3VzZSB3YXMgbGFzdCBkcmFnZ2VkIG92ZXIuCiAg
ICAgICAgIERvY3VtZW50KiBtX2RyYWdJbml0aWF0b3I7IC8vIFRoZSBEb2N1bWVudCAoaWYgYW55
KSB0aGF0IGluaXRpYXRlZCB0aGUgZHJhZy4KICAgICAgICAgCiAgICAgICAgIERyYWdEZXN0aW5h
dGlvbkFjdGlvbiBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0gYi9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250
cm9sbGVyTWFjLm1tCmluZGV4IDg2ZDhmNjYuLmM0NzZkZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViQ29yZS9wYWdlL21hYy9EcmFn
Q29udHJvbGxlck1hYy5tbQpAQCAtNTEsMTEgKzUxLDExIEBAIERyYWdPcGVyYXRpb24gRHJhZ0Nv
bnRyb2xsZXI6OmRyYWdPcGVyYXRpb24oRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIEFTU0VSVChk
cmFnRGF0YSk7CiAgICAgaWYgKFtOU0FwcCBtb2RhbFdpbmRvd10gfHwgIWRyYWdEYXRhLT5jb250
YWluc1VSTCgpKQogICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgCi0gICAg
aWYgKCFtX2RvY3VtZW50IHx8ICFbW21fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Z2V0T3V0
ZXJWaWV3KCkgd2luZG93XSBhdHRhY2hlZFNoZWV0XSAKKworICAgIGlmICghbV9kb2N1bWVudFVu
ZGVyTW91c2UgfHwgIVtbbV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpLT5nZXRPdXRlclZpZXco
KSB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdIAogICAgICAgICAmJiBbZHJhZ0RhdGEtPnBsYXRmb3Jt
RGF0YSgpIGRyYWdnaW5nU291cmNlXSAhPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPmdl
dE91dGVyVmlldygpKQogICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkNvcHk7Ci0gICAgICAg
IAorCiAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Ob25lOwogfSAKIAo=
</data>
<flag name="review"
          id="15432"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>