<?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>74216</bug_id>
          
          <creation_ts>2011-12-09 14:27:45 -0800</creation_ts>
          <short_desc>[chromium] Add three small zoom gesture features</short_desc>
          <delta_ts>2012-02-21 21:28:56 -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>New Bugs</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="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>518519</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-12-09 14:27:45 -0800</bug_when>
    <thetext>[chromium] Add three small zoom gesture features</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518542</commentid>
    <comment_count>1</comment_count>
      <attachid>118644</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-12-09 14:44:08 -0800</bug_when>
    <thetext>Created attachment 118644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532795</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-09 20:49:04 -0800</bug_when>
    <thetext>Ping.  We should submit this at some point to avoid diverging the branches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545549</commentid>
    <comment_count>3</comment_count>
      <attachid>124621</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-30 16:14:23 -0800</bug_when>
    <thetext>Created attachment 124621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545551</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-30 16:15:20 -0800</bug_when>
    <thetext>Added a unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545679</commentid>
    <comment_count>5</comment_count>
      <attachid>124621</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-30 18:10:06 -0800</bug_when>
    <thetext>Comment on attachment 124621
Patch

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

Not sure about the .95, everything else looks OK

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:511
&gt; +    if (m_prevPinchAnchor == IntPoint())

IntPoint should probably have .isZero() like IntSize does

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:550
&gt; +    if (m_pageScaleDelta &gt; 0.95)

this magic number feels really weird. why .95? why aren&apos;t we comparing to 1?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:553
&gt; +    // Cmpute where the scroll offset/page scale would be if fully pinch-zoomed

typo &quot;Cmpute&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545708</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-30 18:42:40 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 124621 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124621&amp;action=review
&gt; 
&gt; Not sure about the .95, everything else looks OK
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:511
&gt; &gt; +    if (m_prevPinchAnchor == IntPoint())
&gt; 
&gt; IntPoint should probably have .isZero() like IntSize does

Changed to == IntPoint::zero(), which is the closest approximation I can see.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:550
&gt; &gt; +    if (m_pageScaleDelta &gt; 0.95)
&gt; 
&gt; this magic number feels really weird. why .95? why aren&apos;t we comparing to 1?

The idea is not to be too aggressive in triggering this until the gesture is big enough that we think it&apos;s going to turn into a substantial zoom out (it could be initial jitter on a zoom in gesture, or an accidental second finger touching the screen -- in those cases, everything going blurry would be distracting).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545710</commentid>
    <comment_count>7</comment_count>
      <attachid>124656</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-30 18:43:41 -0800</bug_when>
    <thetext>Created attachment 124656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545716</commentid>
    <comment_count>8</comment_count>
      <attachid>124658</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-30 18:49:13 -0800</bug_when>
    <thetext>Created attachment 124658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548262</commentid>
    <comment_count>9</comment_count>
      <attachid>124658</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-02 17:02:39 -0800</bug_when>
    <thetext>Comment on attachment 124658
Patch

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

OK

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:551
&gt; +    if (m_pageScaleDelta &gt; 0.95)

i&apos;d weakly prefer that this magic number be made a named constant and defined outside the statement that uses it.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:156
&gt; +    IntPoint m_prevPinchAnchor;

naming nit: &quot;previous&quot; is better than &quot;prev&quot;

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:71
&gt; +            ASSERT_EQ(scrollDelta.width(), scrollInfo.scrolls[i].scrollDelta.width());
&gt; +            ASSERT_EQ(scrollDelta.height(), scrollInfo.scrolls[i].scrollDelta.height());

do we really need to crash the test immediately if these assertions fail, or could these be EXPECT_EQs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548424</commentid>
    <comment_count>10</comment_count>
      <attachid>125255</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-02-02 21:26:18 -0800</bug_when>
    <thetext>Created attachment 125255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548427</commentid>
    <comment_count>11</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-02-02 21:27:45 -0800</bug_when>
    <thetext>OK, made those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561575</commentid>
    <comment_count>12</comment_count>
      <attachid>125255</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 21:08:55 -0800</bug_when>
    <thetext>Comment on attachment 125255
Patch

R=me. Sorry this took so long, just kept forgetting about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561586</commentid>
    <comment_count>13</comment_count>
      <attachid>125255</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 21:28:51 -0800</bug_when>
    <thetext>Comment on attachment 125255
Patch

Clearing flags on attachment: 125255

Committed r108445: &lt;http://trac.webkit.org/changeset/108445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561587</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 21:28:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118644</attachid>
            <date>2011-12-09 14:44:08 -0800</date>
            <delta_ts>2012-01-30 16:14:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74216-20111209144407.patch</filename>
            <type>text/plain</type>
            <size>7562</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NmMmNiM2YzNDEzNGVm
OWUxNzYyYjBhNWQzZjZiMTZmZTE1MTE5YS4uYThjY2FlMzQyYzE3MWRhNzZmMmNmNDliNjdlNzQ1
NGRlODU2ZWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTEyLTA5ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aHJlZSBzbWFsbCB6b29tIGdlc3R1cmUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU3VwcG9ydCBwYW5uaW5nIGFyb3VuZCB3aXRo
IHR3byBmaW5nZXJzLgorICAgICAgICAyLiBXaGVuIGRvdWJsZS10YXAgem9vbWluZywgaXNzdWUg
dGhlIGNvbW1pdCBhdCBmaW5hbC9zY3JvbGwgc2NhbGUgYXMKKyAgICAgICAgZWFybHkgYXMgcG9z
c2libGUuCisgICAgICAgIDMuIFdoZW4gcGluY2ggem9vbWluZyBvdXQsIGlzc3VlIGEgY29tbWl0
IGF0IG1pbmltdW0gc2NhbGUgdG8gYXZvaWQKKyAgICAgICAgc2hvd2luZyBjaGVja2VyYm9hcmQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxNTI5KQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZURvdWJsZVRhcFpvb21EZWx0YXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZVBpbmNoWm9vbURl
bHRhcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjptYWtlU2Nyb2xs
QW5kU2NhbGVTZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cHJv
Y2Vzc1Njcm9sbERlbHRhcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oOgorCiAyMDExLTEyLTA4ICBFcmlrIEFydmlkc3NvbiAg
PGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29kZUdlbmVyYXRvclY4OiBGaXggaXNzdWUg
d2l0aCBvdmVybG9hZGVkIHN0YXRpYyBjb25kaXRpb25hbCBtZXRob2RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGUwY2QzODlkYzZmOGRmOTQwOGE5YzA1NTFl
NDA2ZWZiZDFkZjJiMGQuLjY5OTA5ODNhZmYzNjhmYzY4MDcwNGUzMTM1Zjg2MDI4MDM1YmZmMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0xMjQsNiArMTI0
LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihj
b25zdCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAgICAgbV9wYWdlU2NhbGVBbmltYXRp
b24tPnpvb21Ubyh0YXJnZXRQb3NpdGlvbiwgcGFnZVNjYWxlLCBkdXJhdGlvbk1zKTsKIAogICAg
IG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworICAgIG1fY2xpZW50LT5z
ZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OmRyYXdMYXllcnMoKQpAQCAtMzY4LDYgKzM2OSw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0
SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6
OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7
CisgICAgbV9wcmV2UGluY2hBbmNob3IgPSBJbnRQb2ludCgpOwogfQogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCkBAIC0z
NzUsMTkgKzM3NywyMSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVw
ZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVl
SG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZSIsIHRoaXMsIDApOwogCi0gICAgaWYgKG1hZ25p
ZnlEZWx0YSA9PSAxLjApCi0gICAgICAgIHJldHVybjsKICAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJ
bXBsKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV9wcmV2UGluY2hBbmNob3IgPT0gSW50
UG9pbnQoKSkKKyAgICAgICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICAvLyBL
ZWVwIHRoZSBjZW50ZXItb2YtcGluY2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkgaW4gYSBz
dGFibGUKICAgICAvLyBwb3NpdGlvbiBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25pZnkuCi0g
ICAgRmxvYXRQb2ludCBwcmV2U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVs
dGEsIGFuY2hvci55KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKKyAgICBGbG9hdFBvaW50IHByZXZT
Y2FsZUFuY2hvcihtX3ByZXZQaW5jaEFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBtX3By
ZXZQaW5jaEFuY2hvci55KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKICAgICBzZXRQYWdlU2NhbGVE
ZWx0YShtX3BhZ2VTY2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKICAgICBGbG9hdFBvaW50IG5l
d1NjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBhbmNob3IueSgpIC8g
bV9wYWdlU2NhbGVEZWx0YSk7Ci0KICAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hv
ciAtIG5ld1NjYWxlQW5jaG9yOwogCisgICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisK
ICAgICBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsQnkocm91bmRlZEludFNpemUobW92ZSkpOwog
ICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogICAgIG1fY2xpZW50
LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOwpAQCAtNDAwLDEyICs0MDQsNjYgQEAgdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQogICAgIG1fY2xpZW50LT5z
ZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OmNvbXB1dGVEb3VibGVUYXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9s
bEluZm8pCit7CisgICAgZmxvYXQgcGFnZVNjYWxlID0gbV9wYWdlU2NhbGVBbmltYXRpb24tPmZp
bmFsUGFnZVNjYWxlKCk7CisgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBtX3BhZ2VTY2FsZUFu
aW1hdGlvbi0+ZmluYWxTY3JvbGxPZmZzZXQoKTsKKyAgICBzY3JvbGxPZmZzZXQuc2NhbGUobV9w
YWdlU2NhbGUgLyBwYWdlU2NhbGUpOworICAgIG1ha2VTY3JvbGxBbmRTY2FsZVNldChzY3JvbGxJ
bmZvLCBzY3JvbGxPZmZzZXQsIHBhZ2VTY2FsZSk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0
SW1wbDo6Y29tcHV0ZVBpbmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJ
bmZvKQoreworICAgIGlmICghbV9zY3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIE9ubHkgc2VuZCBmYWtlIHNjcm9sbC96b29tIGRlbHRhcyBpZiB3ZSdyZSBwaW5jaCB6
b29taW5nIG91dC4gVGhpcyBhbHNvCisgICAgLy8gZW5zdXJlcyBvbmx5IG9uZSBmYWtlIGRlbHRh
IHNldCB3aWxsIGJlIHNlbnQuCisgICAgaWYgKG1fcGFnZVNjYWxlRGVsdGEgPiAwLjk1KQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBDbXB1dGUgd2hlcmUgdGhlIHNjcm9sbCBvZmZzZXQvcGFn
ZSBzY2FsZSB3b3VsZCBiZSBpZiBmdWxseSBwaW5jaC16b29tZWQKKyAgICAvLyBvdXQgZnJvbSB0
aGUgYW5jaG9yIHBvaW50LgorICAgIEZsb2F0U2l6ZSBzY3JvbGxCZWdpbiA9IHRvU2l6ZShtX3Nj
cm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxEZWx0YSgpKTsKKyAgICBzY3JvbGxCZWdpbi5zY2FsZShtX3BhZ2VTY2FsZURlbHRhKTsKKyAg
ICBmbG9hdCBzY2FsZUJlZ2luID0gbV9wYWdlU2NhbGUgKiBtX3BhZ2VTY2FsZURlbHRhOworICAg
IGZsb2F0IHBhZ2VTY2FsZURlbHRhVG9TZW5kID0gbV9taW5QYWdlU2NhbGUgLyBtX3BhZ2VTY2Fs
ZTsKKyAgICBGbG9hdFNpemUgc2NhbGVkQ29udGVudHNTaXplID0gbV9zY3JvbGxMYXllckltcGwt
PmNoaWxkcmVuKClbMF0tPmNvbnRlbnRCb3VuZHMoKTsKKyAgICBzY2FsZWRDb250ZW50c1NpemUu
c2NhbGUocGFnZVNjYWxlRGVsdGFUb1NlbmQpOworCisgICAgRmxvYXRTaXplIGFuY2hvciA9IHRv
U2l6ZShtX3ByZXZQaW5jaEFuY2hvcik7CisgICAgRmxvYXRTaXplIHNjcm9sbEVuZCA9IHNjcm9s
bEJlZ2luICsgYW5jaG9yOworICAgIHNjcm9sbEVuZC5zY2FsZShtX21pblBhZ2VTY2FsZSAvIHNj
YWxlQmVnaW4pOworICAgIHNjcm9sbEVuZCAtPSBhbmNob3I7CisgICAgc2Nyb2xsRW5kID0gc2Ny
b2xsRW5kLnNocnVua1RvKHJvdW5kZWRJbnRTaXplKHNjYWxlZENvbnRlbnRzU2l6ZSAtIG1fdmll
d3BvcnRTaXplKSkuZXhwYW5kZWRUbyhGbG9hdFNpemUoMCwgMCkpOworICAgIHNjcm9sbEVuZC5z
Y2FsZSgxIC8gcGFnZVNjYWxlRGVsdGFUb1NlbmQpOworCisgICAgbWFrZVNjcm9sbEFuZFNjYWxl
U2V0KHNjcm9sbEluZm8sIHJvdW5kZWRJbnRTaXplKHNjcm9sbEVuZCksIG1fbWluUGFnZVNjYWxl
KTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjptYWtlU2Nyb2xsQW5kU2NhbGVTZXQo
Q0NTY3JvbGxBbmRTY2FsZVNldCogc2Nyb2xsSW5mbywgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zm
c2V0LCBmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJ
bmZvIHNjcm9sbDsKKyAgICBzY3JvbGwubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgp
OworICAgIHNjcm9sbC5zY3JvbGxEZWx0YSA9IHNjcm9sbE9mZnNldCAtIHRvU2l6ZShtX3Njcm9s
bExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5h
cHBlbmQoc2Nyb2xsKTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2VudFNjcm9sbERlbHRh
KHNjcm9sbC5zY3JvbGxEZWx0YSk7CisgICAgbV9zZW50UGFnZVNjYWxlRGVsdGEgPSBzY3JvbGxJ
bmZvLT5wYWdlU2NhbGVEZWx0YSA9IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworfQorCiBQYXNz
T3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NT
Y3JvbGxEZWx0YXMoKQogewogICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJ
bmZvID0gYWRvcHRQdHIobmV3IENDU2Nyb2xsQW5kU2NhbGVTZXQoKSk7CiAgICAgYm9vbCBkaWRN
b3ZlID0gbV9zY3JvbGxMYXllckltcGwgJiYgKCFtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVs
dGEoKS5pc1plcm8oKSB8fCBtX3BhZ2VTY2FsZURlbHRhICE9IDEuMGYpOwogICAgIGlmICghZGlk
TW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSB8fCBtX3BhZ2VTY2FsZUFuaW1hdGlvbikgewog
ICAgICAgICBtX3NlbnRQYWdlU2NhbGVEZWx0YSA9IHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRh
ID0gMTsKKyAgICAgICAgaWYgKG1fcGluY2hHZXN0dXJlQWN0aXZlKQorICAgICAgICAgICAgY29t
cHV0ZVBpbmNoWm9vbURlbHRhcyhzY3JvbGxJbmZvLmdldCgpKTsKKyAgICAgICAgZWxzZSBpZiAo
bV9wYWdlU2NhbGVBbmltYXRpb24uZ2V0KCkpCisgICAgICAgICAgICBjb21wdXRlRG91YmxlVGFw
Wm9vbURlbHRhcyhzY3JvbGxJbmZvLmdldCgpKTsKICAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8u
cmVsZWFzZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmlu
ZGV4IDg4N2M3ZTY1NTc3ZTc5ZTBlMjhhZDA3ODhiZTIzMmQ3NTdhNGMyM2YuLmVmYjZhNDVjMDk2
ZDkzNTZkYTk1ZDJhZDYwZGQxNTUyYzRjOGVkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgKQEAgLTEyNCw2ICsxMjQsMTAgQEAgcHJvdGVjdGVkOgogICAgIGludCBtX2Zy
YW1lTnVtYmVyOwogCiBwcml2YXRlOgorICAgIHZvaWQgY29tcHV0ZURvdWJsZVRhcFpvb21EZWx0
YXMoQ0NTY3JvbGxBbmRTY2FsZVNldCogc2Nyb2xsSW5mbyk7CisgICAgdm9pZCBjb21wdXRlUGlu
Y2hab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pOworICAgIHZvaWQg
bWFrZVNjcm9sbEFuZFNjYWxlU2V0KENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8sIGNv
bnN0IEludFNpemUmIHNjcm9sbE9mZnNldCwgZmxvYXQgcGFnZVNjYWxlKTsKKwogICAgIHZvaWQg
c2V0UGFnZVNjYWxlRGVsdGEoZmxvYXQpOwogICAgIHZvaWQgYXBwbHlQYWdlU2NhbGVEZWx0YVRv
U2Nyb2xsTGF5ZXIoKTsKICAgICB2b2lkIGFkanVzdFNjcm9sbHNGb3JQYWdlU2NhbGVDaGFuZ2Uo
ZmxvYXQpOwpAQCAtMTQzLDYgKzE0Nyw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5QYWdl
U2NhbGUsIG1fbWF4UGFnZVNjYWxlOwogCiAgICAgYm9vbCBtX3BpbmNoR2VzdHVyZUFjdGl2ZTsK
KyAgICBJbnRQb2ludCBtX3ByZXZQaW5jaEFuY2hvcjsKIAogICAgIE93blB0cjxDQ1BhZ2VTY2Fs
ZUFuaW1hdGlvbj4gbV9wYWdlU2NhbGVBbmltYXRpb247CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124621</attachid>
            <date>2012-01-30 16:14:23 -0800</date>
            <delta_ts>2012-01-30 18:43:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74216-20120130161422.patch</filename>
            <type>text/plain</type>
            <size>12463</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ3ZmRlNDhiNjA3YmQx
