<?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>96519</bug_id>
          
          <creation_ts>2012-09-12 08:05:41 -0700</creation_ts>
          <short_desc>[TouchAdjustment] Simplify and improve hybrid distance function.</short_desc>
          <delta_ts>2012-09-20 01:44:24 -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>Layout and Rendering</component>
          <version>420+</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="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718362</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-12 08:05:41 -0700</bug_when>
    <thetext>The current distance function is a combination of two functions. One measuring the distance from the hot-spot in the touch-area to the centerline of the target, and one measuring how much of the target is covered.

The distance to the center-line was originally used instead of just the distance to the target, to make it easier to hit small targets near big targets. The very same feature is however also what measing how much of the target is covered is good at. Using the distance to center-line is therefore redundant now, and can be replaced with the simpler &apos;distance the hot-spot needs to be adjusted&apos;.

Since &apos;distance the hot-spot needs to be adjusted&apos; is also used later to choose between targets that have been fully covered, it could simply be added making the switch from one to the other in the hybrid distance function more gradual.

This greatly simplies a lot of code, and means several functions can be removed as dead code, and without any regressions in touchadjustment cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718370</commentid>
    <comment_count>1</comment_count>
      <attachid>163632</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-12 08:13:17 -0700</bug_when>
    <thetext>Created attachment 163632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718371</commentid>
    <comment_count>2</comment_count>
      <attachid>163633</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-12 08:16:42 -0700</bug_when>
    <thetext>Created attachment 163633
Patch

Forgot a hunk in the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724283</commentid>
    <comment_count>3</comment_count>
      <attachid>163633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 01:44:21 -0700</bug_when>
    <thetext>Comment on attachment 163633
Patch

Clearing flags on attachment: 163633

Committed r129108: &lt;http://trac.webkit.org/changeset/129108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724284</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 01:44:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163632</attachid>
            <date>2012-09-12 08:13:17 -0700</date>
            <delta_ts>2012-09-12 08:16:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96519-20120912171241.patch</filename>
            <type>text/plain</type>
            <size>7837</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM0MjE0ZDNkZjBkOWE2