MjMxM2E2N2M2Y2E1ZDE0MzEyZmVjNzkwOC4uNjFlYzYzZWI2ZmQ4MTRkYzBiMjk4YTc1ODNhODUw
Zjk5ZjkwZWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTEyLTA5ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aHJlZSBzbWFsbCB6b29tIGdlc3R1cmUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU3VwcG9ydCBwYW5uaW5nIGFyb3VuZCB3aXRo
IHR3byBmaW5nZXJzLgorICAgICAgICAyLiBXaGVuIGRvdWJsZS10YXAgem9vbWluZywgaXNzdWUg
dGhlIGNvbW1pdCBhdCBmaW5hbC9zY3JvbGwgc2NhbGUgYXMKKyAgICAgICAgZWFybHkgYXMgcG9z
c2libGUuCisgICAgICAgIDMuIFdoZW4gcGluY2ggem9vbWluZyBvdXQsIGlzc3VlIGEgY29tbWl0
IGF0IG1pbmltdW0gc2NhbGUgdG8gYXZvaWQKKyAgICAgICAgc2hvd2luZyBjaGVja2VyYm9hcmQu
CisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3IgcGFubmluZyB0byBDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdDo6cGluY2hHZXN0dXJlLgorICAgICAgICAoVGhlIG90aGVyIGZlYXR1cmVzIGFyZSBoZXVy
aXN0aWNzIHdob3NlIGV4YWN0IGJlaGF2aW9yIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gbG9j
ayBpbiB3aXRoIGEgdGVzdC4pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlUGluY2hab29t
RGVsdGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6Om1ha2VTY3Jv
bGxBbmRTY2FsZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
cm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisKIDIwMTItMDEtMjYgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFdLVFI6IFVz
ZSBhIHNvZnR3YXJlIHJlbmRlcmluZyBwaXBpbGluZSB3aGVuIHJ1bm5pbmcgdGVzdHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGM5ZGVkOThiMjAxMTNiMmIx
ZTg1Mzg2Njc4YWNiMzNiYTFmZjIwMDMuLmFlY2EwYjA1ZjIxNGJkMzNhNWQ2NjI4ODI4YzdjYWMz
MWFiMjI4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0x
MzYsNiArMTM2LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFu
aW1hdGlvbihjb25zdCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAgICAgbV9wYWdlU2Nh
bGVBbmltYXRpb24tPnpvb21Ubyh0YXJnZXRQb3NpdGlvbiwgcGFnZVNjYWxlLCBkdXJhdGlvbk1z
KTsKIAogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworICAgIG1f
Y2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3RE
cmF3TGF5ZXIsIGNvbnN0IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KQpAQCAt
NDk2LDYgKzQ5Nyw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRI
YW5kbGVycygpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkK
IHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7CisgICAgbV9wcmV2UGluY2hBbmNo
b3IgPSBJbnRQb2ludCgpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2Vz
dHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCkBAIC01MDMsMTkgKzUwNSwyMSBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVs
dGEsCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVy
ZVVwZGF0ZSIsIHRoaXMsIDApOwogCi0gICAgaWYgKG1hZ25pZnlEZWx0YSA9PSAxLjApCi0gICAg
ICAgIHJldHVybjsKICAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAobV9wcmV2UGluY2hBbmNob3IgPT0gSW50UG9pbnQoKSkKKyAgICAgICAgbV9w
cmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICAvLyBLZWVwIHRoZSBjZW50ZXItb2YtcGlu
Y2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkgaW4gYSBzdGFibGUKICAgICAvLyBwb3NpdGlv
biBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25pZnkuCi0gICAgRmxvYXRQb2ludCBwcmV2U2Nh
bGVBbmNob3IoYW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3Bh
Z2VTY2FsZURlbHRhKTsKKyAgICBGbG9hdFBvaW50IHByZXZTY2FsZUFuY2hvcihtX3ByZXZQaW5j
aEFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBtX3ByZXZQaW5jaEFuY2hvci55KCkgLyBt
X3BhZ2VTY2FsZURlbHRhKTsKICAgICBzZXRQYWdlU2NhbGVEZWx0YShtX3BhZ2VTY2FsZURlbHRh
ICogbWFnbmlmeURlbHRhKTsKICAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9yKGFuY2hvci54
KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBhbmNob3IueSgpIC8gbV9wYWdlU2NhbGVEZWx0YSk7Ci0K
ICAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hvciAtIG5ld1NjYWxlQW5jaG9yOwog
CisgICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICBtX3Njcm9sbExheWVySW1w
bC0+c2Nyb2xsQnkocm91bmRlZEludFNpemUobW92ZSkpOwogICAgIG1fY2xpZW50LT5zZXROZWVk
c0NvbW1pdE9uSW1wbFRocmVhZCgpOwogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1w
bFRocmVhZCgpOwpAQCAtNTI4LDEyICs1MzIsNjYgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpwaW5jaEdlc3R1cmVFbmQoKQogICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRo
cmVhZCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbXB1dGVEb3VibGVUYXBa
b29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pCit7CisgICAgZmxvYXQg
cGFnZVNjYWxlID0gbV9wYWdlU2NhbGVBbmltYXRpb24tPmZpbmFsUGFnZVNjYWxlKCk7CisgICAg
SW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBtX3BhZ2VTY2FsZUFuaW1hdGlvbi0+ZmluYWxTY3JvbGxP
ZmZzZXQoKTsKKyAgICBzY3JvbGxPZmZzZXQuc2NhbGUobV9wYWdlU2NhbGUgLyBwYWdlU2NhbGUp
OworICAgIG1ha2VTY3JvbGxBbmRTY2FsZVNldChzY3JvbGxJbmZvLCBzY3JvbGxPZmZzZXQsIHBh
Z2VTY2FsZSk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZVBpbmNoWm9v
bURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvKQoreworICAgIGlmICghbV9z
Y3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgc2VuZCBmYWtl
IHNjcm9sbC96b29tIGRlbHRhcyBpZiB3ZSdyZSBwaW5jaCB6b29taW5nIG91dC4gVGhpcyBhbHNv
CisgICAgLy8gZW5zdXJlcyBvbmx5IG9uZSBmYWtlIGRlbHRhIHNldCB3aWxsIGJlIHNlbnQuCisg
ICAgaWYgKG1fcGFnZVNjYWxlRGVsdGEgPiAwLjk1KQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBDbXB1dGUgd2hlcmUgdGhlIHNjcm9sbCBvZmZzZXQvcGFnZSBzY2FsZSB3b3VsZCBiZSBpZiBm
dWxseSBwaW5jaC16b29tZWQKKyAgICAvLyBvdXQgZnJvbSB0aGUgYW5jaG9yIHBvaW50LgorICAg
IEZsb2F0U2l6ZSBzY3JvbGxCZWdpbiA9IHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xs
UG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICBzY3Jv
bGxCZWdpbi5zY2FsZShtX3BhZ2VTY2FsZURlbHRhKTsKKyAgICBmbG9hdCBzY2FsZUJlZ2luID0g
bV9wYWdlU2NhbGUgKiBtX3BhZ2VTY2FsZURlbHRhOworICAgIGZsb2F0IHBhZ2VTY2FsZURlbHRh
VG9TZW5kID0gbV9taW5QYWdlU2NhbGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBGbG9hdFNpemUgc2Nh
bGVkQ29udGVudHNTaXplID0gbV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKClbMF0tPmNvbnRl
bnRCb3VuZHMoKTsKKyAgICBzY2FsZWRDb250ZW50c1NpemUuc2NhbGUocGFnZVNjYWxlRGVsdGFU
b1NlbmQpOworCisgICAgRmxvYXRTaXplIGFuY2hvciA9IHRvU2l6ZShtX3ByZXZQaW5jaEFuY2hv
cik7CisgICAgRmxvYXRTaXplIHNjcm9sbEVuZCA9IHNjcm9sbEJlZ2luICsgYW5jaG9yOworICAg
IHNjcm9sbEVuZC5zY2FsZShtX21pblBhZ2VTY2FsZSAvIHNjYWxlQmVnaW4pOworICAgIHNjcm9s
bEVuZCAtPSBhbmNob3I7CisgICAgc2Nyb2xsRW5kID0gc2Nyb2xsRW5kLnNocnVua1RvKHJvdW5k
ZWRJbnRTaXplKHNjYWxlZENvbnRlbnRzU2l6ZSAtIG1fdmlld3BvcnRTaXplKSkuZXhwYW5kZWRU
byhGbG9hdFNpemUoMCwgMCkpOworICAgIHNjcm9sbEVuZC5zY2FsZSgxIC8gcGFnZVNjYWxlRGVs
dGFUb1NlbmQpOworCisgICAgbWFrZVNjcm9sbEFuZFNjYWxlU2V0KHNjcm9sbEluZm8sIHJvdW5k
ZWRJbnRTaXplKHNjcm9sbEVuZCksIG1fbWluUGFnZVNjYWxlKTsKK30KKwordm9pZCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjptYWtlU2Nyb2xsQW5kU2NhbGVTZXQoQ0NTY3JvbGxBbmRTY2FsZVNldCog
c2Nyb2xsSW5mbywgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0LCBmbG9hdCBwYWdlU2NhbGUp
Cit7CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIHNjcm9sbDsKKyAgICBzY3Jv
bGwubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOworICAgIHNjcm9sbC5zY3JvbGxE
ZWx0YSA9IHNjcm9sbE9mZnNldCAtIHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsUG9z
aXRpb24oKSk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKyAgICBt
X3Njcm9sbExheWVySW1wbC0+c2V0U2VudFNjcm9sbERlbHRhKHNjcm9sbC5zY3JvbGxEZWx0YSk7
CisgICAgbV9zZW50UGFnZVNjYWxlRGVsdGEgPSBzY3JvbGxJbmZvLT5wYWdlU2NhbGVEZWx0YSA9
IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworfQorCiBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2Nh
bGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewogICAg
IE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3IEND
U2Nyb2xsQW5kU2NhbGVTZXQoKSk7CiAgICAgYm9vbCBkaWRNb3ZlID0gbV9zY3JvbGxMYXllcklt
cGwgJiYgKCFtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKS5pc1plcm8oKSB8fCBtX3Bh
Z2VTY2FsZURlbHRhICE9IDEuMGYpOwogICAgIGlmICghZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVy
ZUFjdGl2ZSB8fCBtX3BhZ2VTY2FsZUFuaW1hdGlvbikgewogICAgICAgICBtX3NlbnRQYWdlU2Nh
bGVEZWx0YSA9IHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhID0gMTsKKyAgICAgICAgaWYgKG1f
cGluY2hHZXN0dXJlQWN0aXZlKQorICAgICAgICAgICAgY29tcHV0ZVBpbmNoWm9vbURlbHRhcyhz
Y3JvbGxJbmZvLmdldCgpKTsKKyAgICAgICAgZWxzZSBpZiAobV9wYWdlU2NhbGVBbmltYXRpb24u
Z2V0KCkpCisgICAgICAgICAgICBjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyhzY3JvbGxJbmZv
LmdldCgpKTsKICAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmluZGV4IGE3MWFkYWU2NzUzMmYzMjQ5
NmE1NDI4NGFhNTdmNzBiMzQwNGNkMDEuLjUwNGJlZDAwNWE2OGIyM2I2ZDk4NWQwNzQyZjAwNDY1
MDU0NTIwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTEyNiw2
ICsxMjYsMTAgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQ
dHI8Q0NMYXllckltcGw+ID4gQ0NMYXllckxpc3Q7CiAKKyAgICB2b2lkIGNvbXB1dGVEb3VibGVU
YXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pOworICAgIHZvaWQg
Y29tcHV0ZVBpbmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvKTsK
KyAgICB2b2lkIG1ha2VTY3JvbGxBbmRTY2FsZVNldChDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3Jv
bGxJbmZvLCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQsIGZsb2F0IHBhZ2VTY2FsZSk7CisK
ICAgICB2b2lkIHNldFBhZ2VTY2FsZURlbHRhKGZsb2F0KTsKICAgICB2b2lkIGFwcGx5UGFnZVNj
YWxlRGVsdGFUb1Njcm9sbExheWVyKCk7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxzRm9yUGFnZVNj
YWxlQ2hhbmdlKGZsb2F0KTsKQEAgLTE0OSw2ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0
IG1fbWluUGFnZVNjYWxlLCBtX21heFBhZ2VTY2FsZTsKIAogICAgIGJvb2wgbV9waW5jaEdlc3R1
cmVBY3RpdmU7CisgICAgSW50UG9pbnQgbV9wcmV2UGluY2hBbmNob3I7CiAKICAgICBPd25QdHI8
Q0NQYWdlU2NhbGVBbmltYXRpb24+IG1fcGFnZVNjYWxlQW5pbWF0aW9uOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwCmluZGV4IDg2ODNiODRiMDNjYTM2ZmZjZDg0YzI1ZGI2MTk1NGY2ZTI2NjRkYzIuLjA5ZjU4
ZGE2NGIxYTRiYjQ2YzgzNDlkM2E4NTlhMWVhZTRhNDhlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBA
IC02Nyw3ICs2Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
Y3JvbGxJbmZvLnNjcm9sbHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChzY3JvbGxJ
bmZvLnNjcm9sbHNbaV0ubGF5ZXJJZCAhPSBpZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEs
IHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxEZWx0YS53aWR0aCgp
LCBzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAgICAg
ICBBU1NFUlRfRVEoc2Nyb2xsRGVsdGEuaGVpZ2h0KCksIHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5z
Y3JvbGxEZWx0YS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7CiAg
ICAgICAgIH0KIApAQCAtMTQyLDE0ICsxNDMsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICBzY3JvbGxJbmZvID0gbV9o
b3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShzY3JvbGxJbmZv
LT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50U2Nyb2xsRGVs
dGEoKSwgc2Nyb2xsRGVsdGEpOwotICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgp
LCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSk7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbElu
Zm8sIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhKTsKIAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEy
KC01LCAyNyk7CiAgICAgcm9vdC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3JvbGxJ
bmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShz
Y3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50
U2Nyb2xsRGVsdGEoKSwgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIGV4cGVjdENv
bnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSArIHNjcm9s
bERlbHRhMik7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHJvb3QtPmlkKCksIHNj
cm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KEludFNpemUo
KSk7CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsK
QEAgLTE4NCw2ICsxODUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBpbmNo
R2VzdHVyZSkKICAgICB7CiAgICAgICAgIG1faG9zdEltcGwtPnNldFBhZ2VTY2FsZUZhY3RvckFu
ZExpbWl0cygxLCBtaW5QYWdlU2NhbGUsIG1heFBhZ2VTY2FsZSk7CiAgICAgICAgIHNjcm9sbExh
eWVyLT5zZXRQYWdlU2NhbGVEZWx0YSgxKTsKKyAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFNjcm9s
bERlbHRhKEludFNpemUoKSk7CiAKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAyOwog
ICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjAwLDYgKzIwMiw3
IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAgIHsK
ICAgICAgICAgbV9ob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1pblBh
Z2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2Fs
ZURlbHRhKDEpOworICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgp
KTsKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAxMDsKIAogICAgICAgICBtX2hvc3RJ
bXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjE0LDYgKzIxNyw3IEBAIFRFU1RfRihDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAgIHsKICAgICAgICAgbV9ob3N0
SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1pblBhZ2VTY2FsZSwgbWF4UGFn
ZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2FsZURlbHRhKDEpOworICAg
ICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgpKTsKICAgICAgICAgc2Ny
b2xsTGF5ZXItPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KDUwLCA1MCkpOwogCiAgICAgICAg
IGZsb2F0IHBhZ2VTY2FsZURlbHRhID0gMC4xOwpAQCAtMjI1LDcgKzIyOSwyNSBAQCBURVNUX0Yo
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBpbmNoR2VzdHVyZSkKICAgICAgICAgRVhQRUNUX0VR
KHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBtaW5QYWdlU2NhbGUpOwogCiAgICAgICAgIC8v
IFB1c2hlZCB0byAoMCwwKSB2aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBzaXpl
LgotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXIt
PmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9s
bEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CisgICAgfQorCisg
ICAgLy8gVHdvLWZpbmdlciBwYW5uaW5nCisgICAgeworICAgICAgICBtX2hvc3RJbXBsLT5zZXRQ
YWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMoMSwgbWluUGFnZVNjYWxlLCBtYXhQYWdlU2NhbGUpOwor
ICAgICAgICBzY3JvbGxMYXllci0+c2V0UGFnZVNjYWxlRGVsdGEoMSk7CisgICAgICAgIHNjcm9s
bExheWVyLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworICAgICAgICBzY3JvbGxMYXllci0+
c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoMjAsIDIwKSk7CisKKyAgICAgICAgZmxvYXQgcGFn
ZVNjYWxlRGVsdGEgPSAxOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigp
OworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVVcGRhdGUocGFnZVNjYWxlRGVsdGEs
IEludFBvaW50KDEwLCAxMCkpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVVcGRh
dGUocGFnZVNjYWxlRGVsdGEsIEludFBvaW50KDIwLCAyMCkpOworICAgICAgICBtX2hvc3RJbXBs
LT5waW5jaEdlc3R1cmVFbmQoKTsKKworICAgICAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNl
dD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKKyAgICAg
ICAgRVhQRUNUX0VRKHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBwYWdlU2NhbGVEZWx0YSk7
CisgICAgICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLCBzY3JvbGxMYXllci0+aWQoKSwg
SW50U2l6ZSgtMTAsIC0xMCkpOwogICAgIH0KIH0KIApAQCAtMjU1LDcgKzI3Nyw3IEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGFnZVNjYWxlQW5pbWF0aW9uKQogCiAgICAgICAg
IE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJv
Y2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFnZVNj
YWxlRGVsdGEsIDIpOwotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwg
c2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29u
dGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7
CiAgICAgfQogCiAgICAgLy8gQW5jaG9yIHpvb20tb3V0CkBAIC0yNzIsNyArMjk0LDcgQEAgVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwYWdlU2NhbGVBbmltYXRpb24pCiAgICAgICAg
IE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJv
Y2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFnZVNj
YWxlRGVsdGEsIG1pblBhZ2VTY2FsZSk7CiAgICAgICAgIC8vIFB1c2hlZCB0byAoMCwwKSB2aWEg
Y2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBzaXplLgotICAgICAgICBleHBlY3RDb250
YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAt
NTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5p
ZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124656</attachid>
            <date>2012-01-30 18:43:41 -0800</date>
            <delta_ts>2012-01-30 18:49:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74216-20120130184340.patch</filename>
            <type>text/plain</type>
            <size>12502</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ3ZmRlNDhiNjA3YmQx