YTViZWNiNmU0MWIxMTk3NmRjMjNhZDIzMS4uODcxYmY3ODgyYzUyNzllOWZmNjUzODU5NTlkNGUz
OTZmZTZlYThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTEyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtU
b3VjaEFkanVzdG1lbnRdIFNpbXBsaWZ5IGFuZCBpbXByb3ZlIGh5YnJpZCBkaXN0YW5jZSBmdW5j
dGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
NTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IGN1cnJlbnQgZGlzdGFuY2UgZnVuY3Rpb24gaXMgYSBjb21iaW5hdGlvbiBvZiB0d28gZnVuY3Rp
b25zLiBPbmUgbWVhc3VyaW5nIHRoZSBkaXN0YW5jZSBmcm9tCisgICAgICAgIHRoZSBob3Qtc3Bv
dCBpbiB0aGUgdG91Y2gtYXJlYSB0byB0aGUgY2VudGVybGluZSBvZiB0aGUgdGFyZ2V0LCBhbmQg
b25lIG1lYXN1cmluZyBob3cgbXVjaCBvZiB0aGUKKyAgICAgICAgdGFyZ2V0IGlzIGNvdmVyZWQu
CisKKyAgICAgICAgVGhlIGRpc3RhbmNlIHRvIHRoZSBjZW50ZXItbGluZSB3YXMgdXNlZCBpbnN0
ZWFkIG9mIGp1c3QgdGhlIGRpc3RhbmNlIHRvIHRoZSB0YXJnZXQsIHRvIG1ha2UgaXQKKyAgICAg
ICAgZWFzaWVyIHRvIGhpdCBzbWFsbCB0YXJnZXRzIG5lYXIgYmlnIHRhcmdldHMuIFRoZSB2ZXJ5
IHNhbWUgZmVhdHVyZSBpcyBob3dldmVyIGFsc28gdGhlIHJlYXNvbgorICAgICAgICBtZWFzdXJp
bmcgaG93IG11Y2ggdGhlIHRhcmdldCBpcyBjb3ZlcmVkIGlzIGFkZGVkLiBVc2luZyB0aGUgZGlz
dGFuY2UgdG8gY2VudGVyLWxpbmUgaXMgdGhlcmVmb3JlCisgICAgICAgIHJlZHVuZGFudCBub3cs
IGFuZCBjYW4gYmUgcmVwbGFjZWQgd2l0aCB0aGUgc2ltcGxlciAnZGlzdGFuY2UgdGhlIGhvdC1z
cG90IG5lZWRzIHRvIGJlIGFkanVzdGVkJy4KKworICAgICAgICBUZXN0ZWQgYnkgZXhpc3Rpbmcg
dG91Y2hhZGp1c3RtZW50IHRlc3RzLgorCisgICAgICAgICogcGFnZS9Ub3VjaEFkanVzdG1lbnQu
Y3BwOgorICAgICAgICAoVG91Y2hBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNo
QWRqdXN0bWVudDo6aHlicmlkRGlzdGFuY2VGdW5jdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dC5oOgorICAgICAgICAoSW50UmVjdCk6CisKIDIwMTItMDktMDcgIEFsbGFuIFNhbmRmZWxkIEpl
bnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgW1RvdWNoQWRqdXN0bWVu
dF0gQWRqdXN0ZWQgcG9pbnQgb3V0c2lkZSBib3VuZHMgZm9yIG5vbi1yZWN0aWxpbmVhciB0YXJn
ZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RvdWNoQWRqdXN0bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RvdWNoQWRqdXN0bWVudC5jcHAKaW5kZXggNGFlYjM0M2Fm
ZWZkZmU4OTQwZGRlZjQ4OGMzMmE3YWMzMzRjY2I2ZC4uMzc2YjZiMDU0MGY2Mjg4MTE0Nzg3OTMw
ZWU5NTg0NGI1NDZmMDE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Ub3VjaEFk
anVzdG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVG91Y2hBZGp1c3RtZW50LmNw
cApAQCAtMjg1LDIzICsyODUsNiBAQCB2b2lkIGNvbXBpbGVab29tYWJsZVN1YnRhcmdldHMoY29u
c3QgTm9kZUxpc3QmIGludGVyc2VjdGVkTm9kZXMsIFN1YnRhcmdldEdlb21ldAogICAgIH0KIH0K
IAotCi1mbG9hdCBkaXN0YW5jZVNxdWFyZWRUb1RhcmdldENlbnRlckxpbmUoY29uc3QgSW50UG9p
bnQmIHRvdWNoSG90c3BvdCwgY29uc3QgSW50UmVjdCYgdG91Y2hBcmVhLCBjb25zdCBTdWJ0YXJn
ZXRHZW9tZXRyeSYgc3VidGFyZ2V0KQotewotICAgIFVOVVNFRF9QQVJBTSh0b3VjaEFyZWEpOwot
ICAgIC8vIEZvciBhIGJldHRlciBjZW50ZXIgb2YgYSBsaW5lLWJveCB3ZSB1c2UgdGhlIGNlbnRl
ci1saW5lIGluc3RlYWQgb2YgdGhlIGNlbnRlci1wb2ludC4KLSAgICAvLyBXZSB1c2UgdGhlIGNl
bnRlci1saW5lIG9mIHRoZSBib3VuZGluZyBib3ggb2YgdGhlIHF1YWQgdGhvdWdoLCBzaW5jZSBp
dCBpcyBtdWNoIGZhc3RlcgotICAgIC8vIGFuZCBnaXZlcyB0aGUgc2FtZSByZXN1bHQgaW4gYWxs
IHVudHJhbnNmb3JtZWQgY2FzZXMsIGFuZCBpbiB0cmFuc2Zvcm1lZCBjYXNlcyBzdGlsbAotICAg
IC8vIGdpdmVzIGEgYmV0dGVyIGRpc3RhbmNlLWZ1bmN0aW9uIHRoYW4gdGhlIGRpc3RhbmNlIHRv
IHRoZSBjZW50ZXItcG9pbnQuCi0gICAgSW50UmVjdCByZWN0ID0gc3VidGFyZ2V0LmJvdW5kaW5n
Qm94KCk7Ci0gICAgQVNTRVJUKHN1YnRhcmdldC5ub2RlKCktPmRvY3VtZW50KCkpOwotICAgIEFT
U0VSVChzdWJ0YXJnZXQubm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCkpOwotICAgIC8vIENvbnZl
cnQgZnJvbSBmcmFtZSBjb29yZGluYXRlcyB0byB3aW5kb3cgY29vcmRpbmF0ZXMuCi0gICAgcmVj
dCA9IHN1YnRhcmdldC5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRv
dyhyZWN0KTsKLQotICAgIHJldHVybiByZWN0LmRpc3RhbmNlU3F1YXJlZEZyb21DZW50ZXJMaW5l
VG9Qb2ludCh0b3VjaEhvdHNwb3QpOwotfQotCiAvLyBUaGlzIHJldHVybnMgcXVvdGllbnQgb2Yg
dGhlIHRhcmdldCBhcmVhIGFuZCBpdHMgaW50ZXJzZWN0aW9uIHdpdGggdGhlIHRvdWNoIGFyZWEu
CiAvLyBUaGlzIHdpbGwgcHJpb3JpdGl6ZSBsYXJnZXN0IGludGVyc2VjdGlvbiBhbmQgc21hbGxl
c3QgYXJlYSwgd2hpbGUgYmFsYW5jaW5nIHRoZSB0d28gYWdhaW5zdCBlYWNoIG90aGVyLgogZmxv
YXQgem9vbWFibGVJbnRlcnNlY3Rpb25RdW90aWVudChjb25zdCBJbnRQb2ludCYgdG91Y2hIb3Rz
cG90LCBjb25zdCBJbnRSZWN0JiB0b3VjaEFyZWEsIGNvbnN0IFN1YnRhcmdldEdlb21ldHJ5JiBz
dWJ0YXJnZXQpCkBAIC0zMjEsMzIgKzMwNCwzMCBAQCBmbG9hdCB6b29tYWJsZUludGVyc2VjdGlv
blF1b3RpZW50KGNvbnN0IEludFBvaW50JiB0b3VjaEhvdHNwb3QsIGNvbnN0IEludFJlY3QmCiAg
ICAgcmV0dXJuIHJlY3Quc2l6ZSgpLmFyZWEoKSAvIChmbG9hdClpbnRlcnNlY3Rpb24uc2l6ZSgp
LmFyZWEoKTsKIH0KIAotLy8gVXNlcyBhIGh5YnJpZCBvZiBkaXN0YW5jZSB0byBjZW50ZXIgYW5k
IGludGVyc2VjdCByYXRpbywgbm9ybWFsaXppbmcgZWFjaAotLy8gc2NvcmUgYmV0d2VlbiAwIGFu
ZCAxIGFuZCBjaG9vc2luZyB0aGUgYmV0dGVyIHNjb3JlLiBUaGUgZGlzdGFuY2UgdG8KLS8vIGNl
bnRlcmxpbmUgd29ya3MgYmVzdCBmb3IgZGlzYW1iaWd1YXRpbmcgY2xpY2tzIG9uIHRhcmdldHMg
c3VjaCBhcyBsaW5rcywKLS8vIHdoZXJlIHRoZSB3aWR0aCBtYXkgYmUgc2lnbmlmaWNhbnRseSBs
YXJnZXIgdGhhbiB0aGUgdG91Y2ggd2lkdGguIFVzaW5nCi0vLyBhcmVhIG9mIG92ZXJsYXAgaW4g
c3VjaCBjYXNlcyBjYW4gbGVhZCB0byBhIGJpYXMgdG93YXJkcyBzaG9ydGVyIGxpbmtzLgotLy8g
Q29udmVyc2VseSwgcGVyY2VudGFnZSBvZiBvdmVybGFwIGNhbiBwcm92aWRlIHN0cm9uZyBjb25m
aWRlbmNlIGluIHRhcHBpbmcKLS8vIG9uIGEgc21hbGwgdGFyZ2V0LCB3aGVyZSB0aGUgb3Zlcmxh
cCBpcyBvZnRlbiBxdWl0ZSBoaWdoLCBhbmQgd29ya3Mgd2VsbAotLy8gZm9yIHRpZ2h0bHkgcGFj
a2VkIGNvbnRyb2xzLgotZmxvYXQgaHlicmlkRGlzdGFuY2VGdW5jdGlvbihjb25zdCBJbnRQb2lu
dCYgdG91Y2hIb3RzcG90LCBjb25zdCBJbnRSZWN0JiB0b3VjaEFyZWEsIGNvbnN0IFN1YnRhcmdl
dEdlb21ldHJ5JiBzdWJ0YXJnZXQpCisvLyBVc2VzIGEgaHlicmlkIG9mIGRpc3RhbmNlIHRvIGFk
anVzdCBhbmQgaW50ZXJzZWN0IHJhdGlvLCBub3JtYWxpemluZyBlYWNoIHNjb3JlIGJldHdlZW4g
MCBhbmQgMQorLy8gYW5kIGNvbWJpbmluZyB0aGVtLiBUaGUgZGlzdGFuY2UgdG8gYWRqdXN0IHdv
cmtzIGJlc3QgZm9yIGRpc2FtYmlndWF0aW5nIGNsaWNrcyBvbiB0YXJnZXRzIHN1Y2gKKy8vIGFz
IGxpbmtzLCB3aGVyZSB0aGUgd2lkdGggbWF5IGJlIHNpZ25pZmljYW50bHkgbGFyZ2VyIHRoYW4g
dGhlIHRvdWNoIHdpZHRoLiBVc2luZyBhcmVhIG9mIG92ZXJsYXAKKy8vIGluIHN1Y2ggY2FzZXMg
Y2FuIGxlYWQgdG8gYSBiaWFzIHRvd2FyZHMgc2hvcnRlciBsaW5rcy4gQ29udmVyc2VseSwgcGVy
Y2VudGFnZSBvZiBvdmVybGFwIGNhbgorLy8gcHJvdmlkZSBzdHJvbmcgY29uZmlkZW5jZSBpbiB0
YXBwaW5nIG9uIGEgc21hbGwgdGFyZ2V0LCB3aGVyZSB0aGUgb3ZlcmxhcCBpcyBvZnRlbiBxdWl0
ZSBoaWdoLAorLy8gYW5kIHdvcmtzIHdlbGwgZm9yIHRpZ2h0bHkgcGFja2VkIGNvbnRyb2xzLgor
ZmxvYXQgaHlicmlkRGlzdGFuY2VGdW5jdGlvbihjb25zdCBJbnRQb2ludCYgdG91Y2hIb3RzcG90
LCBjb25zdCBJbnRSZWN0JiB0b3VjaFJlY3QsIGNvbnN0IFN1YnRhcmdldEdlb21ldHJ5JiBzdWJ0
YXJnZXQpCiB7CiAgICAgSW50UmVjdCByZWN0ID0gc3VidGFyZ2V0LmJvdW5kaW5nQm94KCk7CiAK
ICAgICAvLyBDb252ZXJ0IGZyb20gZnJhbWUgY29vcmRpbmF0ZXMgdG8gd2luZG93IGNvb3JkaW5h
dGVzLgogICAgIHJlY3QgPSBzdWJ0YXJnZXQubm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCktPmNv
bnRlbnRzVG9XaW5kb3cocmVjdCk7CiAgICAKLSAgICBmbG9hdCB0b3VjaFdpZHRoID0gdG91Y2hB
cmVhLndpZHRoKCk7Ci0gICAgZmxvYXQgdG91Y2hIZWlnaHQgPSB0b3VjaEFyZWEuaGVpZ2h0KCk7
Ci0gICAgZmxvYXQgZGlzdGFuY2VTY2FsZSA9ICB0b3VjaFdpZHRoICogdG91Y2hXaWR0aCArIHRv
dWNoSGVpZ2h0ICogdG91Y2hIZWlnaHQ7Ci0gICAgZmxvYXQgZGlzdGFuY2VUb0NlbnRlclNjb3Jl
ID0gcmVjdC5kaXN0YW5jZVNxdWFyZWRGcm9tQ2VudGVyTGluZVRvUG9pbnQodG91Y2hIb3RzcG90
KSAvIGRpc3RhbmNlU2NhbGU7CisgICAgZmxvYXQgcmFkaXVzU3F1YXJlZCA9IDAuMjVmICogKHRv
dWNoUmVjdC5zaXplKCkuZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCkpOworICAgIGZsb2F0IGRpc3Rh
bmNlVG9BZGp1c3RTY29yZSA9IHJlY3QuZGlzdGFuY2VTcXVhcmVkVG9Qb2ludCh0b3VjaEhvdHNw
b3QpIC8gcmFkaXVzU3F1YXJlZDsKIAogICAgIGZsb2F0IHRhcmdldEFyZWEgPSByZWN0LnNpemUo
KS5hcmVhKCk7Ci0gICAgcmVjdC5pbnRlcnNlY3QodG91Y2hBcmVhKTsKKyAgICByZWN0LmludGVy
c2VjdCh0b3VjaFJlY3QpOwogICAgIGZsb2F0IGludGVyc2VjdEFyZWEgPSByZWN0LnNpemUoKS5h
cmVhKCk7CiAgICAgZmxvYXQgaW50ZXJzZWN0aW9uU2NvcmUgPSAxIC0gaW50ZXJzZWN0QXJlYSAv
IHRhcmdldEFyZWE7CiAKLSAgICByZXR1cm4gaW50ZXJzZWN0aW9uU2NvcmUgPCBkaXN0YW5jZVRv
Q2VudGVyU2NvcmUgPyBpbnRlcnNlY3Rpb25TY29yZSA6IGRpc3RhbmNlVG9DZW50ZXJTY29yZTsK
KyAgICBmbG9hdCBoeWJyaWRTY29yZSA9IGludGVyc2VjdGlvblNjb3JlICsgZGlzdGFuY2VUb0Fk
anVzdFNjb3JlOworCisgICAgcmV0dXJuIGh5YnJpZFNjb3JlOwogfQogCiBGbG9hdFBvaW50IGNv
bnRlbnRzVG9XaW5kb3coRnJhbWVWaWV3ICp2aWV3LCBGbG9hdFBvaW50IHB0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcAppbmRleCBmZDFlNTA5NDkxMmJk
MjhlZTIzOWM2M2YzZjcwZjQ1OWQxYTYzMWVhLi5mYWRjZWFiNzgxYjU3Y2M5YzliM2I3NmZjOTEz
OWYyYzk0ODI4MTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0LmNwcApAQCAtMTQ4LDE5ICsxNDgsNiBAQCBJbnRTaXplIEludFJlY3Q6OmRpZmZlcmVuY2VU
b1BvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKICAgICByZXR1cm4gSW50U2l6ZSh4
ZGlzdGFuY2UsIHlkaXN0YW5jZSk7CiB9CiAKLUludFNpemUgSW50UmVjdDo6ZGlmZmVyZW5jZUZy
b21DZW50ZXJMaW5lVG9Qb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAg
Ly8gVGhlIGNlbnRlci1saW5lIGlzIHRoZSBuYXR1cmFsIGNlbnRlciBvZiBhIHJlY3RhbmdsZS4g
SXQgaGFzIGFuIGVxdWFsIGRpc3RhbmNlIHRvIGFsbCBzaWRlcyBvZiB0aGUgcmVjdGFuZ2xlLgot
ICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gY2VudGVyKCk7Ci0gICAgaW50IHhkaXN0YW5jZSA9
IGNlbnRlclBvaW50LngoKSAtIHBvaW50LngoKTsKLSAgICBpbnQgeWRpc3RhbmNlID0gY2VudGVy
UG9pbnQueSgpIC0gcG9pbnQueSgpOwotICAgIGlmICh3aWR0aCgpID4gaGVpZ2h0KCkpCi0gICAg
ICAgIHhkaXN0YW5jZSA9IGRpc3RhbmNlVG9JbnRlcnZhbChwb2ludC54KCksIHgoKSArIChoZWln
aHQoKSAvIDIpLCBtYXhYKCkgLSAoaGVpZ2h0KCkgLyAyKSk7Ci0gICAgZWxzZQotICAgICAgICB5
ZGlzdGFuY2UgPSBkaXN0YW5jZVRvSW50ZXJ2YWwocG9pbnQueSgpLCB5KCkgKyAod2lkdGgoKSAv
IDIpLCBtYXhZKCkgLSAod2lkdGgoKSAvIDIpKTsKLSAgICByZXR1cm4gSW50U2l6ZSh4ZGlzdGFu
Y2UsIHlkaXN0YW5jZSk7Ci19Ci0KIEludFJlY3QgdW5pb25SZWN0KGNvbnN0IFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMpCiB7CiAgICAgSW50UmVjdCByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKaW5kZXggZWRhNTgyZDIxMzFiMGNiNWFiMjhkMTBjYjY3
ZTMxMDVjZmJhNzg4Yy4uZmIyOWIzZjhlOGM4ZWQxOGZlNWRiNzg5YWIyMDljYWQ5ZWQ2MGQxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaApAQCAtMTg5LDkg
KzE4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjYWxlKGZsb2F0IHMpOwogCiAgICAgSW50U2l6
ZSBkaWZmZXJlbmNlVG9Qb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotICAgIEludFNpemUg
ZGlmZmVyZW5jZUZyb21DZW50ZXJMaW5lVG9Qb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0Owog
ICAgIGludCBkaXN0YW5jZVNxdWFyZWRUb1BvaW50KGNvbnN0IEludFBvaW50JiBwKSBjb25zdCB7
IHJldHVybiBkaWZmZXJlbmNlVG9Qb2ludChwKS5kaWFnb25hbExlbmd0aFNxdWFyZWQoKTsgfQot
ICAgIGludCBkaXN0YW5jZVNxdWFyZWRGcm9tQ2VudGVyTGluZVRvUG9pbnQoY29uc3QgSW50UG9p
bnQmIHApIGNvbnN0IHsgcmV0dXJuIGRpZmZlcmVuY2VGcm9tQ2VudGVyTGluZVRvUG9pbnQocCku
ZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCk7IH0KIAogICAgIEludFJlY3QgdHJhbnNwb3NlZFJlY3Qo
KSBjb25zdCB7IHJldHVybiBJbnRSZWN0KG1fbG9jYXRpb24udHJhbnNwb3NlZFBvaW50KCksIG1f
c2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163633</attachid>
            <date>2012-09-12 08:16:42 -0700</date>
            <delta_ts>2012-09-20 01:44:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96519-20120912171606.patch</filename>
            <type>text/plain</type>
            <size>8818</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM0MjE0ZDNkZjBkOWE2
YTViZWNiNmU0MWIxMTk3NmRjMjNhZDIzMS4uODcxYmY3ODgyYzUyNzllOWZmNjUzODU5NTlkNGUz
OTZmZTZlYThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTEyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtU
b3VjaEFkanVzdG1lbnRdIFNpbXBsaWZ5IGFuZCBpbXByb3ZlIGh5YnJpZCBkaXN0YW5jZSBmdW5j
dGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
NTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IGN1cnJlbnQgZGlzdGFuY2UgZnVuY3Rpb24gaXMgYSBjb21iaW5hdGlvbiBvZiB0d28gZnVuY3Rp
b25zLiBPbmUgbWVhc3VyaW5nIHRoZSBkaXN0YW5jZSBmcm9tCisgICAgICAgIHRoZSBob3Qtc3Bv
dCBpbiB0aGUgdG91Y2gtYXJlYSB0byB0aGUgY2VudGVybGluZSBvZiB0aGUgdGFyZ2V0LCBhbmQg
b25lIG1lYXN1cmluZyBob3cgbXVjaCBvZiB0aGUKKyAgICAgICAgdGFyZ2V0IGlzIGNvdmVyZWQu
CisKKyAgICAgICAgVGhlIGRpc3RhbmNlIHRvIHRoZSBjZW50ZXItbGluZSB3YXMgdXNlZCBpbnN0
ZWFkIG9mIGp1c3QgdGhlIGRpc3RhbmNlIHRvIHRoZSB0YXJnZXQsIHRvIG1ha2UgaXQKKyAgICAg
ICAgZWFzaWVyIHRvIGhpdCBzbWFsbCB0YXJnZXRzIG5lYXIgYmlnIHRhcmdldHMuIFRoZSB2ZXJ5
IHNhbWUgZmVhdHVyZSBpcyBob3dldmVyIGFsc28gdGhlIHJlYXNvbgorICAgICAgICBtZWFzdXJp
bmcgaG93IG11Y2ggdGhlIHRhcmdldCBpcyBjb3ZlcmVkIGlzIGFkZGVkLiBVc2luZyB0aGUgZGlz
dGFuY2UgdG8gY2VudGVyLWxpbmUgaXMgdGhlcmVmb3JlCisgICAgICAgIHJlZHVuZGFudCBub3cs
IGFuZCBjYW4gYmUgcmVwbGFjZWQgd2l0aCB0aGUgc2ltcGxlciAnZGlzdGFuY2UgdGhlIGhvdC1z
cG90IG5lZWRzIHRvIGJlIGFkanVzdGVkJy4KKworICAgICAgICBUZXN0ZWQgYnkgZXhpc3Rpbmcg
dG91Y2hhZGp1c3RtZW50IHRlc3RzLgorCisgICAgICAgICogcGFnZS9Ub3VjaEFkanVzdG1lbnQu
Y3BwOgorICAgICAgICAoVG91Y2hBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNo
QWRqdXN0bWVudDo6aHlicmlkRGlzdGFuY2VGdW5jdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dC5oOgorICAgICAgICAoSW50UmVjdCk6CisKIDIwMTItMDktMDcgIEFsbGFuIFNhbmRmZWxkIEpl
bnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgW1RvdWNoQWRqdXN0bWVu
dF0gQWRqdXN0ZWQgcG9pbnQgb3V0c2lkZSBib3VuZHMgZm9yIG5vbi1yZWN0aWxpbmVhciB0YXJn
ZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RvdWNoQWRqdXN0bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RvdWNoQWRqdXN0bWVudC5jcHAKaW5kZXggNGFlYjM0M2Fm
ZWZkZmU4OTQwZGRlZjQ4OGMzMmE3YWMzMzRjY2I2ZC4uOTY2M2Y2OGU4OTE0NTI5NTQxZDc4YWE3
MjdkYjkyNDg2OTMyM2M4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Ub3VjaEFk
anVzdG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVG91Y2hBZGp1c3RtZW50LmNw
cApAQCAtMjg1LDIzICsyODUsNiBAQCB2b2lkIGNvbXBpbGVab29tYWJsZVN1YnRhcmdldHMoY29u
c3QgTm9kZUxpc3QmIGludGVyc2VjdGVkTm9kZXMsIFN1YnRhcmdldEdlb21ldAogICAgIH0KIH0K
IAotCi1mbG9hdCBkaXN0YW5jZVNxdWFyZWRUb1RhcmdldENlbnRlckxpbmUoY29uc3QgSW50UG9p
bnQmIHRvdWNoSG90c3BvdCwgY29uc3QgSW50UmVjdCYgdG91Y2hBcmVhLCBjb25zdCBTdWJ0YXJn
ZXRHZW9tZXRyeSYgc3VidGFyZ2V0KQotewotICAgIFVOVVNFRF9QQVJBTSh0b3VjaEFyZWEpOwot
ICAgIC8vIEZvciBhIGJldHRlciBjZW50ZXIgb2YgYSBsaW5lLWJveCB3ZSB1c2UgdGhlIGNlbnRl
ci1saW5lIGluc3RlYWQgb2YgdGhlIGNlbnRlci1wb2ludC4KLSAgICAvLyBXZSB1c2UgdGhlIGNl
bnRlci1saW5lIG9mIHRoZSBib3VuZGluZyBib3ggb2YgdGhlIHF1YWQgdGhvdWdoLCBzaW5jZSBp
dCBpcyBtdWNoIGZhc3RlcgotICAgIC8vIGFuZCBnaXZlcyB0aGUgc2FtZSByZXN1bHQgaW4gYWxs
IHVudHJhbnNmb3JtZWQgY2FzZXMsIGFuZCBpbiB0cmFuc2Zvcm1lZCBjYXNlcyBzdGlsbAotICAg
IC8vIGdpdmVzIGEgYmV0dGVyIGRpc3RhbmNlLWZ1bmN0aW9uIHRoYW4gdGhlIGRpc3RhbmNlIHRv
IHRoZSBjZW50ZXItcG9pbnQuCi0gICAgSW50UmVjdCByZWN0ID0gc3VidGFyZ2V0LmJvdW5kaW5n
Qm94KCk7Ci0gICAgQVNTRVJUKHN1YnRhcmdldC5ub2RlKCktPmRvY3VtZW50KCkpOwotICAgIEFT
U0VSVChzdWJ0YXJnZXQubm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCkpOwotICAgIC8vIENvbnZl
cnQgZnJvbSBmcmFtZSBjb29yZGluYXRlcyB0byB3aW5kb3cgY29vcmRpbmF0ZXMuCi0gICAgcmVj
dCA9IHN1YnRhcmdldC5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRv
dyhyZWN0KTsKLQotICAgIHJldHVybiByZWN0LmRpc3RhbmNlU3F1YXJlZEZyb21DZW50ZXJMaW5l
VG9Qb2ludCh0b3VjaEhvdHNwb3QpOwotfQotCiAvLyBUaGlzIHJldHVybnMgcXVvdGllbnQgb2Yg
dGhlIHRhcmdldCBhcmVhIGFuZCBpdHMgaW50ZXJzZWN0aW9uIHdpdGggdGhlIHRvdWNoIGFyZWEu
CiAvLyBUaGlzIHdpbGwgcHJpb3JpdGl6ZSBsYXJnZXN0IGludGVyc2VjdGlvbiBhbmQgc21hbGxl
c3QgYXJlYSwgd2hpbGUgYmFsYW5jaW5nIHRoZSB0d28gYWdhaW5zdCBlYWNoIG90aGVyLgogZmxv
YXQgem9vbWFibGVJbnRlcnNlY3Rpb25RdW90aWVudChjb25zdCBJbnRQb2ludCYgdG91Y2hIb3Rz
cG90LCBjb25zdCBJbnRSZWN0JiB0b3VjaEFyZWEsIGNvbnN0IFN1YnRhcmdldEdlb21ldHJ5JiBz
dWJ0YXJnZXQpCkBAIC0zMjEsMzIgKzMwNCwzMCBAQCBmbG9hdCB6b29tYWJsZUludGVyc2VjdGlv
blF1b3RpZW50KGNvbnN0IEludFBvaW50JiB0b3VjaEhvdHNwb3QsIGNvbnN0IEludFJlY3QmCiAg
ICAgcmV0dXJuIHJlY3Quc2l6ZSgpLmFyZWEoKSAvIChmbG9hdClpbnRlcnNlY3Rpb24uc2l6ZSgp
LmFyZWEoKTsKIH0KIAotLy8gVXNlcyBhIGh5YnJpZCBvZiBkaXN0YW5jZSB0byBjZW50ZXIgYW5k
IGludGVyc2VjdCByYXRpbywgbm9ybWFsaXppbmcgZWFjaAotLy8gc2NvcmUgYmV0d2VlbiAwIGFu
ZCAxIGFuZCBjaG9vc2luZyB0aGUgYmV0dGVyIHNjb3JlLiBUaGUgZGlzdGFuY2UgdG8KLS8vIGNl
bnRlcmxpbmUgd29ya3MgYmVzdCBmb3IgZGlzYW1iaWd1YXRpbmcgY2xpY2tzIG9uIHRhcmdldHMg
c3VjaCBhcyBsaW5rcywKLS8vIHdoZXJlIHRoZSB3aWR0aCBtYXkgYmUgc2lnbmlmaWNhbnRseSBs
YXJnZXIgdGhhbiB0aGUgdG91Y2ggd2lkdGguIFVzaW5nCi0vLyBhcmVhIG9mIG92ZXJsYXAgaW4g
c3VjaCBjYXNlcyBjYW4gbGVhZCB0byBhIGJpYXMgdG93YXJkcyBzaG9ydGVyIGxpbmtzLgotLy8g
Q29udmVyc2VseSwgcGVyY2VudGFnZSBvZiBvdmVybGFwIGNhbiBwcm92aWRlIHN0cm9uZyBjb25m
aWRlbmNlIGluIHRhcHBpbmcKLS8vIG9uIGEgc21hbGwgdGFyZ2V0LCB3aGVyZSB0aGUgb3Zlcmxh
cCBpcyBvZnRlbiBxdWl0ZSBoaWdoLCBhbmQgd29ya3Mgd2VsbAotLy8gZm9yIHRpZ2h0bHkgcGFj
a2VkIGNvbnRyb2xzLgotZmxvYXQgaHlicmlkRGlzdGFuY2VGdW5jdGlvbihjb25zdCBJbnRQb2lu
dCYgdG91Y2hIb3RzcG90LCBjb25zdCBJbnRSZWN0JiB0b3VjaEFyZWEsIGNvbnN0IFN1YnRhcmdl
dEdlb21ldHJ5JiBzdWJ0YXJnZXQpCisvLyBVc2VzIGEgaHlicmlkIG9mIGRpc3RhbmNlIHRvIGFk
anVzdCBhbmQgaW50ZXJzZWN0IHJhdGlvLCBub3JtYWxpemluZyBlYWNoIHNjb3JlIGJldHdlZW4g
MCBhbmQgMQorLy8gYW5kIGNvbWJpbmluZyB0aGVtLiBUaGUgZGlzdGFuY2UgdG8gYWRqdXN0IHdv
cmtzIGJlc3QgZm9yIGRpc2FtYmlndWF0aW5nIGNsaWNrcyBvbiB0YXJnZXRzIHN1Y2gKKy8vIGFz
IGxpbmtzLCB3aGVyZSB0aGUgd2lkdGggbWF5IGJlIHNpZ25pZmljYW50bHkgbGFyZ2VyIHRoYW4g
dGhlIHRvdWNoIHdpZHRoLiBVc2luZyBhcmVhIG9mIG92ZXJsYXAKKy8vIGluIHN1Y2ggY2FzZXMg
Y2FuIGxlYWQgdG8gYSBiaWFzIHRvd2FyZHMgc2hvcnRlciBsaW5rcy4gQ29udmVyc2VseSwgcGVy
Y2VudGFnZSBvZiBvdmVybGFwIGNhbgorLy8gcHJvdmlkZSBzdHJvbmcgY29uZmlkZW5jZSBpbiB0
YXBwaW5nIG9uIGEgc21hbGwgdGFyZ2V0LCB3aGVyZSB0aGUgb3ZlcmxhcCBpcyBvZnRlbiBxdWl0
ZSBoaWdoLAorLy8gYW5kIHdvcmtzIHdlbGwgZm9yIHRpZ2h0bHkgcGFja2VkIGNvbnRyb2xzLgor
ZmxvYXQgaHlicmlkRGlzdGFuY2VGdW5jdGlvbihjb25zdCBJbnRQb2ludCYgdG91Y2hIb3RzcG90
LCBjb25zdCBJbnRSZWN0JiB0b3VjaFJlY3QsIGNvbnN0IFN1YnRhcmdldEdlb21ldHJ5JiBzdWJ0
YXJnZXQpCiB7CiAgICAgSW50UmVjdCByZWN0ID0gc3VidGFyZ2V0LmJvdW5kaW5nQm94KCk7CiAK
ICAgICAvLyBDb252ZXJ0IGZyb20gZnJhbWUgY29vcmRpbmF0ZXMgdG8gd2luZG93IGNvb3JkaW5h
dGVzLgogICAgIHJlY3QgPSBzdWJ0YXJnZXQubm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCktPmNv
bnRlbnRzVG9XaW5kb3cocmVjdCk7CiAgICAKLSAgICBmbG9hdCB0b3VjaFdpZHRoID0gdG91Y2hB
cmVhLndpZHRoKCk7Ci0gICAgZmxvYXQgdG91Y2hIZWlnaHQgPSB0b3VjaEFyZWEuaGVpZ2h0KCk7
Ci0gICAgZmxvYXQgZGlzdGFuY2VTY2FsZSA9ICB0b3VjaFdpZHRoICogdG91Y2hXaWR0aCArIHRv
dWNoSGVpZ2h0ICogdG91Y2hIZWlnaHQ7Ci0gICAgZmxvYXQgZGlzdGFuY2VUb0NlbnRlclNjb3Jl
ID0gcmVjdC5kaXN0YW5jZVNxdWFyZWRGcm9tQ2VudGVyTGluZVRvUG9pbnQodG91Y2hIb3RzcG90
KSAvIGRpc3RhbmNlU2NhbGU7CisgICAgZmxvYXQgcmFkaXVzU3F1YXJlZCA9IDAuMjVmICogKHRv
dWNoUmVjdC5zaXplKCkuZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCkpOworICAgIGZsb2F0IGRpc3Rh
bmNlVG9BZGp1c3RTY29yZSA9IHJlY3QuZGlzdGFuY2VTcXVhcmVkVG9Qb2ludCh0b3VjaEhvdHNw
b3QpIC8gcmFkaXVzU3F1YXJlZDsKIAogICAgIGZsb2F0IHRhcmdldEFyZWEgPSByZWN0LnNpemUo
KS5hcmVhKCk7Ci0gICAgcmVjdC5pbnRlcnNlY3QodG91Y2hBcmVhKTsKKyAgICByZWN0LmludGVy
c2VjdCh0b3VjaFJlY3QpOwogICAgIGZsb2F0IGludGVyc2VjdEFyZWEgPSByZWN0LnNpemUoKS5h
cmVhKCk7CiAgICAgZmxvYXQgaW50ZXJzZWN0aW9uU2NvcmUgPSAxIC0gaW50ZXJzZWN0QXJlYSAv
IHRhcmdldEFyZWE7CiAKLSAgICByZXR1cm4gaW50ZXJzZWN0aW9uU2NvcmUgPCBkaXN0YW5jZVRv
Q2VudGVyU2NvcmUgPyBpbnRlcnNlY3Rpb25TY29yZSA6IGRpc3RhbmNlVG9DZW50ZXJTY29yZTsK
KyAgICBmbG9hdCBoeWJyaWRTY29yZSA9IGludGVyc2VjdGlvblNjb3JlICsgZGlzdGFuY2VUb0Fk
anVzdFNjb3JlOworCisgICAgcmV0dXJuIGh5YnJpZFNjb3JlOwogfQogCiBGbG9hdFBvaW50IGNv
bnRlbnRzVG9XaW5kb3coRnJhbWVWaWV3ICp2aWV3LCBGbG9hdFBvaW50IHB0KQpAQCAtNDQ2LDE5
ICs0MjcsNiBAQCBib29sIGZpbmROb2RlV2l0aExvd2VzdERpc3RhbmNlTWV0cmljKE5vZGUqJiB0
YXJnZXROb2RlLCBJbnRQb2ludCYgdGFyZ2V0UG9pbnQsCiAgICAgICAgICAgICAgICAgICAgIHRh
cmdldFBvaW50ID0gYWRqdXN0ZWRQb2ludDsKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Tm9k
ZSA9IG5vZGU7CiAgICAgICAgICAgICAgICAgICAgIHRhcmdldEFyZWEgPSBpdC0+Ym91bmRpbmdC
b3goKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAvLyBN
aW5pbWl6ZSBhZGp1c3RtZW50IGRpc3RhbmNlLgotICAgICAgICAgICAgICAgICAgICBmbG9hdCBk
eCA9IHRhcmdldFBvaW50LngoKSAtIHRvdWNoSG90c3BvdC54KCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGZsb2F0IGR5ID0gdGFyZ2V0UG9pbnQueSgpIC0gdG91Y2hIb3RzcG90LnkoKTsKLSAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgYmVzdERpc3RhbmNlID0gZHggKiBkeCArIGR5ICogZHk7Ci0g
ICAgICAgICAgICAgICAgICAgIGR4ID0gYWRqdXN0ZWRQb2ludC54KCkgLSB0b3VjaEhvdHNwb3Qu
eCgpOwotICAgICAgICAgICAgICAgICAgICBkeSA9IGFkanVzdGVkUG9pbnQueSgpIC0gdG91Y2hI
b3RzcG90LnkoKTsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGlzdGFuY2UgPSBkeCAqIGR4
ICsgZHkgKiBkeTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdERpc3Rh
bmNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQb2ludCA9IGFkanVzdGVkUG9p
bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXROb2RlID0gbm9kZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldEFyZWEgPSBpdC0+Ym91bmRpbmdCb3goKTsKLSAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcAppbmRleCBm
ZDFlNTA5NDkxMmJkMjhlZTIzOWM2M2YzZjcwZjQ1OWQxYTYzMWVhLi5mYWRjZWFiNzgxYjU3Y2M5
YzliM2I3NmZjOTEzOWYyYzk0ODI4MTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbnRSZWN0LmNwcApAQCAtMTQ4LDE5ICsxNDgsNiBAQCBJbnRTaXplIEludFJlY3Q6
OmRpZmZlcmVuY2VUb1BvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKICAgICByZXR1
cm4gSW50U2l6ZSh4ZGlzdGFuY2UsIHlkaXN0YW5jZSk7CiB9CiAKLUludFNpemUgSW50UmVjdDo6
ZGlmZmVyZW5jZUZyb21DZW50ZXJMaW5lVG9Qb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNv
bnN0Ci17Ci0gICAgLy8gVGhlIGNlbnRlci1saW5lIGlzIHRoZSBuYXR1cmFsIGNlbnRlciBvZiBh
IHJlY3RhbmdsZS4gSXQgaGFzIGFuIGVxdWFsIGRpc3RhbmNlIHRvIGFsbCBzaWRlcyBvZiB0aGUg
cmVjdGFuZ2xlLgotICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gY2VudGVyKCk7Ci0gICAgaW50
IHhkaXN0YW5jZSA9IGNlbnRlclBvaW50LngoKSAtIHBvaW50LngoKTsKLSAgICBpbnQgeWRpc3Rh
bmNlID0gY2VudGVyUG9pbnQueSgpIC0gcG9pbnQueSgpOwotICAgIGlmICh3aWR0aCgpID4gaGVp
Z2h0KCkpCi0gICAgICAgIHhkaXN0YW5jZSA9IGRpc3RhbmNlVG9JbnRlcnZhbChwb2ludC54KCks
IHgoKSArIChoZWlnaHQoKSAvIDIpLCBtYXhYKCkgLSAoaGVpZ2h0KCkgLyAyKSk7Ci0gICAgZWxz
ZQotICAgICAgICB5ZGlzdGFuY2UgPSBkaXN0YW5jZVRvSW50ZXJ2YWwocG9pbnQueSgpLCB5KCkg
KyAod2lkdGgoKSAvIDIpLCBtYXhZKCkgLSAod2lkdGgoKSAvIDIpKTsKLSAgICByZXR1cm4gSW50
U2l6ZSh4ZGlzdGFuY2UsIHlkaXN0YW5jZSk7Ci19Ci0KIEludFJlY3QgdW5pb25SZWN0KGNvbnN0
IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMpCiB7CiAgICAgSW50UmVjdCByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKaW5kZXggZWRhNTgyZDIxMzFiMGNi
NWFiMjhkMTBjYjY3ZTMxMDVjZmJhNzg4Yy4uZmIyOWIzZjhlOGM4ZWQxOGZlNWRiNzg5YWIyMDlj
YWQ5ZWQ2MGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
aApAQCAtMTg5LDkgKzE4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjYWxlKGZsb2F0IHMpOwog
CiAgICAgSW50U2l6ZSBkaWZmZXJlbmNlVG9Qb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0Owot
ICAgIEludFNpemUgZGlmZmVyZW5jZUZyb21DZW50ZXJMaW5lVG9Qb2ludChjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIGludCBkaXN0YW5jZVNxdWFyZWRUb1BvaW50KGNvbnN0IEludFBvaW50
JiBwKSBjb25zdCB7IHJldHVybiBkaWZmZXJlbmNlVG9Qb2ludChwKS5kaWFnb25hbExlbmd0aFNx
dWFyZWQoKTsgfQotICAgIGludCBkaXN0YW5jZVNxdWFyZWRGcm9tQ2VudGVyTGluZVRvUG9pbnQo
Y29uc3QgSW50UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIGRpZmZlcmVuY2VGcm9tQ2VudGVyTGlu
ZVRvUG9pbnQocCkuZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCk7IH0KIAogICAgIEludFJlY3QgdHJh
bnNwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KG1fbG9jYXRpb24udHJhbnNwb3Nl
ZFBvaW50KCksIG1fc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>