MjMxM2E2N2M2Y2E1ZDE0MzEyZmVjNzkwOC4uNjFlYzYzZWI2ZmQ4MTRkYzBiMjk4YTc1ODNhODUw
Zjk5ZjkwZWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTEyLTA5ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aHJlZSBzbWFsbCB6b29tIGdlc3R1cmUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU3VwcG9ydCBwYW5uaW5nIGFyb3VuZCB3aXRo
IHR3byBmaW5nZXJzLgorICAgICAgICAyLiBXaGVuIGRvdWJsZS10YXAgem9vbWluZywgaXNzdWUg
dGhlIGNvbW1pdCBhdCBmaW5hbC9zY3JvbGwgc2NhbGUgYXMKKyAgICAgICAgZWFybHkgYXMgcG9z
c2libGUuCisgICAgICAgIDMuIFdoZW4gcGluY2ggem9vbWluZyBvdXQsIGlzc3VlIGEgY29tbWl0
IGF0IG1pbmltdW0gc2NhbGUgdG8gYXZvaWQKKyAgICAgICAgc2hvd2luZyBjaGVja2VyYm9hcmQu
CisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3IgcGFubmluZyB0byBDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdDo6cGluY2hHZXN0dXJlLgorICAgICAgICAoVGhlIG90aGVyIGZlYXR1cmVzIGFyZSBoZXVy
aXN0aWNzIHdob3NlIGV4YWN0IGJlaGF2aW9yIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gbG9j
ayBpbiB3aXRoIGEgdGVzdC4pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlUGluY2hab29t
RGVsdGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6Om1ha2VTY3Jv
bGxBbmRTY2FsZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
cm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisKIDIwMTItMDEtMjYgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFdLVFI6IFVz
ZSBhIHNvZnR3YXJlIHJlbmRlcmluZyBwaXBpbGluZSB3aGVuIHJ1bm5pbmcgdGVzdHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGM5ZGVkOThiMjAxMTNiMmIx
ZTg1Mzg2Njc4YWNiMzNiYTFmZjIwMDMuLjllODAwYWQzYjU1NWFjMjJhMzYwNzhiOGIwZmU0OGM1
Y2VmNmZmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0x
MzYsNiArMTM2LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFu
aW1hdGlvbihjb25zdCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAgICAgbV9wYWdlU2Nh
bGVBbmltYXRpb24tPnpvb21Ubyh0YXJnZXRQb3NpdGlvbiwgcGFnZVNjYWxlLCBkdXJhdGlvbk1z
KTsKIAogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworICAgIG1f
Y2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3RE
cmF3TGF5ZXIsIGNvbnN0IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KQpAQCAt
NDk2LDYgKzQ5Nyw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRI
YW5kbGVycygpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkK
IHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7CisgICAgbV9wcmV2UGluY2hBbmNo
b3IgPSBJbnRQb2ludCgpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2Vz
dHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCkBAIC01MDMsMTkgKzUwNSwyMSBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVs
dGEsCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVy
ZVVwZGF0ZSIsIHRoaXMsIDApOwogCi0gICAgaWYgKG1hZ25pZnlEZWx0YSA9PSAxLjApCi0gICAg
ICAgIHJldHVybjsKICAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAobV9wcmV2UGluY2hBbmNob3IgPT0gSW50UG9pbnQ6Onplcm8oKSkKKyAgICAg
ICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICAvLyBLZWVwIHRoZSBjZW50ZXIt
b2YtcGluY2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkgaW4gYSBzdGFibGUKICAgICAvLyBw
b3NpdGlvbiBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25pZnkuCi0gICAgRmxvYXRQb2ludCBw
cmV2U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVsdGEsIGFuY2hvci55KCkg
LyBtX3BhZ2VTY2FsZURlbHRhKTsKKyAgICBGbG9hdFBvaW50IHByZXZTY2FsZUFuY2hvcihtX3By
ZXZQaW5jaEFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBtX3ByZXZQaW5jaEFuY2hvci55
KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKICAgICBzZXRQYWdlU2NhbGVEZWx0YShtX3BhZ2VTY2Fs
ZURlbHRhICogbWFnbmlmeURlbHRhKTsKICAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9yKGFu
Y2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBhbmNob3IueSgpIC8gbV9wYWdlU2NhbGVEZWx0
YSk7Ci0KICAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hvciAtIG5ld1NjYWxlQW5j
aG9yOwogCisgICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICBtX3Njcm9sbExh
eWVySW1wbC0+c2Nyb2xsQnkocm91bmRlZEludFNpemUobW92ZSkpOwogICAgIG1fY2xpZW50LT5z
ZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJh
d09uSW1wbFRocmVhZCgpOwpAQCAtNTI4LDEyICs1MzIsNjcgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQogICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9u
SW1wbFRocmVhZCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbXB1dGVEb3Vi
bGVUYXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pCit7CisgICAg
ZmxvYXQgcGFnZVNjYWxlID0gbV9wYWdlU2NhbGVBbmltYXRpb24tPmZpbmFsUGFnZVNjYWxlKCk7
CisgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBtX3BhZ2VTY2FsZUFuaW1hdGlvbi0+ZmluYWxT
Y3JvbGxPZmZzZXQoKTsKKyAgICBzY3JvbGxPZmZzZXQuc2NhbGUobV9wYWdlU2NhbGUgLyBwYWdl
U2NhbGUpOworICAgIG1ha2VTY3JvbGxBbmRTY2FsZVNldChzY3JvbGxJbmZvLCBzY3JvbGxPZmZz
ZXQsIHBhZ2VTY2FsZSk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZVBp
bmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvKQoreworICAgIGlm
ICghbV9zY3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgc2Vu
ZCBmYWtlIHNjcm9sbC96b29tIGRlbHRhcyBpZiB3ZSdyZSBwaW5jaCB6b29taW5nIG91dCBieSBh
CisgICAgLy8gc2lnbmlmaWNhbnQgYW1vdW50LiBUaGlzIGFsc28gZW5zdXJlcyBvbmx5IG9uZSBm
YWtlIGRlbHRhIHNldCB3aWxsIGJlCisgICAgLy8gc2VudC4KKyAgICBpZiAobV9wYWdlU2NhbGVE
ZWx0YSA+IDAuOTUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENvbXB1dGUgd2hlcmUgdGhl
IHNjcm9sbCBvZmZzZXQvcGFnZSBzY2FsZSB3b3VsZCBiZSBpZiBmdWxseSBwaW5jaC16b29tZWQK
KyAgICAvLyBvdXQgZnJvbSB0aGUgYW5jaG9yIHBvaW50LgorICAgIEZsb2F0U2l6ZSBzY3JvbGxC
ZWdpbiA9IHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Ny
b2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICBzY3JvbGxCZWdpbi5zY2FsZShtX3Bh
Z2VTY2FsZURlbHRhKTsKKyAgICBmbG9hdCBzY2FsZUJlZ2luID0gbV9wYWdlU2NhbGUgKiBtX3Bh
Z2VTY2FsZURlbHRhOworICAgIGZsb2F0IHBhZ2VTY2FsZURlbHRhVG9TZW5kID0gbV9taW5QYWdl
U2NhbGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBGbG9hdFNpemUgc2NhbGVkQ29udGVudHNTaXplID0g
bV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKClbMF0tPmNvbnRlbnRCb3VuZHMoKTsKKyAgICBz
Y2FsZWRDb250ZW50c1NpemUuc2NhbGUocGFnZVNjYWxlRGVsdGFUb1NlbmQpOworCisgICAgRmxv
YXRTaXplIGFuY2hvciA9IHRvU2l6ZShtX3ByZXZQaW5jaEFuY2hvcik7CisgICAgRmxvYXRTaXpl
IHNjcm9sbEVuZCA9IHNjcm9sbEJlZ2luICsgYW5jaG9yOworICAgIHNjcm9sbEVuZC5zY2FsZSht
X21pblBhZ2VTY2FsZSAvIHNjYWxlQmVnaW4pOworICAgIHNjcm9sbEVuZCAtPSBhbmNob3I7Cisg
ICAgc2Nyb2xsRW5kID0gc2Nyb2xsRW5kLnNocnVua1RvKHJvdW5kZWRJbnRTaXplKHNjYWxlZENv
bnRlbnRzU2l6ZSAtIG1fdmlld3BvcnRTaXplKSkuZXhwYW5kZWRUbyhGbG9hdFNpemUoMCwgMCkp
OworICAgIHNjcm9sbEVuZC5zY2FsZSgxIC8gcGFnZVNjYWxlRGVsdGFUb1NlbmQpOworCisgICAg
bWFrZVNjcm9sbEFuZFNjYWxlU2V0KHNjcm9sbEluZm8sIHJvdW5kZWRJbnRTaXplKHNjcm9sbEVu
ZCksIG1fbWluUGFnZVNjYWxlKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjptYWtl
U2Nyb2xsQW5kU2NhbGVTZXQoQ0NTY3JvbGxBbmRTY2FsZVNldCogc2Nyb2xsSW5mbywgY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0LCBmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgaWYgKCFtX3Nj
cm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0NMYXllclRyZWVIb3N0Q29t
bW9uOjpTY3JvbGxVcGRhdGVJbmZvIHNjcm9sbDsKKyAgICBzY3JvbGwubGF5ZXJJZCA9IG1fc2Ny
b2xsTGF5ZXJJbXBsLT5pZCgpOworICAgIHNjcm9sbC5zY3JvbGxEZWx0YSA9IHNjcm9sbE9mZnNl
dCAtIHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSk7CisgICAgc2Ny
b2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+
c2V0U2VudFNjcm9sbERlbHRhKHNjcm9sbC5zY3JvbGxEZWx0YSk7CisgICAgbV9zZW50UGFnZVNj
YWxlRGVsdGEgPSBzY3JvbGxJbmZvLT5wYWdlU2NhbGVEZWx0YSA9IHBhZ2VTY2FsZSAvIG1fcGFn
ZVNjYWxlOworfQorCiBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IENDTGF5ZXJUcmVl
SG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewogICAgIE93blB0cjxDQ1Njcm9sbEFu
ZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3IENDU2Nyb2xsQW5kU2NhbGVTZXQo
KSk7CiAgICAgYm9vbCBkaWRNb3ZlID0gbV9zY3JvbGxMYXllckltcGwgJiYgKCFtX3Njcm9sbExh
eWVySW1wbC0+c2Nyb2xsRGVsdGEoKS5pc1plcm8oKSB8fCBtX3BhZ2VTY2FsZURlbHRhICE9IDEu
MGYpOwogICAgIGlmICghZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSB8fCBtX3BhZ2VT
Y2FsZUFuaW1hdGlvbikgewogICAgICAgICBtX3NlbnRQYWdlU2NhbGVEZWx0YSA9IHNjcm9sbElu
Zm8tPnBhZ2VTY2FsZURlbHRhID0gMTsKKyAgICAgICAgaWYgKG1fcGluY2hHZXN0dXJlQWN0aXZl
KQorICAgICAgICAgICAgY29tcHV0ZVBpbmNoWm9vbURlbHRhcyhzY3JvbGxJbmZvLmdldCgpKTsK
KyAgICAgICAgZWxzZSBpZiAobV9wYWdlU2NhbGVBbmltYXRpb24uZ2V0KCkpCisgICAgICAgICAg
ICBjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyhzY3JvbGxJbmZvLmdldCgpKTsKICAgICAgICAg
cmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5oCmluZGV4IGE3MWFkYWU2NzUzMmYzMjQ5NmE1NDI4NGFhNTdmNzBiMzQw
NGNkMDEuLjUwNGJlZDAwNWE2OGIyM2I2ZDk4NWQwNzQyZjAwNDY1MDU0NTIwZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTEyNiw2ICsxMjYsMTAgQEAgcHJvdGVj
dGVkOgogcHJpdmF0ZToKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8Q0NMYXllckltcGw+ID4g
Q0NMYXllckxpc3Q7CiAKKyAgICB2b2lkIGNvbXB1dGVEb3VibGVUYXBab29tRGVsdGFzKENDU2Ny
b2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pOworICAgIHZvaWQgY29tcHV0ZVBpbmNoWm9vbURl
bHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvKTsKKyAgICB2b2lkIG1ha2VTY3Jv
bGxBbmRTY2FsZVNldChDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvLCBjb25zdCBJbnRT
aXplJiBzY3JvbGxPZmZzZXQsIGZsb2F0IHBhZ2VTY2FsZSk7CisKICAgICB2b2lkIHNldFBhZ2VT
Y2FsZURlbHRhKGZsb2F0KTsKICAgICB2b2lkIGFwcGx5UGFnZVNjYWxlRGVsdGFUb1Njcm9sbExh
eWVyKCk7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxzRm9yUGFnZVNjYWxlQ2hhbmdlKGZsb2F0KTsK
QEAgLTE0OSw2ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluUGFnZVNjYWxlLCBt
X21heFBhZ2VTY2FsZTsKIAogICAgIGJvb2wgbV9waW5jaEdlc3R1cmVBY3RpdmU7CisgICAgSW50
UG9pbnQgbV9wcmV2UGluY2hBbmNob3I7CiAKICAgICBPd25QdHI8Q0NQYWdlU2NhbGVBbmltYXRp
b24+IG1fcGFnZVNjYWxlQW5pbWF0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IDg2ODNiODRi
MDNjYTM2ZmZjZDg0YzI1ZGI2MTk1NGY2ZTI2NjRkYzIuLjA5ZjU4ZGE2NGIxYTRiYjQ2YzgzNDlk
M2E4NTlhMWVhZTRhNDhlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC02Nyw3ICs2Nyw4IEBAIHB1
YmxpYzoKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNjcm9sbHMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbHNbaV0ubGF5
ZXJJZCAhPSBpZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEFTU0VS
VF9FUShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKKyAg
ICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxEZWx0YS53aWR0aCgpLCBzY3JvbGxJbmZvLnNjcm9s
bHNbaV0uc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc2Nyb2xs
RGVsdGEuaGVpZ2h0KCksIHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5zY3JvbGxEZWx0YS5oZWlnaHQo
KSk7CiAgICAgICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7CiAgICAgICAgIH0KIApAQCAtMTQy
LDE0ICsxNDMsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0
YVJlcGVhdGVkU2Nyb2xscykKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Nj
cm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwg
MXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50U2Nyb2xsRGVsdGEoKSwgc2Nyb2xsRGVsdGEp
OwotICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3Jv
bGxEZWx0YSk7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHJvb3QtPmlkKCksIHNj
cm9sbERlbHRhKTsKIAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEyKC01LCAyNyk7CiAgICAgcm9v
dC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+
cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxz
LnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50U2Nyb2xsRGVsdGEoKSwgc2Ny
b2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZv
LmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSArIHNjcm9sbERlbHRhMik7CisgICAgZXhw
ZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhICsgc2Nyb2xs
RGVsdGEyKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KEludFNpemUoKSk7CiAgICAgc2Nyb2xsSW5m
byA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKQEAgLTE4NCw2ICsxODUsNyBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBpbmNoR2VzdHVyZSkKICAgICB7CiAg
ICAgICAgIG1faG9zdEltcGwtPnNldFBhZ2VTY2FsZUZhY3RvckFuZExpbWl0cygxLCBtaW5QYWdl
U2NhbGUsIG1heFBhZ2VTY2FsZSk7CiAgICAgICAgIHNjcm9sbExheWVyLT5zZXRQYWdlU2NhbGVE
ZWx0YSgxKTsKKyAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7
CiAKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAyOwogICAgICAgICBtX2hvc3RJbXBs
LT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjAwLDYgKzIwMiw3IEBAIFRFU1RfRihDQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAgIHsKICAgICAgICAgbV9ob3N0SW1w
bC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNj
YWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2FsZURlbHRhKDEpOworICAgICAg
ICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgpKTsKICAgICAgICAgZmxvYXQg
cGFnZVNjYWxlRGVsdGEgPSAxMDsKIAogICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVC
ZWdpbigpOwpAQCAtMjE0LDYgKzIxNyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgcGluY2hHZXN0dXJlKQogICAgIHsKICAgICAgICAgbV9ob3N0SW1wbC0+c2V0UGFnZVNjYWxl
RmFjdG9yQW5kTGltaXRzKDEsIG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsKICAgICAgICAg
c2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2FsZURlbHRhKDEpOworICAgICAgICBzY3JvbGxMYXllci0+
c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgpKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFNjcm9s
bFBvc2l0aW9uKEludFBvaW50KDUwLCA1MCkpOwogCiAgICAgICAgIGZsb2F0IHBhZ2VTY2FsZURl
bHRhID0gMC4xOwpAQCAtMjI1LDcgKzIyOSwyNSBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1w
bFRlc3QsIHBpbmNoR2VzdHVyZSkKICAgICAgICAgRVhQRUNUX0VRKHNjcm9sbEluZm8tPnBhZ2VT
Y2FsZURlbHRhLCBtaW5QYWdlU2NhbGUpOwogCiAgICAgICAgIC8vIFB1c2hlZCB0byAoMCwwKSB2
aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBzaXplLgotICAgICAgICBleHBlY3RD
b250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUw
LCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVy
LT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CisgICAgfQorCisgICAgLy8gVHdvLWZpbmdlciBw
YW5uaW5nCisgICAgeworICAgICAgICBtX2hvc3RJbXBsLT5zZXRQYWdlU2NhbGVGYWN0b3JBbmRM
aW1pdHMoMSwgbWluUGFnZVNjYWxlLCBtYXhQYWdlU2NhbGUpOworICAgICAgICBzY3JvbGxMYXll
ci0+c2V0UGFnZVNjYWxlRGVsdGEoMSk7CisgICAgICAgIHNjcm9sbExheWVyLT5zZXRTY3JvbGxE
ZWx0YShJbnRTaXplKCkpOworICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsUG9zaXRpb24o
SW50UG9pbnQoMjAsIDIwKSk7CisKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAxOwor
ICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOworICAgICAgICBtX2hvc3RJ
bXBsLT5waW5jaEdlc3R1cmVVcGRhdGUocGFnZVNjYWxlRGVsdGEsIEludFBvaW50KDEwLCAxMCkp
OworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVVcGRhdGUocGFnZVNjYWxlRGVsdGEs
IEludFBvaW50KDIwLCAyMCkpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVFbmQo
KTsKKworICAgICAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1f
aG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKKyAgICAgICAgRVhQRUNUX0VRKHNjcm9s
bEluZm8tPnBhZ2VTY2FsZURlbHRhLCBwYWdlU2NhbGVEZWx0YSk7CisgICAgICAgIGV4cGVjdENv
bnRhaW5zKCpzY3JvbGxJbmZvLCBzY3JvbGxMYXllci0+aWQoKSwgSW50U2l6ZSgtMTAsIC0xMCkp
OwogICAgIH0KIH0KIApAQCAtMjU1LDcgKzI3Nyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJ
bXBsVGVzdCwgcGFnZVNjYWxlQW5pbWF0aW9uKQogCiAgICAgICAgIE93blB0cjxDQ1Njcm9sbEFu
ZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygp
OwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFnZVNjYWxlRGVsdGEsIDIpOwotICAg
ICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCks
IEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8s
IHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CiAgICAgfQogCiAgICAgLy8g
QW5jaG9yIHpvb20tb3V0CkBAIC0yNzIsNyArMjk0LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LCBwYWdlU2NhbGVBbmltYXRpb24pCiAgICAgICAgIE93blB0cjxDQ1Njcm9sbEFu
ZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygp
OwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFnZVNjYWxlRGVsdGEsIG1pblBhZ2VT
Y2FsZSk7CiAgICAgICAgIC8vIFB1c2hlZCB0byAoMCwwKSB2aWEgY2xhbXBpbmcgYWdhaW5zdCBj
b250ZW50cyBsYXllciBzaXplLgotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5n
ZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhw
ZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwg
LTUwKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124658</attachid>
            <date>2012-01-30 18:49:13 -0800</date>
            <delta_ts>2012-02-02 21:26:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74216-20120130184912.patch</filename>
            <type>text/plain</type>
            <size>12466</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ3ZmRlNDhiNjA3YmQx
MjMxM2E2N2M2Y2E1ZDE0MzEyZmVjNzkwOC4uNjFlYzYzZWI2ZmQ4MTRkYzBiMjk4YTc1ODNhODUw
Zjk5ZjkwZWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTEyLTA5ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aHJlZSBzbWFsbCB6b29tIGdlc3R1cmUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU3VwcG9ydCBwYW5uaW5nIGFyb3VuZCB3aXRo
IHR3byBmaW5nZXJzLgorICAgICAgICAyLiBXaGVuIGRvdWJsZS10YXAgem9vbWluZywgaXNzdWUg
dGhlIGNvbW1pdCBhdCBmaW5hbC9zY3JvbGwgc2NhbGUgYXMKKyAgICAgICAgZWFybHkgYXMgcG9z
c2libGUuCisgICAgICAgIDMuIFdoZW4gcGluY2ggem9vbWluZyBvdXQsIGlzc3VlIGEgY29tbWl0
IGF0IG1pbmltdW0gc2NhbGUgdG8gYXZvaWQKKyAgICAgICAgc2hvd2luZyBjaGVja2VyYm9hcmQu
CisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3IgcGFubmluZyB0byBDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdDo6cGluY2hHZXN0dXJlLgorICAgICAgICAoVGhlIG90aGVyIGZlYXR1cmVzIGFyZSBoZXVy
aXN0aWNzIHdob3NlIGV4YWN0IGJlaGF2aW9yIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gbG9j
ayBpbiB3aXRoIGEgdGVzdC4pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlUGluY2hab29t
RGVsdGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6Om1ha2VTY3Jv
bGxBbmRTY2FsZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
cm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisKIDIwMTItMDEtMjYgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFdLVFI6IFVz
ZSBhIHNvZnR3YXJlIHJlbmRlcmluZyBwaXBpbGluZSB3aGVuIHJ1bm5pbmcgdGVzdHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGM5ZGVkOThiMjAxMTNiMmIx
ZTg1Mzg2Njc4YWNiMzNiYTFmZjIwMDMuLjY2M2ZkYWJhMGE1NmEyNzMxNWQ3YmE3ODFhZTZiN2Qw
NzFlOGYzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0x
MzYsNiArMTM2LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFu
aW1hdGlvbihjb25zdCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAgICAgbV9wYWdlU2Nh
bGVBbmltYXRpb24tPnpvb21Ubyh0YXJnZXRQb3NpdGlvbiwgcGFnZVNjYWxlLCBkdXJhdGlvbk1z
KTsKIAogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworICAgIG1f
Y2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3RE
cmF3TGF5ZXIsIGNvbnN0IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KQpAQCAt
NDk2LDYgKzQ5Nyw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRI
YW5kbGVycygpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkK
IHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7CisgICAgbV9wcmV2UGluY2hBbmNo
b3IgPSBJbnRQb2ludCgpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2Vz
dHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCkBAIC01MDMsMTkgKzUwNSwyMSBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVs
dGEsCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVy
ZVVwZGF0ZSIsIHRoaXMsIDApOwogCi0gICAgaWYgKG1hZ25pZnlEZWx0YSA9PSAxLjApCi0gICAg
ICAgIHJldHVybjsKICAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAobV9wcmV2UGluY2hBbmNob3IgPT0gSW50UG9pbnQ6Onplcm8oKSkKKyAgICAg
ICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICAvLyBLZWVwIHRoZSBjZW50ZXIt
b2YtcGluY2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkgaW4gYSBzdGFibGUKICAgICAvLyBw
b3NpdGlvbiBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25pZnkuCi0gICAgRmxvYXRQb2ludCBw
cmV2U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVsdGEsIGFuY2hvci55KCkg
LyBtX3BhZ2VTY2FsZURlbHRhKTsKKyAgICBGbG9hdFBvaW50IHByZXZTY2FsZUFuY2hvcihtX3By
ZXZQaW5jaEFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBtX3ByZXZQaW5jaEFuY2hvci55
KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKICAgICBzZXRQYWdlU2NhbGVEZWx0YShtX3BhZ2VTY2Fs
ZURlbHRhICogbWFnbmlmeURlbHRhKTsKICAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9yKGFu
Y2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBhbmNob3IueSgpIC8gbV9wYWdlU2NhbGVEZWx0
YSk7Ci0KICAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hvciAtIG5ld1NjYWxlQW5j
aG9yOwogCisgICAgbV9wcmV2UGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICBtX3Njcm9sbExh
eWVySW1wbC0+c2Nyb2xsQnkocm91bmRlZEludFNpemUobW92ZSkpOwogICAgIG1fY2xpZW50LT5z
ZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJh
d09uSW1wbFRocmVhZCgpOwpAQCAtNTI4LDEyICs1MzIsNjcgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQogICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9u
SW1wbFRocmVhZCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbXB1dGVEb3Vi
bGVUYXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pCit7CisgICAg
ZmxvYXQgcGFnZVNjYWxlID0gbV9wYWdlU2NhbGVBbmltYXRpb24tPmZpbmFsUGFnZVNjYWxlKCk7
CisgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBtX3BhZ2VTY2FsZUFuaW1hdGlvbi0+ZmluYWxT
Y3JvbGxPZmZzZXQoKTsKKyAgICBzY3JvbGxPZmZzZXQuc2NhbGUobV9wYWdlU2NhbGUgLyBwYWdl
U2NhbGUpOworICAgIG1ha2VTY3JvbGxBbmRTY2FsZVNldChzY3JvbGxJbmZvLCBzY3JvbGxPZmZz
ZXQsIHBhZ2VTY2FsZSk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZVBp
bmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZvKQoreworICAgIGlm
ICghbV9zY3JvbGxMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgc2Vu
ZCBmYWtlIHNjcm9sbC96b29tIGRlbHRhcyBpZiB3ZSdyZSBwaW5jaCB6b29taW5nIG91dCBieSBh
CisgICAgLy8gc2lnbmlmaWNhbnQgYW1vdW50LiBUaGlzIGFsc28gZW5zdXJlcyBvbmx5IG9uZSBm
YWtlIGRlbHRhIHNldCB3aWxsIGJlCisgICAgLy8gc2VudC4KKyAgICBpZiAobV9wYWdlU2NhbGVE
ZWx0YSA+IDAuOTUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENvbXB1dGUgd2hlcmUgdGhl
IHNjcm9sbCBvZmZzZXQvcGFnZSBzY2FsZSB3b3VsZCBiZSBpZiBmdWxseSBwaW5jaC16b29tZWQK
KyAgICAvLyBvdXQgZnJvbSB0aGUgYW5jaG9yIHBvaW50LgorICAgIEZsb2F0U2l6ZSBzY3JvbGxC
ZWdpbiA9IHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Ny
b2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICBzY3JvbGxCZWdpbi5zY2FsZShtX3Bh
Z2VTY2FsZURlbHRhKTsKKyAgICBmbG9hdCBzY2FsZUJlZ2luID0gbV9wYWdlU2NhbGUgKiBtX3Bh
Z2VTY2FsZURlbHRhOworICAgIGZsb2F0IHBhZ2VTY2FsZURlbHRhVG9TZW5kID0gbV9taW5QYWdl
U2NhbGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBGbG9hdFNpemUgc2NhbGVkQ29udGVudHNTaXplID0g
Y29udGVudFNpemUoKTsKKyAgICBzY2FsZWRDb250ZW50c1NpemUuc2NhbGUocGFnZVNjYWxlRGVs
dGFUb1NlbmQpOworCisgICAgRmxvYXRTaXplIGFuY2hvciA9IHRvU2l6ZShtX3ByZXZQaW5jaEFu
Y2hvcik7CisgICAgRmxvYXRTaXplIHNjcm9sbEVuZCA9IHNjcm9sbEJlZ2luICsgYW5jaG9yOwor
ICAgIHNjcm9sbEVuZC5zY2FsZShtX21pblBhZ2VTY2FsZSAvIHNjYWxlQmVnaW4pOworICAgIHNj
cm9sbEVuZCAtPSBhbmNob3I7CisgICAgc2Nyb2xsRW5kID0gc2Nyb2xsRW5kLnNocnVua1RvKHJv
dW5kZWRJbnRTaXplKHNjYWxlZENvbnRlbnRzU2l6ZSAtIG1fdmlld3BvcnRTaXplKSkuZXhwYW5k
ZWRUbyhGbG9hdFNpemUoMCwgMCkpOworICAgIHNjcm9sbEVuZC5zY2FsZSgxIC8gcGFnZVNjYWxl
RGVsdGFUb1NlbmQpOworCisgICAgbWFrZVNjcm9sbEFuZFNjYWxlU2V0KHNjcm9sbEluZm8sIHJv
dW5kZWRJbnRTaXplKHNjcm9sbEVuZCksIG1fbWluUGFnZVNjYWxlKTsKK30KKwordm9pZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjptYWtlU2Nyb2xsQW5kU2NhbGVTZXQoQ0NTY3JvbGxBbmRTY2FsZVNl
dCogc2Nyb2xsSW5mbywgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0LCBmbG9hdCBwYWdlU2Nh
bGUpCit7CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIHNjcm9sbDsKKyAgICBz
Y3JvbGwubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOworICAgIHNjcm9sbC5zY3Jv
bGxEZWx0YSA9IHNjcm9sbE9mZnNldCAtIHRvU2l6ZShtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xs
UG9zaXRpb24oKSk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKyAg
ICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2VudFNjcm9sbERlbHRhKHNjcm9sbC5zY3JvbGxEZWx0
YSk7CisgICAgbV9zZW50UGFnZVNjYWxlRGVsdGEgPSBzY3JvbGxJbmZvLT5wYWdlU2NhbGVEZWx0
YSA9IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworfQorCiBQYXNzT3duUHRyPENDU2Nyb2xsQW5k
U2NhbGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewog
ICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3
IENDU2Nyb2xsQW5kU2NhbGVTZXQoKSk7CiAgICAgYm9vbCBkaWRNb3ZlID0gbV9zY3JvbGxMYXll
ckltcGwgJiYgKCFtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKS5pc1plcm8oKSB8fCBt
X3BhZ2VTY2FsZURlbHRhICE9IDEuMGYpOwogICAgIGlmICghZGlkTW92ZSB8fCBtX3BpbmNoR2Vz
dHVyZUFjdGl2ZSB8fCBtX3BhZ2VTY2FsZUFuaW1hdGlvbikgewogICAgICAgICBtX3NlbnRQYWdl
U2NhbGVEZWx0YSA9IHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhID0gMTsKKyAgICAgICAgaWYg
KG1fcGluY2hHZXN0dXJlQWN0aXZlKQorICAgICAgICAgICAgY29tcHV0ZVBpbmNoWm9vbURlbHRh
cyhzY3JvbGxJbmZvLmdldCgpKTsKKyAgICAgICAgZWxzZSBpZiAobV9wYWdlU2NhbGVBbmltYXRp
b24uZ2V0KCkpCisgICAgICAgICAgICBjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyhzY3JvbGxJ
bmZvLmdldCgpKTsKICAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmluZGV4IGE3MWFkYWU2NzUzMmYz
MjQ5NmE1NDI4NGFhNTdmNzBiMzQwNGNkMDEuLjUwNGJlZDAwNWE2OGIyM2I2ZDk4NWQwNzQyZjAw
NDY1MDU0NTIwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTEy
Niw2ICsxMjYsMTAgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB0eXBlZGVmIFZlY3RvcjxS
ZWZQdHI8Q0NMYXllckltcGw+ID4gQ0NMYXllckxpc3Q7CiAKKyAgICB2b2lkIGNvbXB1dGVEb3Vi
bGVUYXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pOworICAgIHZv
aWQgY29tcHV0ZVBpbmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0KiBzY3JvbGxJbmZv
KTsKKyAgICB2b2lkIG1ha2VTY3JvbGxBbmRTY2FsZVNldChDQ1Njcm9sbEFuZFNjYWxlU2V0KiBz
Y3JvbGxJbmZvLCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQsIGZsb2F0IHBhZ2VTY2FsZSk7
CisKICAgICB2b2lkIHNldFBhZ2VTY2FsZURlbHRhKGZsb2F0KTsKICAgICB2b2lkIGFwcGx5UGFn
ZVNjYWxlRGVsdGFUb1Njcm9sbExheWVyKCk7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxzRm9yUGFn
ZVNjYWxlQ2hhbmdlKGZsb2F0KTsKQEAgLTE0OSw2ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIGZs
b2F0IG1fbWluUGFnZVNjYWxlLCBtX21heFBhZ2VTY2FsZTsKIAogICAgIGJvb2wgbV9waW5jaEdl
c3R1cmVBY3RpdmU7CisgICAgSW50UG9pbnQgbV9wcmV2UGluY2hBbmNob3I7CiAKICAgICBPd25Q
dHI8Q0NQYWdlU2NhbGVBbmltYXRpb24+IG1fcGFnZVNjYWxlQW5pbWF0aW9uOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QuY3BwCmluZGV4IDg2ODNiODRiMDNjYTM2ZmZjZDg0YzI1ZGI2MTk1NGY2ZTI2NjRkYzIuLjA5
ZjU4ZGE2NGIxYTRiYjQ2YzgzNDlkM2E4NTlhMWVhZTRhNDhlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3Bw
CkBAIC02Nyw3ICs2Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzY3JvbGxJbmZvLnNjcm9sbHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChzY3Jv
bGxJbmZvLnNjcm9sbHNbaV0ubGF5ZXJJZCAhPSBpZCkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVs
dGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxEZWx0YS53aWR0
aCgpLCBzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAg
ICAgICBBU1NFUlRfRVEoc2Nyb2xsRGVsdGEuaGVpZ2h0KCksIHNjcm9sbEluZm8uc2Nyb2xsc1tp
XS5zY3JvbGxEZWx0YS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7
CiAgICAgICAgIH0KIApAQCAtMTQyLDE0ICsxNDMsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICBzY3JvbGxJbmZvID0g
bV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShzY3JvbGxJ
bmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50U2Nyb2xs
RGVsdGEoKSwgc2Nyb2xsRGVsdGEpOwotICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdl
dCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSk7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9s
bEluZm8sIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhKTsKIAogICAgIEludFNpemUgc2Nyb2xsRGVs
dGEyKC01LCAyNyk7CiAgICAgcm9vdC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3Jv
bGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9F
UShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5z
ZW50U2Nyb2xsRGVsdGEoKSwgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIGV4cGVj
dENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSArIHNj
cm9sbERlbHRhMik7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHJvb3QtPmlkKCks
IHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KEludFNp
emUoKSk7CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMo
KTsKQEAgLTE4NCw2ICsxODUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBp
bmNoR2VzdHVyZSkKICAgICB7CiAgICAgICAgIG1faG9zdEltcGwtPnNldFBhZ2VTY2FsZUZhY3Rv
ckFuZExpbWl0cygxLCBtaW5QYWdlU2NhbGUsIG1heFBhZ2VTY2FsZSk7CiAgICAgICAgIHNjcm9s
bExheWVyLT5zZXRQYWdlU2NhbGVEZWx0YSgxKTsKKyAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFNj
cm9sbERlbHRhKEludFNpemUoKSk7CiAKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAy
OwogICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjAwLDYgKzIw
Miw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAg
IHsKICAgICAgICAgbV9ob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1p
blBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VT
Y2FsZURlbHRhKDEpOworICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6
ZSgpKTsKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAxMDsKIAogICAgICAgICBtX2hv
c3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjE0LDYgKzIxNyw3IEBAIFRFU1RfRihD
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAgIHsKICAgICAgICAgbV9o
b3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1pblBhZ2VTY2FsZSwgbWF4
UGFnZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2FsZURlbHRhKDEpOwor
ICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgpKTsKICAgICAgICAg
c2Nyb2xsTGF5ZXItPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KDUwLCA1MCkpOwogCiAgICAg
ICAgIGZsb2F0IHBhZ2VTY2FsZURlbHRhID0gMC4xOwpAQCAtMjI1LDcgKzIyOSwyNSBAQCBURVNU
X0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBpbmNoR2VzdHVyZSkKICAgICAgICAgRVhQRUNU
X0VRKHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBtaW5QYWdlU2NhbGUpOwogCiAgICAgICAg
IC8vIFB1c2hlZCB0byAoMCwwKSB2aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBz
aXplLgotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5
ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNj
cm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CisgICAgfQor
CisgICAgLy8gVHdvLWZpbmdlciBwYW5uaW5nCisgICAgeworICAgICAgICBtX2hvc3RJbXBsLT5z
ZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMoMSwgbWluUGFnZVNjYWxlLCBtYXhQYWdlU2NhbGUp
OworICAgICAgICBzY3JvbGxMYXllci0+c2V0UGFnZVNjYWxlRGVsdGEoMSk7CisgICAgICAgIHNj
cm9sbExheWVyLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworICAgICAgICBzY3JvbGxMYXll
ci0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoMjAsIDIwKSk7CisKKyAgICAgICAgZmxvYXQg
cGFnZVNjYWxlRGVsdGEgPSAxOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdp
bigpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVVcGRhdGUocGFnZVNjYWxlRGVs
dGEsIEludFBvaW50KDEwLCAxMCkpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVV
cGRhdGUocGFnZVNjYWxlRGVsdGEsIEludFBvaW50KDIwLCAyMCkpOworICAgICAgICBtX2hvc3RJ
bXBsLT5waW5jaEdlc3R1cmVFbmQoKTsKKworICAgICAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2Fs
ZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKKyAg
ICAgICAgRVhQRUNUX0VRKHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBwYWdlU2NhbGVEZWx0
YSk7CisgICAgICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLCBzY3JvbGxMYXllci0+aWQo
KSwgSW50U2l6ZSgtMTAsIC0xMCkpOwogICAgIH0KIH0KIApAQCAtMjU1LDcgKzI3Nyw3IEBAIFRF
U1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGFnZVNjYWxlQW5pbWF0aW9uKQogCiAgICAg
ICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+
cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFn
ZVNjYWxlRGVsdGEsIDIpOwotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQo
KSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0
Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUw
KSk7CiAgICAgfQogCiAgICAgLy8gQW5jaG9yIHpvb20tb3V0CkBAIC0yNzIsNyArMjk0LDcgQEAg
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwYWdlU2NhbGVBbmltYXRpb24pCiAgICAg
ICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+
cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+cGFn
ZVNjYWxlRGVsdGEsIG1pblBhZ2VTY2FsZSk7CiAgICAgICAgIC8vIFB1c2hlZCB0byAoMCwwKSB2
aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBzaXplLgotICAgICAgICBleHBlY3RD
b250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUw
LCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVy
LT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125255</attachid>
            <date>2012-02-02 21:26:18 -0800</date>
            <delta_ts>2012-02-21 21:28:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74216-20120202212617.patch</filename>
            <type>text/plain</type>
            <size>12583</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ3ZmRlNDhiNjA3YmQx
MjMxM2E2N2M2Y2E1ZDE0MzEyZmVjNzkwOC4uNjFlYzYzZWI2ZmQ4MTRkYzBiMjk4YTc1ODNhODUw
Zjk5ZjkwZWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTEyLTA5ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aHJlZSBzbWFsbCB6b29tIGdlc3R1cmUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU3VwcG9ydCBwYW5uaW5nIGFyb3VuZCB3aXRo
IHR3byBmaW5nZXJzLgorICAgICAgICAyLiBXaGVuIGRvdWJsZS10YXAgem9vbWluZywgaXNzdWUg
dGhlIGNvbW1pdCBhdCBmaW5hbC9zY3JvbGwgc2NhbGUgYXMKKyAgICAgICAgZWFybHkgYXMgcG9z
c2libGUuCisgICAgICAgIDMuIFdoZW4gcGluY2ggem9vbWluZyBvdXQsIGlzc3VlIGEgY29tbWl0
IGF0IG1pbmltdW0gc2NhbGUgdG8gYXZvaWQKKyAgICAgICAgc2hvd2luZyBjaGVja2VyYm9hcmQu
CisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3IgcGFubmluZyB0byBDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdDo6cGluY2hHZXN0dXJlLgorICAgICAgICAoVGhlIG90aGVyIGZlYXR1cmVzIGFyZSBoZXVy
aXN0aWNzIHdob3NlIGV4YWN0IGJlaGF2aW9yIHdlIGRvbid0IG5lZWQKKyAgICAgICAgdG8gbG9j
ayBpbiB3aXRoIGEgdGVzdC4pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlRG91YmxlVGFwWm9vbURlbHRhcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlUGluY2hab29t
RGVsdGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6Om1ha2VTY3Jv
bGxBbmRTY2FsZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
cm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisKIDIwMTItMDEtMjYgIEpvY2VseW4gVHVyY290
dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFdLVFI6IFVz
ZSBhIHNvZnR3YXJlIHJlbmRlcmluZyBwaXBpbGluZSB3aGVuIHJ1bm5pbmcgdGVzdHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGM5ZGVkOThiMjAxMTNiMmIx
ZTg1Mzg2Njc4YWNiMzNiYTFmZjIwMDMuLmFlYTUxODY1YTAwMTkyOGQ5ZGUwMTM5MzU1OTAwOTJh
ZDI2Y2FmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0x
MzYsNiArMTM2LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzdGFydFBhZ2VTY2FsZUFu
aW1hdGlvbihjb25zdCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAgICAgbV9wYWdlU2Nh
bGVBbmltYXRpb24tPnpvb21Ubyh0YXJnZXRQb3NpdGlvbiwgcGFnZVNjYWxlLCBkdXJhdGlvbk1z
KTsKIAogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworICAgIG1f
Y2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3RE
cmF3TGF5ZXIsIGNvbnN0IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KQpAQCAt
NDk2LDYgKzQ5Nyw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRI
YW5kbGVycygpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkK
IHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7CisgICAgbV9wcmV2aW91c1BpbmNo
QW5jaG9yID0gSW50UG9pbnQoKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5j
aEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLApAQCAtNTAzLDE4ICs1MDUsMjAgQEAg
dm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlm
eURlbHRhLAogewogICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdl
c3R1cmVVcGRhdGUiLCB0aGlzLCAwKTsKIAotICAgIGlmIChtYWduaWZ5RGVsdGEgPT0gMS4wKQot
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgaWYgKG1fcHJldmlvdXNQaW5jaEFuY2hvciA9PSBJbnRQb2ludDo6emVybygp
KQorICAgICAgICBtX3ByZXZpb3VzUGluY2hBbmNob3IgPSBhbmNob3I7CisKICAgICAvLyBLZWVw
IHRoZSBjZW50ZXItb2YtcGluY2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkgaW4gYSBzdGFi
bGUKICAgICAvLyBwb3NpdGlvbiBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25pZnkuCi0gICAg
RmxvYXRQb2ludCBwcmV2U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVsdGEs
IGFuY2hvci55KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKKyAgICBGbG9hdFBvaW50IHByZXZpb3Vz
U2NhbGVBbmNob3IobV9wcmV2aW91c1BpbmNoQW5jaG9yLngoKSAvIG1fcGFnZVNjYWxlRGVsdGEs
IG1fcHJldmlvdXNQaW5jaEFuY2hvci55KCkgLyBtX3BhZ2VTY2FsZURlbHRhKTsKICAgICBzZXRQ
YWdlU2NhbGVEZWx0YShtX3BhZ2VTY2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKICAgICBGbG9h
dFBvaW50IG5ld1NjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3BhZ2VTY2FsZURlbHRhLCBhbmNo
b3IueSgpIC8gbV9wYWdlU2NhbGVEZWx0YSk7CisgICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2aW91
c1NjYWxlQW5jaG9yIC0gbmV3U2NhbGVBbmNob3I7CiAKLSAgICBGbG9hdFNpemUgbW92ZSA9IHBy
ZXZTY2FsZUFuY2hvciAtIG5ld1NjYWxlQW5jaG9yOworICAgIG1fcHJldmlvdXNQaW5jaEFuY2hv
ciA9IGFuY2hvcjsKIAogICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxCeShyb3VuZGVkSW50
U2l6ZShtb3ZlKSk7CiAgICAgbV9jbGllbnQtPnNldE5lZWRzQ29tbWl0T25JbXBsVGhyZWFkKCk7
CkBAIC01MjgsMTIgKzUzMiw2OCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2Vz
dHVyZUVuZCgpCiAgICAgbV9jbGllbnQtPnNldE5lZWRzQ29tbWl0T25JbXBsVGhyZWFkKCk7CiB9
CiAKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29tcHV0ZURvdWJsZVRhcFpvb21EZWx0YXMo
Q0NTY3JvbGxBbmRTY2FsZVNldCogc2Nyb2xsSW5mbykKK3sKKyAgICBmbG9hdCBwYWdlU2NhbGUg
PSBtX3BhZ2VTY2FsZUFuaW1hdGlvbi0+ZmluYWxQYWdlU2NhbGUoKTsKKyAgICBJbnRTaXplIHNj
cm9sbE9mZnNldCA9IG1fcGFnZVNjYWxlQW5pbWF0aW9uLT5maW5hbFNjcm9sbE9mZnNldCgpOwor
ICAgIHNjcm9sbE9mZnNldC5zY2FsZShtX3BhZ2VTY2FsZSAvIHBhZ2VTY2FsZSk7CisgICAgbWFr
ZVNjcm9sbEFuZFNjYWxlU2V0KHNjcm9sbEluZm8sIHNjcm9sbE9mZnNldCwgcGFnZVNjYWxlKTsK
K30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21wdXRlUGluY2hab29tRGVsdGFzKEND
U2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8pCit7CisgICAgaWYgKCFtX3Njcm9sbExheWVy
SW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gT25seSBzZW5kIGZha2Ugc2Nyb2xsL3pv
b20gZGVsdGFzIGlmIHdlJ3JlIHBpbmNoIHpvb21pbmcgb3V0IGJ5IGEKKyAgICAvLyBzaWduaWZp
Y2FudCBhbW91bnQuIFRoaXMgYWxzbyBlbnN1cmVzIG9ubHkgb25lIGZha2UgZGVsdGEgc2V0IHdp
bGwgYmUKKyAgICAvLyBzZW50LgorICAgIGNvbnN0IGZsb2F0IHBpbmNoWm9vbU91dFNlbnNpdGl2
aXR5ID0gMC45NTsKKyAgICBpZiAobV9wYWdlU2NhbGVEZWx0YSA+IHBpbmNoWm9vbU91dFNlbnNp
dGl2aXR5KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDb21wdXRlIHdoZXJlIHRoZSBzY3Jv
bGwgb2Zmc2V0L3BhZ2Ugc2NhbGUgd291bGQgYmUgaWYgZnVsbHkgcGluY2gtem9vbWVkCisgICAg
Ly8gb3V0IGZyb20gdGhlIGFuY2hvciBwb2ludC4KKyAgICBGbG9hdFNpemUgc2Nyb2xsQmVnaW4g
PSB0b1NpemUobV9zY3JvbGxMYXllckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExh
eWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAgc2Nyb2xsQmVnaW4uc2NhbGUobV9wYWdlU2Nh
bGVEZWx0YSk7CisgICAgZmxvYXQgc2NhbGVCZWdpbiA9IG1fcGFnZVNjYWxlICogbV9wYWdlU2Nh
bGVEZWx0YTsKKyAgICBmbG9hdCBwYWdlU2NhbGVEZWx0YVRvU2VuZCA9IG1fbWluUGFnZVNjYWxl
IC8gbV9wYWdlU2NhbGU7CisgICAgRmxvYXRTaXplIHNjYWxlZENvbnRlbnRzU2l6ZSA9IGNvbnRl
bnRTaXplKCk7CisgICAgc2NhbGVkQ29udGVudHNTaXplLnNjYWxlKHBhZ2VTY2FsZURlbHRhVG9T
ZW5kKTsKKworICAgIEZsb2F0U2l6ZSBhbmNob3IgPSB0b1NpemUobV9wcmV2aW91c1BpbmNoQW5j
aG9yKTsKKyAgICBGbG9hdFNpemUgc2Nyb2xsRW5kID0gc2Nyb2xsQmVnaW4gKyBhbmNob3I7Cisg
ICAgc2Nyb2xsRW5kLnNjYWxlKG1fbWluUGFnZVNjYWxlIC8gc2NhbGVCZWdpbik7CisgICAgc2Ny
b2xsRW5kIC09IGFuY2hvcjsKKyAgICBzY3JvbGxFbmQgPSBzY3JvbGxFbmQuc2hydW5rVG8ocm91
bmRlZEludFNpemUoc2NhbGVkQ29udGVudHNTaXplIC0gbV92aWV3cG9ydFNpemUpKS5leHBhbmRl
ZFRvKEZsb2F0U2l6ZSgwLCAwKSk7CisgICAgc2Nyb2xsRW5kLnNjYWxlKDEgLyBwYWdlU2NhbGVE
ZWx0YVRvU2VuZCk7CisKKyAgICBtYWtlU2Nyb2xsQW5kU2NhbGVTZXQoc2Nyb2xsSW5mbywgcm91
bmRlZEludFNpemUoc2Nyb2xsRW5kKSwgbV9taW5QYWdlU2NhbGUpOworfQorCit2b2lkIENDTGF5
ZXJUcmVlSG9zdEltcGw6Om1ha2VTY3JvbGxBbmRTY2FsZVNldChDQ1Njcm9sbEFuZFNjYWxlU2V0
KiBzY3JvbGxJbmZvLCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQsIGZsb2F0IHBhZ2VTY2Fs
ZSkKK3sKKyAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsKQorICAgICAgICByZXR1cm47CisKKyAg
ICBDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0ZUluZm8gc2Nyb2xsOworICAgIHNj
cm9sbC5sYXllcklkID0gbV9zY3JvbGxMYXllckltcGwtPmlkKCk7CisgICAgc2Nyb2xsLnNjcm9s
bERlbHRhID0gc2Nyb2xsT2Zmc2V0IC0gdG9TaXplKG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxQ
b3NpdGlvbigpKTsKKyAgICBzY3JvbGxJbmZvLT5zY3JvbGxzLmFwcGVuZChzY3JvbGwpOworICAg
IG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTZW50U2Nyb2xsRGVsdGEoc2Nyb2xsLnNjcm9sbERlbHRh
KTsKKyAgICBtX3NlbnRQYWdlU2NhbGVEZWx0YSA9IHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRh
ID0gcGFnZVNjYWxlIC8gbV9wYWdlU2NhbGU7Cit9CisKIFBhc3NPd25QdHI8Q0NTY3JvbGxBbmRT
Y2FsZVNldD4gQ0NMYXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCiB7CiAg
ICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcg
Q0NTY3JvbGxBbmRTY2FsZVNldCgpKTsKICAgICBib29sIGRpZE1vdmUgPSBtX3Njcm9sbExheWVy
SW1wbCAmJiAoIW1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpLmlzWmVybygpIHx8IG1f
cGFnZVNjYWxlRGVsdGEgIT0gMS4wZik7CiAgICAgaWYgKCFkaWRNb3ZlIHx8IG1fcGluY2hHZXN0
dXJlQWN0aXZlIHx8IG1fcGFnZVNjYWxlQW5pbWF0aW9uKSB7CiAgICAgICAgIG1fc2VudFBhZ2VT
Y2FsZURlbHRhID0gc2Nyb2xsSW5mby0+cGFnZVNjYWxlRGVsdGEgPSAxOworICAgICAgICBpZiAo
bV9waW5jaEdlc3R1cmVBY3RpdmUpCisgICAgICAgICAgICBjb21wdXRlUGluY2hab29tRGVsdGFz
KHNjcm9sbEluZm8uZ2V0KCkpOworICAgICAgICBlbHNlIGlmIChtX3BhZ2VTY2FsZUFuaW1hdGlv
bi5nZXQoKSkKKyAgICAgICAgICAgIGNvbXB1dGVEb3VibGVUYXBab29tRGVsdGFzKHNjcm9sbElu
Zm8uZ2V0KCkpOwogICAgICAgICByZXR1cm4gc2Nyb2xsSW5mby5yZWxlYXNlKCk7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKaW5kZXggYTcxYWRhZTY3NTMyZjMy
NDk2YTU0Mjg0YWE1N2Y3MGIzNDA0Y2QwMS4uZWUwMDQxYjNlOWJlNGUxM2E4YjlkOTZjMTcwODUz
NmFkNDk4NjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApAQCAtMTI2
LDYgKzEyNiwxMCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHR5cGVkZWYgVmVjdG9yPFJl
ZlB0cjxDQ0xheWVySW1wbD4gPiBDQ0xheWVyTGlzdDsKIAorICAgIHZvaWQgY29tcHV0ZURvdWJs
ZVRhcFpvb21EZWx0YXMoQ0NTY3JvbGxBbmRTY2FsZVNldCogc2Nyb2xsSW5mbyk7CisgICAgdm9p
ZCBjb21wdXRlUGluY2hab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbEluZm8p
OworICAgIHZvaWQgbWFrZVNjcm9sbEFuZFNjYWxlU2V0KENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNj
cm9sbEluZm8sIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCwgZmxvYXQgcGFnZVNjYWxlKTsK
KwogICAgIHZvaWQgc2V0UGFnZVNjYWxlRGVsdGEoZmxvYXQpOwogICAgIHZvaWQgYXBwbHlQYWdl
U2NhbGVEZWx0YVRvU2Nyb2xsTGF5ZXIoKTsKICAgICB2b2lkIGFkanVzdFNjcm9sbHNGb3JQYWdl
U2NhbGVDaGFuZ2UoZmxvYXQpOwpAQCAtMTQ5LDYgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgZmxv
YXQgbV9taW5QYWdlU2NhbGUsIG1fbWF4UGFnZVNjYWxlOwogCiAgICAgYm9vbCBtX3BpbmNoR2Vz
dHVyZUFjdGl2ZTsKKyAgICBJbnRQb2ludCBtX3ByZXZpb3VzUGluY2hBbmNob3I7CiAKICAgICBP
d25QdHI8Q0NQYWdlU2NhbGVBbmltYXRpb24+IG1fcGFnZVNjYWxlQW5pbWF0aW9uOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1w
bFRlc3QuY3BwCmluZGV4IDg2ODNiODRiMDNjYTM2ZmZjZDg0YzI1ZGI2MTk1NGY2ZTI2NjRkYzIu
LjQ2ODVjNTIzYjdiOTA3NWFmN2FjNzEyZjBjNGY0M2UwNTk2MGFkNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwCkBAIC02Nyw3ICs2Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzY3JvbGxJbmZvLnNjcm9sbHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChz
Y3JvbGxJbmZvLnNjcm9sbHNbaV0ubGF5ZXJJZCAhPSBpZCkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xs
RGVsdGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShzY3JvbGxEZWx0YS53
aWR0aCgpLCBzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAg
ICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsRGVsdGEuaGVpZ2h0KCksIHNjcm9sbEluZm8uc2Nyb2xs
c1tpXS5zY3JvbGxEZWx0YS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0aW1lc0VuY291bnRlcmVk
Kys7CiAgICAgICAgIH0KIApAQCAtMTQyLDE0ICsxNDMsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICBzY3JvbGxJbmZv
ID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290LT5zZW50U2Ny
b2xsRGVsdGEoKSwgc2Nyb2xsRGVsdGEpOwotICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZv
LmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSk7CisgICAgZXhwZWN0Q29udGFpbnMoKnNj
cm9sbEluZm8sIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhKTsKIAogICAgIEludFNpemUgc2Nyb2xs
RGVsdGEyKC01LCAyNyk7CiAgICAgcm9vdC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBz
Y3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VS
VF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9FUShyb290
LT5zZW50U2Nyb2xsRGVsdGEoKSwgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIGV4
cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSAr
IHNjcm9sbERlbHRhMik7CisgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHJvb3QtPmlk
KCksIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KElu
dFNpemUoKSk7CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0
YXMoKTsKQEAgLTE4NCw2ICsxODUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qs
IHBpbmNoR2VzdHVyZSkKICAgICB7CiAgICAgICAgIG1faG9zdEltcGwtPnNldFBhZ2VTY2FsZUZh
Y3RvckFuZExpbWl0cygxLCBtaW5QYWdlU2NhbGUsIG1heFBhZ2VTY2FsZSk7CiAgICAgICAgIHNj
cm9sbExheWVyLT5zZXRQYWdlU2NhbGVEZWx0YSgxKTsKKyAgICAgICAgc2Nyb2xsTGF5ZXItPnNl
dFNjcm9sbERlbHRhKEludFNpemUoKSk7CiAKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEg
PSAyOwogICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjAwLDYg
KzIwMiw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQog
ICAgIHsKICAgICAgICAgbV9ob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEs
IG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBh
Z2VTY2FsZURlbHRhKDEpOworICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50
U2l6ZSgpKTsKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRGVsdGEgPSAxMDsKIAogICAgICAgICBt
X2hvc3RJbXBsLT5waW5jaEdlc3R1cmVCZWdpbigpOwpAQCAtMjE0LDYgKzIxNyw3IEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGluY2hHZXN0dXJlKQogICAgIHsKICAgICAgICAg
bV9ob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKDEsIG1pblBhZ2VTY2FsZSwg
bWF4UGFnZVNjYWxlKTsKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBhZ2VTY2FsZURlbHRhKDEp
OworICAgICAgICBzY3JvbGxMYXllci0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgpKTsKICAgICAg
ICAgc2Nyb2xsTGF5ZXItPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KDUwLCA1MCkpOwogCiAg
ICAgICAgIGZsb2F0IHBhZ2VTY2FsZURlbHRhID0gMC4xOwpAQCAtMjI1LDcgKzIyOSwyNSBAQCBU
RVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBpbmNoR2VzdHVyZSkKICAgICAgICAgRVhQ
RUNUX0VRKHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBtaW5QYWdlU2NhbGUpOwogCiAgICAg
ICAgIC8vIFB1c2hlZCB0byAoMCwwKSB2aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXll
ciBzaXplLgotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xs
TGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMo
KnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CisgICAg
fQorCisgICAgLy8gVHdvLWZpbmdlciBwYW5uaW5nCisgICAgeworICAgICAgICBtX2hvc3RJbXBs
LT5zZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMoMSwgbWluUGFnZVNjYWxlLCBtYXhQYWdlU2Nh
bGUpOworICAgICAgICBzY3JvbGxMYXllci0+c2V0UGFnZVNjYWxlRGVsdGEoMSk7CisgICAgICAg
IHNjcm9sbExheWVyLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworICAgICAgICBzY3JvbGxM
YXllci0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoMjAsIDIwKSk7CisKKyAgICAgICAgZmxv
YXQgcGFnZVNjYWxlRGVsdGEgPSAxOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVC
ZWdpbigpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1cmVVcGRhdGUocGFnZVNjYWxl
RGVsdGEsIEludFBvaW50KDEwLCAxMCkpOworICAgICAgICBtX2hvc3RJbXBsLT5waW5jaEdlc3R1
cmVVcGRhdGUocGFnZVNjYWxlRGVsdGEsIEludFBvaW50KDIwLCAyMCkpOworICAgICAgICBtX2hv
c3RJbXBsLT5waW5jaEdlc3R1cmVFbmQoKTsKKworICAgICAgICBPd25QdHI8Q0NTY3JvbGxBbmRT
Y2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsK
KyAgICAgICAgRVhQRUNUX0VRKHNjcm9sbEluZm8tPnBhZ2VTY2FsZURlbHRhLCBwYWdlU2NhbGVE
ZWx0YSk7CisgICAgICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLCBzY3JvbGxMYXllci0+
aWQoKSwgSW50U2l6ZSgtMTAsIC0xMCkpOwogICAgIH0KIH0KIApAQCAtMjU1LDcgKzI3Nyw3IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGFnZVNjYWxlQW5pbWF0aW9uKQogCiAg
ICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1w
bC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+
cGFnZVNjYWxlRGVsdGEsIDIpOwotICAgICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5n
ZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUoLTUwLCAtNTApKTsKKyAgICAgICAgZXhw
ZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExheWVyLT5pZCgpLCBJbnRTaXplKC01MCwg
LTUwKSk7CiAgICAgfQogCiAgICAgLy8gQW5jaG9yIHpvb20tb3V0CkBAIC0yNzIsNyArMjk0LDcg
QEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwYWdlU2NhbGVBbmltYXRpb24pCiAg
ICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1w
bC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBFWFBFQ1RfRVEoc2Nyb2xsSW5mby0+
cGFnZVNjYWxlRGVsdGEsIG1pblBhZ2VTY2FsZSk7CiAgICAgICAgIC8vIFB1c2hlZCB0byAoMCww
KSB2aWEgY2xhbXBpbmcgYWdhaW5zdCBjb250ZW50cyBsYXllciBzaXplLgotICAgICAgICBleHBl
Y3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgc2Nyb2xsTGF5ZXItPmlkKCksIEludFNpemUo
LTUwLCAtNTApKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8sIHNjcm9sbExh
eWVyLT5pZCgpLCBJbnRTaXplKC01MCwgLTUwKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>