<?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>130779</bug_id>
          
          <creation_ts>2014-03-26 10:15:17 -0700</creation_ts>
          <short_desc>FEGaussianBlur: unify and const-ify calculateKernelSize</short_desc>
          <delta_ts>2014-03-26 21:15:00 -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>SVG</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adenilson Cavalcanti Silva">savagobr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>994609</commentid>
    <comment_count>0</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:15:17 -0700</bug_when>
    <thetext>Some methods can benefit of using const refs as also it makes sense to unify the interface (i.e. parameters) in calculateKernelSize and calculateUnscaledKernelSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994612</commentid>
    <comment_count>1</comment_count>
      <attachid>227857</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:21:18 -0700</bug_when>
    <thetext>Created attachment 227857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994615</commentid>
    <comment_count>2</comment_count>
      <attachid>227857</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-26 10:24:28 -0700</bug_when>
    <thetext>Comment on attachment 227857
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:408
&gt; +IntSize FEGaussianBlur::calculateKernelSize(Filter* filter, const FloatPoint&amp; std)

const Filter* ?
Please rename &quot;std&quot; to something better (is it stdDeviation?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994622</commentid>
    <comment_count>3</comment_count>
      <attachid>227860</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:33:45 -0700</bug_when>
    <thetext>Created attachment 227860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994629</commentid>
    <comment_count>4</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:50:24 -0700</bug_when>
    <thetext>FilterEffect() provides the filter and it uses a pointer as constructor parameter (which can be null).

But we can have a const pointer, since applyVerticalScale/HorizontalScale() are const methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994631</commentid>
    <comment_count>5</comment_count>
      <attachid>227864</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:51:19 -0700</bug_when>
    <thetext>Created attachment 227864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994633</commentid>
    <comment_count>6</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 10:52:11 -0700</bug_when>
    <thetext>Last patch uses const Filter*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994637</commentid>
    <comment_count>7</comment_count>
      <attachid>227864</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-26 10:59:39 -0700</bug_when>
    <thetext>Comment on attachment 227864
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:410
&gt; +    FloatPoint stdFilterScaled(filter-&gt;applyHorizontalScale(stdDeviation.x()), filter-&gt;applyVerticalScale(stdDeviation.y()));

Since you dereference filter without a null check, you should make it a const Filter&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994688</commentid>
    <comment_count>8</comment_count>
      <attachid>227879</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 13:14:40 -0700</bug_when>
    <thetext>Created attachment 227879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994689</commentid>
    <comment_count>9</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 13:15:23 -0700</bug_when>
    <thetext>Agreed, FilterEffect will now return a ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994761</commentid>
    <comment_count>10</comment_count>
      <attachid>227879</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-26 17:52:14 -0700</bug_when>
    <thetext>Comment on attachment 227879
Patch

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

&gt; Source/WebCore/platform/graphics/filters/Filter.h:50
&gt; +    virtual float applyHorizontalScale(const float value) const { return value * m_filterResolution.width(); }
&gt; +    virtual float applyVerticalScale(const float value) const { return value * m_filterResolution.height(); }

no need for const float</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994764</commentid>
    <comment_count>11</comment_count>
      <attachid>227902</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 18:11:43 -0700</bug_when>
    <thetext>Created attachment 227902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994765</commentid>
    <comment_count>12</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2014-03-26 18:12:22 -0700</bug_when>
    <thetext>Removed unnecessary const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994772</commentid>
    <comment_count>13</comment_count>
      <attachid>227902</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-26 18:29:28 -0700</bug_when>
    <thetext>Comment on attachment 227902
Patch

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

&gt; Source/WebCore/platform/graphics/filters/Filter.h:49
&gt; +    // TODO: verify descendants that overload this method and turn them to const.

Not sure why you need the comment. AFAICT all subclasses use &quot;override&quot; so you would get a build failure with mismatched signatures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994816</commentid>
    <comment_count>14</comment_count>
      <attachid>227902</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 21:14:52 -0700</bug_when>
    <thetext>Comment on attachment 227902
Patch

Clearing flags on attachment: 227902

Committed r166341: &lt;http://trac.webkit.org/changeset/166341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994817</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 21:15:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227857</attachid>
            <date>2014-03-26 10:21:18 -0700</date>
            <delta_ts>2014-03-26 10:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130779-20140326102058.patch</filename>
            <type>text/plain</type>
            <size>6669</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0MzUxYzFmODQxNmVi
NDE1MDVjMmMwYjgyODQ0Nzg0NjU2MTdkMS4uNjM0MmY4NmQ2ZjdlMmQ4ZjdiNzI1ZWQ5NTcxZDBj
Njg0MzE1MGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAzLTI2ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBGRUdh
dXNzaWFuQmx1cjogdW5pZnkgYW5kIGNvbnN0LWlmeSBjYWxjdWxhdGVLZXJuZWxTaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1ldGhvZHMg
Y2FuIGJlbmVmaXQgb2YgdXNpbmcgY29uc3QgcmVmcyBhcyBhbHNvIG1ha2VzIHNlbnNlCisgICAg
ICAgIHRvIHVuaWZ5IHRoZSBpbnRlcmZhY2UgKGkuZS4gcGFyYW1ldGVycykgaW4gY2FsY3VsYXRl
S2VybmVsU2l6ZQorICAgICAgICBhbmQgVW5zY2FsZWRLZXJuZWxTaXplLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gY2hhbmdlIG9uIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVE
cm9wU2hhZG93OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlcjo6YXBwbHlIb3Jpem9udGFsU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyOjphcHBseVZlcnRpY2FsU2NhbGUpOgorCiAyMDE0LTAzLTI2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV2ViS2l0Ml0gRmx1c2gg
YWxsIHN1cmZhY2VzIGFmdGVyIHBhaW50aW5nIGludG8gYWxsIG9mIHRoZW0sIGluc3RlYWQgb2Yg
YWZ0ZXIgcGFpbnRpbmcgaW50byBlYWNoIG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IGVlYzcz
NDVhNTRiYzg0Y2VmNzhjODg5ZTI1ZWMyMmQ2NjYzYWZjMzkuLjk0MDk3NDFjYWExNzE4NDdkNjg3
NWRjOTNjZmZkMjUxNTQ1OWNhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBGRURyb3BTaGFkb3c6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKICAgICBh
YnNvbHV0ZU9mZnNldFBhaW50UmVjdC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUo
bV9keCksIGZpbHRlci0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKICAgICBhYnNvbHV0ZVBh
aW50UmVjdC51bml0ZShhYnNvbHV0ZU9mZnNldFBhaW50UmVjdCk7CiAKLSAgICBJbnRTaXplIGtl
cm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIG1f
c3RkWCwgbV9zdGRZKTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6
Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIEZsb2F0UG9pbnQobV9zdGRYLCBtX3N0ZFkpKTsK
IAogICAgIC8vIFdlIHRha2UgdGhlIGhhbGYga2VybmVsIHNpemUgYW5kIG11bHRpcGx5IGl0IHdp
dGggdGhyZWUsIGJlY2F1c2Ugd2UgcnVuIGJveCBibHVyIHRocmVlIHRpbWVzLgogICAgIGFic29s
dXRlUGFpbnRSZWN0LmluZmxhdGVYKDMgKiBrZXJuZWxTaXplLndpZHRoKCkgKiAwLjVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVz
c2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggMTUwYTM4ZjJlZmJiMjhkY2I3MTk5NWI2NjE0NGEzNDQ4
ZWE0YThlZi4uYzBkM2FiOGMxN2IzNWJmNjMyOWMwMDIwNzU2OWRkYzhiZTZlNzliMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKQEAgLTM4NSwxMCArMzg1LDEwIEBAIGlubGluZSB2b2lkIEZFR2F1
c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5KFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5
LCBVaW50CiAgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxB
cnJheSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOwogfQogCi1JbnRTaXpl
IEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxvYXRQb2ludCBz
dGQpCitJbnRTaXplIEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUo
Y29uc3QgRmxvYXRQb2ludCYgc3RkKQogewogICAgIEFTU0VSVChzdGQueCgpID49IDAgJiYgc3Rk
LnkoKSA+PSAwKTsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUoMCwgMCk7CisgICAgSW50U2l6ZSBr
ZXJuZWxTaXplOwogCiAgICAgLy8gTGltaXQgdGhlIGtlcm5lbCBzaXplIHRvIDUwMC4gQSBiaWdn
ZXIgcmFkaXVzIHdvbid0IG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBmb3IgdGhlIHJlc3VsdCBpbWFn
ZSBidXQKICAgICAvLyBpbmZsYXRlcyB0aGUgYWJzb2x1dGUgcGFpbnQgcmVjdCB0byBtdWNoLiBU
aGlzIGlzIGNvbXBhdGlibGUgd2l0aCBGaXJlZm94JyBiZWhhdmlvci4KQEAgLTQwNSwxNyArNDA1
LDE2IEBAIEludFNpemUgRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6
ZShGbG9hdFBvaW50IHN0ZCkKICAgICByZXR1cm4ga2VybmVsU2l6ZTsKIH0KIAotSW50U2l6ZSBG
RUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQg
c3RkWCwgZmxvYXQgc3RkWSkKK0ludFNpemUgRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5l
bFNpemUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHN0ZCkKIHsKLSAgICBzdGRY
ID0gZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShzdGRYKTsKLSAgICBzdGRZID0gZmlsdGVy
LT5hcHBseVZlcnRpY2FsU2NhbGUoc3RkWSk7CisgICAgRmxvYXRQb2ludCBzdGRFcnJvcihmaWx0
ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxlKHN0ZC54KCkpLCBmaWx0ZXItPmFwcGx5VmVydGljYWxT
Y2FsZShzdGQueSgpKSk7CiAKLSAgICByZXR1cm4gY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXpl
KEZsb2F0UG9pbnQoc3RkWCwgc3RkWSkpOworICAgIHJldHVybiBjYWxjdWxhdGVVbnNjYWxlZEtl
cm5lbFNpemUoc3RkRXJyb3IpOwogfQogCiB2b2lkIEZFR2F1c3NpYW5CbHVyOjpkZXRlcm1pbmVB
YnNvbHV0ZVBhaW50UmVjdCgpCiB7Ci0gICAgSW50U2l6ZSBrZXJuZWxTaXplID0gY2FsY3VsYXRl
S2VybmVsU2l6ZShmaWx0ZXIoKSwgbV9zdGRYLCBtX3N0ZFkpOworICAgIEludFNpemUga2VybmVs
U2l6ZSA9IGNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyKCksIEZsb2F0UG9pbnQobV9zdGRYLCBt
X3N0ZFkpKTsKIAogICAgIEZsb2F0UmVjdCBhYnNvbHV0ZVBhaW50UmVjdCA9IGlucHV0RWZmZWN0
KDApLT5hYnNvbHV0ZVBhaW50UmVjdCgpOwogICAgIC8vIEVkZ2UgbW9kZXMgb3RoZXIgdGhhbiAn
bm9uZScgZG8gbm90IGluZmxhdGUgdGhlIGFmZmVjdGVkIHBhaW50IHJlY3QuCkBAIC00NTIsNyAr
NDUxLDcgQEAgdm9pZCBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAg
ICBpZiAoIW1fc3RkWCAmJiAhbV9zdGRZKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRTaXpl
IGtlcm5lbFNpemUgPSBjYWxjdWxhdGVLZXJuZWxTaXplKGZpbHRlcigpLCBtX3N0ZFgsIG1fc3Rk
WSk7CisgICAgSW50U2l6ZSBrZXJuZWxTaXplID0gY2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIo
KSwgRmxvYXRQb2ludChtX3N0ZFgsIG1fc3RkWSkpOwogCiAgICAgSW50U2l6ZSBwYWludFNpemUg
PSBhYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUoKTsKICAgICBSZWZQdHI8VWludDhDbGFtcGVkQXJy
YXk+IHRtcEltYWdlRGF0YSA9IFVpbnQ4Q2xhbXBlZEFycmF5OjpjcmVhdGVVbmluaXRpYWxpemVk
KHBhaW50U2l6ZS53aWR0aCgpICogcGFpbnRTaXplLmhlaWdodCgpICogNCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5C
bHVyLmgKaW5kZXggZGU2NWQ1NzA3Y2UzYWQwYjg0ZWU0NjYzNmM5OGM4MDM0OTE5ODUwZC4uMTUz
NmRmNTZlYTM4NDcwMWY3ZDY0ZDI0NTBjNTcxMDEzMzk5OTE5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOwotICAgIHN0YXRp
YyBJbnRTaXplIGNhbGN1bGF0ZUtlcm5lbFNpemUoRmlsdGVyKiwgZmxvYXQgc3RkWCwgZmxvYXQg
c3RkWSk7Ci0gICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKEZs
b2F0UG9pbnQgc3RkKTsKKyAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVLZXJuZWxTaXplKEZp
bHRlciosIGNvbnN0IEZsb2F0UG9pbnQmIHN0ZCk7CisgICAgc3RhdGljIEludFNpemUgY2FsY3Vs
YXRlVW5zY2FsZWRLZXJuZWxTaXplKGNvbnN0IEZsb2F0UG9pbnQmIHN0ZCk7CiAKICAgICB2aXJ0
dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBp
bmRlbnRpb24pIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXIuaAppbmRleCAwNzRiMzBjMmEzM2E3NWU5NTU0MjYxZTQyNTY5MTJi
ZDE2M2RhMGI1Li5hYWJhNmY3NzhiNTI0NDk4NmFhNWU5MDRiMzBmMTYwYWE4Njc0ZWMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgK
QEAgLTQ2LDggKzQ2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzU1ZHRmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgZmxvYXQgYXBwbHlIb3Jp
em9udGFsU2NhbGUoZmxvYXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJS
ZXNvbHV0aW9uLndpZHRoKCk7IH0KLSAgICB2aXJ0dWFsIGZsb2F0IGFwcGx5VmVydGljYWxTY2Fs
ZShmbG9hdCB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFsdWUgKiBtX2ZpbHRlclJlc29sdXRpb24u
aGVpZ2h0KCk7IH0KKyAgICB2aXJ0dWFsIGZsb2F0IGFwcGx5SG9yaXpvbnRhbFNjYWxlKGNvbnN0
IGZsb2F0IHZhbHVlKSBjb25zdCB7IHJldHVybiB2YWx1ZSAqIG1fZmlsdGVyUmVzb2x1dGlvbi53
aWR0aCgpOyB9CisgICAgdmlydHVhbCBmbG9hdCBhcHBseVZlcnRpY2FsU2NhbGUoY29uc3QgZmxv
YXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9uLmhlaWdo
dCgpOyB9CiAgICAgCiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0ID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227860</attachid>
            <date>2014-03-26 10:33:45 -0700</date>
            <delta_ts>2014-03-26 10:51:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130779-20140326103324.patch</filename>
            <type>text/plain</type>
            <size>7427</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0MzUxYzFmODQxNmVi
NDE1MDVjMmMwYjgyODQ0Nzg0NjU2MTdkMS4uNjM0MmY4NmQ2ZjdlMmQ4ZjdiNzI1ZWQ5NTcxZDBj
Njg0MzE1MGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAzLTI2ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBGRUdh
dXNzaWFuQmx1cjogdW5pZnkgYW5kIGNvbnN0LWlmeSBjYWxjdWxhdGVLZXJuZWxTaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1ldGhvZHMg
Y2FuIGJlbmVmaXQgb2YgdXNpbmcgY29uc3QgcmVmcyBhcyBhbHNvIG1ha2VzIHNlbnNlCisgICAg
ICAgIHRvIHVuaWZ5IHRoZSBpbnRlcmZhY2UgKGkuZS4gcGFyYW1ldGVycykgaW4gY2FsY3VsYXRl
S2VybmVsU2l6ZQorICAgICAgICBhbmQgVW5zY2FsZWRLZXJuZWxTaXplLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gY2hhbmdlIG9uIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVE
cm9wU2hhZG93OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlcjo6YXBwbHlIb3Jpem9udGFsU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyOjphcHBseVZlcnRpY2FsU2NhbGUpOgorCiAyMDE0LTAzLTI2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV2ViS2l0Ml0gRmx1c2gg
YWxsIHN1cmZhY2VzIGFmdGVyIHBhaW50aW5nIGludG8gYWxsIG9mIHRoZW0sIGluc3RlYWQgb2Yg
YWZ0ZXIgcGFpbnRpbmcgaW50byBlYWNoIG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IGVlYzcz
NDVhNTRiYzg0Y2VmNzhjODg5ZTI1ZWMyMmQ2NjYzYWZjMzkuLjk0MDk3NDFjYWExNzE4NDdkNjg3
NWRjOTNjZmZkMjUxNTQ1OWNhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBGRURyb3BTaGFkb3c6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKICAgICBh
YnNvbHV0ZU9mZnNldFBhaW50UmVjdC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUo
bV9keCksIGZpbHRlci0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKICAgICBhYnNvbHV0ZVBh
aW50UmVjdC51bml0ZShhYnNvbHV0ZU9mZnNldFBhaW50UmVjdCk7CiAKLSAgICBJbnRTaXplIGtl
cm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIG1f
c3RkWCwgbV9zdGRZKTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6
Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIEZsb2F0UG9pbnQobV9zdGRYLCBtX3N0ZFkpKTsK
IAogICAgIC8vIFdlIHRha2UgdGhlIGhhbGYga2VybmVsIHNpemUgYW5kIG11bHRpcGx5IGl0IHdp
dGggdGhyZWUsIGJlY2F1c2Ugd2UgcnVuIGJveCBibHVyIHRocmVlIHRpbWVzLgogICAgIGFic29s
dXRlUGFpbnRSZWN0LmluZmxhdGVYKDMgKiBrZXJuZWxTaXplLndpZHRoKCkgKiAwLjVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVz
c2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggMTUwYTM4ZjJlZmJiMjhkY2I3MTk5NWI2NjE0NGEzNDQ4
ZWE0YThlZi4uMGI3MjNlN2ZiYmJjYTcxNGRjOWY4MWY5NzY1OWZhMGU2ZjhlZmQ3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKQEAgLTM4NSwzNyArMzg1LDM2IEBAIGlubGluZSB2b2lkIEZFR2F1
c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5KFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5
LCBVaW50CiAgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxB
cnJheSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOwogfQogCi1JbnRTaXpl
IEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxvYXRQb2ludCBz
dGQpCitJbnRTaXplIEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUo
Y29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKQogewotICAgIEFTU0VSVChzdGQueCgpID49
IDAgJiYgc3RkLnkoKSA+PSAwKTsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUoMCwgMCk7CisgICAg
QVNTRVJUKHN0ZERldmlhdGlvbi54KCkgPj0gMCAmJiBzdGREZXZpYXRpb24ueSgpID49IDApOwor
ICAgIEludFNpemUga2VybmVsU2l6ZTsKIAogICAgIC8vIExpbWl0IHRoZSBrZXJuZWwgc2l6ZSB0
byA1MDAuIEEgYmlnZ2VyIHJhZGl1cyB3b24ndCBtYWtlIGEgYmlnIGRpZmZlcmVuY2UgZm9yIHRo
ZSByZXN1bHQgaW1hZ2UgYnV0CiAgICAgLy8gaW5mbGF0ZXMgdGhlIGFic29sdXRlIHBhaW50IHJl
Y3QgdG8gbXVjaC4gVGhpcyBpcyBjb21wYXRpYmxlIHdpdGggRmlyZWZveCcgYmVoYXZpb3IuCi0g
ICAgaWYgKHN0ZC54KCkpIHsKLSAgICAgICAgaW50IHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4o
Miwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGQueCgpICogZ2F1c3NpYW5LZXJuZWxG
YWN0b3IoKSArIDAuNWYpKSk7CisgICAgaWYgKHN0ZERldmlhdGlvbi54KCkpIHsKKyAgICAgICAg
aW50IHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4oMiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZs
b29yZihzdGREZXZpYXRpb24ueCgpICogZ2F1c3NpYW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7
CiAgICAgICAgIGtlcm5lbFNpemUuc2V0V2lkdGgoc3RkOjptaW4oc2l6ZSwgZ01heEtlcm5lbFNp
emUpKTsKICAgICB9CiAKLSAgICBpZiAoc3RkLnkoKSkgewotICAgICAgICBpbnQgc2l6ZSA9IHN0
ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZC55KCkg
KiBnYXVzc2lhbktlcm5lbEZhY3RvcigpICsgMC41ZikpKTsKKyAgICBpZiAoc3RkRGV2aWF0aW9u
LnkoKSkgeworICAgICAgICBpbnQgc2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZERldmlhdGlvbi55KCkgKiBnYXVzc2lhbktlcm5lbEZh
Y3RvcigpICsgMC41ZikpKTsKICAgICAgICAga2VybmVsU2l6ZS5zZXRIZWlnaHQoc3RkOjptaW4o
c2l6ZSwgZ01heEtlcm5lbFNpemUpKTsKICAgICB9CiAKICAgICByZXR1cm4ga2VybmVsU2l6ZTsK
IH0KIAotSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIq
IGZpbHRlciwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSkKK0ludFNpemUgRkVHYXVzc2lhbkJsdXI6
OmNhbGN1bGF0ZUtlcm5lbFNpemUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHN0
ZERldmlhdGlvbikKIHsKLSAgICBzdGRYID0gZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShz
dGRYKTsKLSAgICBzdGRZID0gZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUoc3RkWSk7CisgICAg
RmxvYXRQb2ludCBzdGRGaWx0ZXJTY2FsZWQoZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShz
dGREZXZpYXRpb24ueCgpKSwgZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUoc3RkRGV2aWF0aW9u
LnkoKSkpOwogCi0gICAgcmV0dXJuIGNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFBv
aW50KHN0ZFgsIHN0ZFkpKTsKKyAgICByZXR1cm4gY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXpl
KHN0ZEZpbHRlclNjYWxlZCk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVL
ZXJuZWxTaXplKGZpbHRlcigpLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50U2l6ZSBrZXJuZWxT
aXplID0gY2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIoKSwgRmxvYXRQb2ludChtX3N0ZFgsIG1f
c3RkWSkpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0gaW5wdXRFZmZlY3Qo
MCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgLy8gRWRnZSBtb2RlcyBvdGhlciB0aGFuICdu
b25lJyBkbyBub3QgaW5mbGF0ZSB0aGUgYWZmZWN0ZWQgcGFpbnQgcmVjdC4KQEAgLTQ1Miw3ICs0
NTEsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAg
IGlmICghbV9zdGRYICYmICFtX3N0ZFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFNpemUg
a2VybmVsU2l6ZSA9IGNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyKCksIG1fc3RkWCwgbV9zdGRZ
KTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVLZXJuZWxTaXplKGZpbHRlcigp
LCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICBJbnRTaXplIHBhaW50U2l6ZSA9
IGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpOwogICAgIFJlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gdG1wSW1hZ2VEYXRhID0gVWludDhDbGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
cGFpbnRTaXplLndpZHRoKCkgKiBwYWludFNpemUuaGVpZ2h0KCkgKiA0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuaAppbmRleCBkZTY1ZDU3MDdjZTNhZDBiODRlZTQ2NjM2Yzk4YzgwMzQ5MTk4NTBkLi42NmZk
MDlhYjFjYTZhODAyNThmMzE1ZWEzNjk1MDBiMmI3NWVjMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7Ci0gICAgc3RhdGlj
IEludFNpemUgY2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqLCBmbG9hdCBzdGRYLCBmbG9hdCBz
dGRZKTsKLSAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxv
YXRQb2ludCBzdGQpOworICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZUtlcm5lbFNpemUoRmls
dGVyKiwgY29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKTsKKyAgICBzdGF0aWMgSW50U2l6
ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoY29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0
aW9uKTsKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihU
ZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IDA3NGIzMGMyYTMzYTc1
ZTk1NTQyNjFlNDI1NjkxMmJkMTYzZGEwYjUuLmFhYmE2Zjc3OGI1MjQ0OTg2YWE1ZTkwNGIzMGYx
NjBhYTg2NzRlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXIuaApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVh
bCBmbG9hdCBhcHBseUhvcml6b250YWxTY2FsZShmbG9hdCB2YWx1ZSkgY29uc3QgeyByZXR1cm4g
dmFsdWUgKiBtX2ZpbHRlclJlc29sdXRpb24ud2lkdGgoKTsgfQotICAgIHZpcnR1YWwgZmxvYXQg
YXBwbHlWZXJ0aWNhbFNjYWxlKGZsb2F0IHZhbHVlKSBjb25zdCB7IHJldHVybiB2YWx1ZSAqIG1f
ZmlsdGVyUmVzb2x1dGlvbi5oZWlnaHQoKTsgfQorICAgIHZpcnR1YWwgZmxvYXQgYXBwbHlIb3Jp
em9udGFsU2NhbGUoY29uc3QgZmxvYXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9m
aWx0ZXJSZXNvbHV0aW9uLndpZHRoKCk7IH0KKyAgICB2aXJ0dWFsIGZsb2F0IGFwcGx5VmVydGlj
YWxTY2FsZShjb25zdCBmbG9hdCB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFsdWUgKiBtX2ZpbHRl
clJlc29sdXRpb24uaGVpZ2h0KCk7IH0KICAgICAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzb3Vy
Y2VJbWFnZVJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVn
aW9uKCkgY29uc3QgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227864</attachid>
            <date>2014-03-26 10:51:19 -0700</date>
            <delta_ts>2014-03-26 13:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130779-20140326105059.patch</filename>
            <type>text/plain</type>
            <size>7439</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0MzUxYzFmODQxNmVi
NDE1MDVjMmMwYjgyODQ0Nzg0NjU2MTdkMS4uNjM0MmY4NmQ2ZjdlMmQ4ZjdiNzI1ZWQ5NTcxZDBj
Njg0MzE1MGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAzLTI2ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBGRUdh
dXNzaWFuQmx1cjogdW5pZnkgYW5kIGNvbnN0LWlmeSBjYWxjdWxhdGVLZXJuZWxTaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1ldGhvZHMg
Y2FuIGJlbmVmaXQgb2YgdXNpbmcgY29uc3QgcmVmcyBhcyBhbHNvIG1ha2VzIHNlbnNlCisgICAg
ICAgIHRvIHVuaWZ5IHRoZSBpbnRlcmZhY2UgKGkuZS4gcGFyYW1ldGVycykgaW4gY2FsY3VsYXRl
S2VybmVsU2l6ZQorICAgICAgICBhbmQgVW5zY2FsZWRLZXJuZWxTaXplLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gY2hhbmdlIG9uIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVE
cm9wU2hhZG93OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVLZXJuZWxTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlcjo6YXBwbHlIb3Jpem9udGFsU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyOjphcHBseVZlcnRpY2FsU2NhbGUpOgorCiAyMDE0LTAzLTI2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV2ViS2l0Ml0gRmx1c2gg
YWxsIHN1cmZhY2VzIGFmdGVyIHBhaW50aW5nIGludG8gYWxsIG9mIHRoZW0sIGluc3RlYWQgb2Yg
YWZ0ZXIgcGFpbnRpbmcgaW50byBlYWNoIG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IGVlYzcz
NDVhNTRiYzg0Y2VmNzhjODg5ZTI1ZWMyMmQ2NjYzYWZjMzkuLjk0MDk3NDFjYWExNzE4NDdkNjg3
NWRjOTNjZmZkMjUxNTQ1OWNhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBGRURyb3BTaGFkb3c6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKICAgICBh
YnNvbHV0ZU9mZnNldFBhaW50UmVjdC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUo
bV9keCksIGZpbHRlci0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKICAgICBhYnNvbHV0ZVBh
aW50UmVjdC51bml0ZShhYnNvbHV0ZU9mZnNldFBhaW50UmVjdCk7CiAKLSAgICBJbnRTaXplIGtl
cm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIG1f
c3RkWCwgbV9zdGRZKTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBGRUdhdXNzaWFuQmx1cjo6
Y2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIsIEZsb2F0UG9pbnQobV9zdGRYLCBtX3N0ZFkpKTsK
IAogICAgIC8vIFdlIHRha2UgdGhlIGhhbGYga2VybmVsIHNpemUgYW5kIG11bHRpcGx5IGl0IHdp
dGggdGhyZWUsIGJlY2F1c2Ugd2UgcnVuIGJveCBibHVyIHRocmVlIHRpbWVzLgogICAgIGFic29s
dXRlUGFpbnRSZWN0LmluZmxhdGVYKDMgKiBrZXJuZWxTaXplLndpZHRoKCkgKiAwLjVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVz
c2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggMTUwYTM4ZjJlZmJiMjhkY2I3MTk5NWI2NjE0NGEzNDQ4
ZWE0YThlZi4uZTM1NjUyMjdmOGU5YzdiZTNhNzRiMzI3NDkzNzhlOTBiMmNhZjJjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKQEAgLTM4NSwzNyArMzg1LDM2IEBAIGlubGluZSB2b2lkIEZFR2F1
c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5KFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5
LCBVaW50CiAgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxB
cnJheSwga2VybmVsU2l6ZVgsIGtlcm5lbFNpemVZLCBwYWludFNpemUpOwogfQogCi1JbnRTaXpl
IEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxvYXRQb2ludCBz
dGQpCitJbnRTaXplIEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUo
Y29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKQogewotICAgIEFTU0VSVChzdGQueCgpID49
IDAgJiYgc3RkLnkoKSA+PSAwKTsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUoMCwgMCk7CisgICAg
QVNTRVJUKHN0ZERldmlhdGlvbi54KCkgPj0gMCAmJiBzdGREZXZpYXRpb24ueSgpID49IDApOwor
ICAgIEludFNpemUga2VybmVsU2l6ZTsKIAogICAgIC8vIExpbWl0IHRoZSBrZXJuZWwgc2l6ZSB0
byA1MDAuIEEgYmlnZ2VyIHJhZGl1cyB3b24ndCBtYWtlIGEgYmlnIGRpZmZlcmVuY2UgZm9yIHRo
ZSByZXN1bHQgaW1hZ2UgYnV0CiAgICAgLy8gaW5mbGF0ZXMgdGhlIGFic29sdXRlIHBhaW50IHJl
Y3QgdG8gbXVjaC4gVGhpcyBpcyBjb21wYXRpYmxlIHdpdGggRmlyZWZveCcgYmVoYXZpb3IuCi0g
ICAgaWYgKHN0ZC54KCkpIHsKLSAgICAgICAgaW50IHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4o
Miwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGQueCgpICogZ2F1c3NpYW5LZXJuZWxG
YWN0b3IoKSArIDAuNWYpKSk7CisgICAgaWYgKHN0ZERldmlhdGlvbi54KCkpIHsKKyAgICAgICAg
aW50IHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4oMiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZs
b29yZihzdGREZXZpYXRpb24ueCgpICogZ2F1c3NpYW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7
CiAgICAgICAgIGtlcm5lbFNpemUuc2V0V2lkdGgoc3RkOjptaW4oc2l6ZSwgZ01heEtlcm5lbFNp
emUpKTsKICAgICB9CiAKLSAgICBpZiAoc3RkLnkoKSkgewotICAgICAgICBpbnQgc2l6ZSA9IHN0
ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZC55KCkg
KiBnYXVzc2lhbktlcm5lbEZhY3RvcigpICsgMC41ZikpKTsKKyAgICBpZiAoc3RkRGV2aWF0aW9u
LnkoKSkgeworICAgICAgICBpbnQgc2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZERldmlhdGlvbi55KCkgKiBnYXVzc2lhbktlcm5lbEZh
Y3RvcigpICsgMC41ZikpKTsKICAgICAgICAga2VybmVsU2l6ZS5zZXRIZWlnaHQoc3RkOjptaW4o
c2l6ZSwgZ01heEtlcm5lbFNpemUpKTsKICAgICB9CiAKICAgICByZXR1cm4ga2VybmVsU2l6ZTsK
IH0KIAotSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIq
IGZpbHRlciwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSkKK0ludFNpemUgRkVHYXVzc2lhbkJsdXI6
OmNhbGN1bGF0ZUtlcm5lbFNpemUoY29uc3QgRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IEZsb2F0UG9p
bnQmIHN0ZERldmlhdGlvbikKIHsKLSAgICBzdGRYID0gZmlsdGVyLT5hcHBseUhvcml6b250YWxT
Y2FsZShzdGRYKTsKLSAgICBzdGRZID0gZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUoc3RkWSk7
CisgICAgRmxvYXRQb2ludCBzdGRGaWx0ZXJTY2FsZWQoZmlsdGVyLT5hcHBseUhvcml6b250YWxT
Y2FsZShzdGREZXZpYXRpb24ueCgpKSwgZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUoc3RkRGV2
aWF0aW9uLnkoKSkpOwogCi0gICAgcmV0dXJuIGNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShG
bG9hdFBvaW50KHN0ZFgsIHN0ZFkpKTsKKyAgICByZXR1cm4gY2FsY3VsYXRlVW5zY2FsZWRLZXJu
ZWxTaXplKHN0ZEZpbHRlclNjYWxlZCk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVy
bWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxj
dWxhdGVLZXJuZWxTaXplKGZpbHRlcigpLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50U2l6ZSBr
ZXJuZWxTaXplID0gY2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIoKSwgRmxvYXRQb2ludChtX3N0
ZFgsIG1fc3RkWSkpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0gaW5wdXRF
ZmZlY3QoMCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgLy8gRWRnZSBtb2RlcyBvdGhlciB0
aGFuICdub25lJyBkbyBub3QgaW5mbGF0ZSB0aGUgYWZmZWN0ZWQgcGFpbnQgcmVjdC4KQEAgLTQ1
Miw3ICs0NTEsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KQogICAgIGlmICghbV9zdGRYICYmICFtX3N0ZFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIElu
dFNpemUga2VybmVsU2l6ZSA9IGNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyKCksIG1fc3RkWCwg
bV9zdGRZKTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVLZXJuZWxTaXplKGZp
bHRlcigpLCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICBJbnRTaXplIHBhaW50
U2l6ZSA9IGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpOwogICAgIFJlZlB0cjxVaW50OENsYW1w
ZWRBcnJheT4gdG1wSW1hZ2VEYXRhID0gVWludDhDbGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQocGFpbnRTaXplLndpZHRoKCkgKiBwYWludFNpemUuaGVpZ2h0KCkgKiA0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVz
c2lhbkJsdXIuaAppbmRleCBkZTY1ZDU3MDdjZTNhZDBiODRlZTQ2NjM2Yzk4YzgwMzQ5MTk4NTBk
Li5lMWE3MzVjNmZmMDU1NDc4NjA0MDI4Y2ZhYmM3YmE1MjJlYmE4OGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7Ci0gICAg
c3RhdGljIEludFNpemUgY2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqLCBmbG9hdCBzdGRYLCBm
bG9hdCBzdGRZKTsKLSAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNp
emUoRmxvYXRQb2ludCBzdGQpOworICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZUtlcm5lbFNp
emUoY29uc3QgRmlsdGVyKiwgY29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKTsKKyAgICBz
dGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoY29uc3QgRmxvYXRQb2lu
dCYgc3RkRGV2aWF0aW9uKTsKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IDA3
NGIzMGMyYTMzYTc1ZTk1NTQyNjFlNDI1NjkxMmJkMTYzZGEwYjUuLmFhYmE2Zjc3OGI1MjQ0OTg2
YWE1ZTkwNGIzMGYxNjBhYTg2NzRlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgdmlydHVhbCBmbG9hdCBhcHBseUhvcml6b250YWxTY2FsZShmbG9hdCB2YWx1ZSkgY29u
c3QgeyByZXR1cm4gdmFsdWUgKiBtX2ZpbHRlclJlc29sdXRpb24ud2lkdGgoKTsgfQotICAgIHZp
cnR1YWwgZmxvYXQgYXBwbHlWZXJ0aWNhbFNjYWxlKGZsb2F0IHZhbHVlKSBjb25zdCB7IHJldHVy
biB2YWx1ZSAqIG1fZmlsdGVyUmVzb2x1dGlvbi5oZWlnaHQoKTsgfQorICAgIHZpcnR1YWwgZmxv
YXQgYXBwbHlIb3Jpem9udGFsU2NhbGUoY29uc3QgZmxvYXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJu
IHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9uLndpZHRoKCk7IH0KKyAgICB2aXJ0dWFsIGZsb2F0
IGFwcGx5VmVydGljYWxTY2FsZShjb25zdCBmbG9hdCB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFs
dWUgKiBtX2ZpbHRlclJlc29sdXRpb24uaGVpZ2h0KCk7IH0KICAgICAKICAgICB2aXJ0dWFsIEZs
b2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJl
Y3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227879</attachid>
            <date>2014-03-26 13:14:40 -0700</date>
            <delta_ts>2014-03-26 18:11:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130779-20140326131420.patch</filename>
            <type>text/plain</type>
            <size>22424</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0MzUxYzFmODQxNmVi
NDE1MDVjMmMwYjgyODQ0Nzg0NjU2MTdkMS4uNDZiYTUwYjgwNDZkMGU0N2I4ZWFkN2MzMjE5NWM1
OTMzZjdhMmQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE0LTAzLTI2ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBGRUdh
dXNzaWFuQmx1cjogdW5pZnkgYW5kIGNvbnN0LWlmeSBjYWxjdWxhdGVLZXJuZWxTaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NzkKKworICAg
ICAgICBTb21lIG1ldGhvZHMgY2FuIGJlbmVmaXQgb2YgdXNpbmcgY29uc3QgcmVmcyBhcyBhbHNv
IG1ha2Ugc2Vuc2UgdG8KKyAgICAgICAgdW5pZnkgdGhlIGludGVyZmFjZSAoaS5lLiBwYXJhbWV0
ZXJzKSBpbiBjYWxjdWxhdGVLZXJuZWxTaXplL1Vuc2NhbGVkLgorCisgICAgICAgIEZpbHRlckVm
ZmVjdDo6ZmlsdGVyKCkgd2lsbCBub3cgcmV0dXJuIGEgcmVmZXJlbmNlLCB3aGljaCBoZWxwcyBz
aW5jZQorICAgICAgICBpdHMgZGVzY2VuZGFudHMgd2VyZSBhY2Nlc3NpbmcgbWV0aG9kcyBpbnRv
IHRoZSBwb2ludGVyIHdpdGhvdXQgdGVzdGluZworICAgICAgICBmb3IgaXQuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBj
aGFuZ2VzIG9uIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNlbWVu
dE1hcDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFk
b3c6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJv
cFNoYWRvdzo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1
c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFT2Zmc2V0OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRU9mZnNldDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVRp
bGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUdXJidWxlbmNl
OjpmaWxsUmVnaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyOjphcHBseUhvcml6b250YWxTY2FsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OmFwcGx5VmVydGljYWxTY2FsZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBo
YTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhp
Yzo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
R3JhcGhpYzo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRp
dmVTdWJyZWdpb24pOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToK
KwogMjAxNC0wMy0yNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TIFdlYktpdDJdIEZsdXNoIGFsbCBzdXJmYWNlcyBhZnRlciBwYWludGluZyBp
bnRvIGFsbCBvZiB0aGVtLCBpbnN0ZWFkIG9mIGFmdGVyIHBhaW50aW5nIGludG8gZWFjaCBvbmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggZGZiOTE5NGRhZTQwMWFlODRiNjcwMDlk
ZjMzNjBjNDQ4NGI2NmUyZC4uNmZjZTM3M2ExMDkxMWU0NGJkN2FmZTcwMTZmZmEwYmUxZmUzNzc5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTEyMywxMCArMTIzLDEwIEBAIHZv
aWQgRkVEaXNwbGFjZW1lbnRNYXA6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAKICAgICBBU1NF
UlQoc3JjUGl4ZWxBcnJheUEtPmxlbmd0aCgpID09IHNyY1BpeGVsQXJyYXlCLT5sZW5ndGgoKSk7
CiAKLSAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOworICAgIEZpbHRlciYgZmls
dGVyID0gdGhpcy0+ZmlsdGVyKCk7CiAgICAgSW50U2l6ZSBwYWludFNpemUgPSBhYnNvbHV0ZVBh
aW50UmVjdCgpLnNpemUoKTsKLSAgICBmbG9hdCBzY2FsZVggPSBmaWx0ZXItPmFwcGx5SG9yaXpv
bnRhbFNjYWxlKG1fc2NhbGUpOwotICAgIGZsb2F0IHNjYWxlWSA9IGZpbHRlci0+YXBwbHlWZXJ0
aWNhbFNjYWxlKG1fc2NhbGUpOworICAgIGZsb2F0IHNjYWxlWCA9IGZpbHRlci5hcHBseUhvcml6
b250YWxTY2FsZShtX3NjYWxlKTsKKyAgICBmbG9hdCBzY2FsZVkgPSBmaWx0ZXIuYXBwbHlWZXJ0
aWNhbFNjYWxlKG1fc2NhbGUpOwogICAgIGZsb2F0IHNjYWxlRm9yQ29sb3JYID0gc2NhbGVYIC8g
MjU1LjA7CiAgICAgZmxvYXQgc2NhbGVGb3JDb2xvclkgPSBzY2FsZVkgLyAyNTUuMDsKICAgICBm
bG9hdCBzY2FsZWRPZmZzZXRYID0gMC41IC0gc2NhbGVYICogMC41OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3Bw
CmluZGV4IGVlYzczNDVhNTRiYzg0Y2VmNzhjODg5ZTI1ZWMyMmQ2NjYzYWZjMzkuLjEwYTg5OTYx
ZWQ1NmZjNTRlMDdhYjQyMGY1YzczMWY1MjM4NGY1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAg
LTUxLDE1ICs1MSwxNCBAQCBQYXNzUmVmUHRyPEZFRHJvcFNoYWRvdz4gRkVEcm9wU2hhZG93Ojpj
cmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IHN0ZFgsIGZsb2F0CiAKIHZvaWQgRkVEcm9wU2hh
ZG93OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7Ci0gICAgRmlsdGVyKiBmaWx0ZXIg
PSB0aGlzLT5maWx0ZXIoKTsKLSAgICBBU1NFUlQoZmlsdGVyKTsKKyAgICBGaWx0ZXImIGZpbHRl
ciA9IHRoaXMtPmZpbHRlcigpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0g
aW5wdXRFZmZlY3QoMCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgRmxvYXRSZWN0IGFic29s
dXRlT2Zmc2V0UGFpbnRSZWN0KGFic29sdXRlUGFpbnRSZWN0KTsKLSAgICBhYnNvbHV0ZU9mZnNl
dFBhaW50UmVjdC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRl
ci0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBhYnNvbHV0ZU9mZnNldFBhaW50UmVj
dC5tb3ZlKGZpbHRlci5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwgZmlsdGVyLmFwcGx5VmVy
dGljYWxTY2FsZShtX2R5KSk7CiAgICAgYWJzb2x1dGVQYWludFJlY3QudW5pdGUoYWJzb2x1dGVP
ZmZzZXRQYWludFJlY3QpOwogCi0gICAgSW50U2l6ZSBrZXJuZWxTaXplID0gRkVHYXVzc2lhbkJs
dXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50
U2l6ZSBrZXJuZWxTaXplID0gRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUoZmls
dGVyLCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICAvLyBXZSB0YWtlIHRoZSBo
YWxmIGtlcm5lbCBzaXplIGFuZCBtdWx0aXBseSBpdCB3aXRoIHRocmVlLCBiZWNhdXNlIHdlIHJ1
biBib3ggYmx1ciB0aHJlZSB0aW1lcy4KICAgICBhYnNvbHV0ZVBhaW50UmVjdC5pbmZsYXRlWCgz
ICoga2VybmVsU2l6ZS53aWR0aCgpICogMC41Zik7CkBAIC04MSw5ICs4MCw5IEBAIHZvaWQgRkVE
cm9wU2hhZG93OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIGlmICghcmVzdWx0SW1hZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIEZpbHRlciogZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7
Ci0gICAgRmxvYXRTaXplIGJsdXJSYWRpdXMoZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZSht
X3N0ZFgpLCBmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShtX3N0ZFkpKTsKLSAgICBGbG9hdFNp
emUgb2Zmc2V0KGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRlci0+YXBw
bHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRl
cigpOworICAgIEZsb2F0U2l6ZSBibHVyUmFkaXVzKGZpbHRlci5hcHBseUhvcml6b250YWxTY2Fs
ZShtX3N0ZFgpLCBmaWx0ZXIuYXBwbHlWZXJ0aWNhbFNjYWxlKG1fc3RkWSkpOworICAgIEZsb2F0
U2l6ZSBvZmZzZXQoZmlsdGVyLmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fZHgpLCBmaWx0ZXIuYXBw
bHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKIAogICAgIEZsb2F0UmVjdCBkcmF3aW5nUmVnaW9uID0g
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSk7CiAgICAg
RmxvYXRSZWN0IGRyYXdpbmdSZWdpb25XaXRoT2Zmc2V0KGRyYXdpbmdSZWdpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmNwcAppbmRleCAxNTBhMzhmMmVmYmIyOGRjYjcxOTk1YjY2MTQ0YTM0NDhlYTRh
OGVmLi4zMzY0YzA3ZmE0MGRiOTBlZjYzYTgyYmY2ODY4MWE5ZjVmMWE4YTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmNwcApAQCAtMzg1LDM3ICszODUsMzUgQEAgaW5saW5lIHZvaWQgRkVHYXVzc2lh
bkJsdXI6OnBsYXRmb3JtQXBwbHkoVWludDhDbGFtcGVkQXJyYXkqIHNyY1BpeGVsQXJyYXksIFVp
bnQKICAgICBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5
LCBrZXJuZWxTaXplWCwga2VybmVsU2l6ZVksIHBhaW50U2l6ZSk7CiB9CiAKLUludFNpemUgRkVH
YXVzc2lhbkJsdXI6OmNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFBvaW50IHN0ZCkK
K0ludFNpemUgRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShjb25z
dCBGbG9hdFBvaW50JiBzdGREZXZpYXRpb24pCiB7Ci0gICAgQVNTRVJUKHN0ZC54KCkgPj0gMCAm
JiBzdGQueSgpID49IDApOwotICAgIEludFNpemUga2VybmVsU2l6ZSgwLCAwKTsKKyAgICBBU1NF
UlQoc3RkRGV2aWF0aW9uLngoKSA+PSAwICYmIHN0ZERldmlhdGlvbi55KCkgPj0gMCk7CisgICAg
SW50U2l6ZSBrZXJuZWxTaXplOwogCiAgICAgLy8gTGltaXQgdGhlIGtlcm5lbCBzaXplIHRvIDUw
MC4gQSBiaWdnZXIgcmFkaXVzIHdvbid0IG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBmb3IgdGhlIHJl
c3VsdCBpbWFnZSBidXQKICAgICAvLyBpbmZsYXRlcyB0aGUgYWJzb2x1dGUgcGFpbnQgcmVjdCB0
byBtdWNoLiBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBGaXJlZm94JyBiZWhhdmlvci4KLSAgICBp
ZiAoc3RkLngoKSkgewotICAgICAgICBpbnQgc2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZC54KCkgKiBnYXVzc2lhbktlcm5lbEZhY3Rv
cigpICsgMC41ZikpKTsKKyAgICBpZiAoc3RkRGV2aWF0aW9uLngoKSkgeworICAgICAgICBpbnQg
c2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3Jm
KHN0ZERldmlhdGlvbi54KCkgKiBnYXVzc2lhbktlcm5lbEZhY3RvcigpICsgMC41ZikpKTsKICAg
ICAgICAga2VybmVsU2l6ZS5zZXRXaWR0aChzdGQ6Om1pbihzaXplLCBnTWF4S2VybmVsU2l6ZSkp
OwogICAgIH0KIAotICAgIGlmIChzdGQueSgpKSB7Ci0gICAgICAgIGludCBzaXplID0gc3RkOjpt
YXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcmYoc3RkLnkoKSAqIGdh
dXNzaWFuS2VybmVsRmFjdG9yKCkgKyAwLjVmKSkpOworICAgIGlmIChzdGREZXZpYXRpb24ueSgp
KSB7CisgICAgICAgIGludCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihmbG9vcmYoc3RkRGV2aWF0aW9uLnkoKSAqIGdhdXNzaWFuS2VybmVsRmFjdG9y
KCkgKyAwLjVmKSkpOwogICAgICAgICBrZXJuZWxTaXplLnNldEhlaWdodChzdGQ6Om1pbihzaXpl
LCBnTWF4S2VybmVsU2l6ZSkpOwogICAgIH0KIAogICAgIHJldHVybiBrZXJuZWxTaXplOwogfQog
Ci1JbnRTaXplIEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVLZXJuZWxTaXplKEZpbHRlciogZmls
dGVyLCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZKQorSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2Fs
Y3VsYXRlS2VybmVsU2l6ZShjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmxvYXRQb2ludCYg
c3RkRGV2aWF0aW9uKQogewotICAgIHN0ZFggPSBmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxl
KHN0ZFgpOwotICAgIHN0ZFkgPSBmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShzdGRZKTsKLQot
ICAgIHJldHVybiBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxvYXRQb2ludChzdGRYLCBz
dGRZKSk7CisgICAgRmxvYXRQb2ludCBzdGRGaWx0ZXJTY2FsZWQoZmlsdGVyLmFwcGx5SG9yaXpv
bnRhbFNjYWxlKHN0ZERldmlhdGlvbi54KCkpLCBmaWx0ZXIuYXBwbHlWZXJ0aWNhbFNjYWxlKHN0
ZERldmlhdGlvbi55KCkpKTsKKyAgICByZXR1cm4gY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXpl
KHN0ZEZpbHRlclNjYWxlZCk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVL
ZXJuZWxTaXplKGZpbHRlcigpLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50U2l6ZSBrZXJuZWxT
aXplID0gY2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIoKSwgRmxvYXRQb2ludChtX3N0ZFgsIG1f
c3RkWSkpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0gaW5wdXRFZmZlY3Qo
MCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgLy8gRWRnZSBtb2RlcyBvdGhlciB0aGFuICdu
b25lJyBkbyBub3QgaW5mbGF0ZSB0aGUgYWZmZWN0ZWQgcGFpbnQgcmVjdC4KQEAgLTQ1Miw3ICs0
NTAsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAg
IGlmICghbV9zdGRYICYmICFtX3N0ZFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFNpemUg
a2VybmVsU2l6ZSA9IGNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyKCksIG1fc3RkWCwgbV9zdGRZ
KTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVLZXJuZWxTaXplKGZpbHRlcigp
LCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICBJbnRTaXplIHBhaW50U2l6ZSA9
IGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpOwogICAgIFJlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gdG1wSW1hZ2VEYXRhID0gVWludDhDbGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
cGFpbnRTaXplLndpZHRoKCkgKiBwYWludFNpemUuaGVpZ2h0KCkgKiA0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuaAppbmRleCBkZTY1ZDU3MDdjZTNhZDBiODRlZTQ2NjM2Yzk4YzgwMzQ5MTk4NTBkLi5mMjg5
NzMyNWNlNWNkYmEzNWNjMjJmNzJhMGJjZGYyMzZiYjlmZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7Ci0gICAgc3RhdGlj
IEludFNpemUgY2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqLCBmbG9hdCBzdGRYLCBmbG9hdCBz
dGRZKTsKLSAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxv
YXRQb2ludCBzdGQpOworICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZUtlcm5lbFNpemUoY29u
c3QgRmlsdGVyJiwgY29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKTsKKyAgICBzdGF0aWMg
SW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoY29uc3QgRmxvYXRQb2ludCYgc3Rk
RGV2aWF0aW9uKTsKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cAppbmRleCA3MmZlYTM2YmJjMTFlMjY4ZjA5YTAwYmJiYjliYWI2Y2MwMmE0OGEyLi4zYTMwZGRi
YzlkZWVlMjMzMGFkYzIyZmEwOWZlYTUxM2QyZTQyOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBA
IC04Miw5ICs4Miw5IEBAIGZsb2F0IEZFTW9ycGhvbG9neTo6cmFkaXVzWSgpIGNvbnN0CiB2b2lk
IEZFTW9ycGhvbG9neTo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewogICAgIEZsb2F0
UmVjdCBwYWludFJlY3QgPSBpbnB1dEVmZmVjdCgwKS0+YWJzb2x1dGVQYWludFJlY3QoKTsKLSAg
ICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIHBhaW50UmVjdC5pbmZsYXRl
WChmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpOwotICAgIHBhaW50UmVj
dC5pbmZsYXRlWShmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShtX3JhZGl1c1kpKTsKKyAgICBG
aWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOworICAgIHBhaW50UmVjdC5pbmZsYXRlWChm
aWx0ZXIuYXBwbHlIb3Jpem9udGFsU2NhbGUobV9yYWRpdXNYKSk7CisgICAgcGFpbnRSZWN0Lmlu
ZmxhdGVZKGZpbHRlci5hcHBseVZlcnRpY2FsU2NhbGUobV9yYWRpdXNZKSk7CiAgICAgaWYgKGNs
aXBzVG9Cb3VuZHMoKSkKICAgICAgICAgcGFpbnRSZWN0LmludGVyc2VjdChtYXhFZmZlY3RSZWN0
KCkpOwogICAgIGVsc2UKQEAgLTIwNiw5ICsyMDYsOSBAQCB2b2lkIEZFTW9ycGhvbG9neTo6cGxh
dGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZpbHRl
ciogZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7Ci0gICAgaW50IHJhZGl1c1ggPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZsb29yZihmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpKTsK
LSAgICBpbnQgcmFkaXVzWSA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlci0+YXBwbHlW
ZXJ0aWNhbFNjYWxlKG1fcmFkaXVzWSkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZp
bHRlcigpOworICAgIGludCByYWRpdXNYID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYoZmlsdGVy
LmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpKTsKKyAgICBpbnQgcmFkaXVzWSA9IHN0
YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlci5hcHBseVZlcnRpY2FsU2NhbGUobV9yYWRpdXNZ
KSkpOwogCiAgICAgSW50UmVjdCBlZmZlY3REcmF3aW5nUmVjdCA9IHJlcXVlc3RlZFJlZ2lvbk9m
SW5wdXRJbWFnZURhdGEoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpOwogICAgIFJlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3JjUGl4ZWxBcnJheSA9IGluLT5hc1ByZW11bHRpcGxpZWRJbWFnZShl
ZmZlY3REcmF3aW5nUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCmluZGV4IDQ1YzRjYzg2NzQ0OWYwMmZlYTI4YjJm
MTZiODlkN2EwM2E0Nzc0OTIuLjlkYjJhMGVhNzA4NzY2YjUxNmRjNTNjOTA5NjU1MTczYzkwMzhm
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwCkBAIC02Nyw4ICs2Nyw4IEBAIHZvaWQgRkVPZmZzZXQ6OnNldER5KGZs
b2F0IGR5KQogdm9pZCBGRU9mZnNldDo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewog
ICAgIEZsb2F0UmVjdCBwYWludFJlY3QgPSBpbnB1dEVmZmVjdCgwKS0+YWJzb2x1dGVQYWludFJl
Y3QoKTsKLSAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIHBhaW50UmVj
dC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRlci0+YXBwbHlW
ZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigp
OworICAgIHBhaW50UmVjdC5tb3ZlKGZpbHRlci5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwg
ZmlsdGVyLmFwcGx5VmVydGljYWxTY2FsZShtX2R5KSk7CiAgICAgaWYgKGNsaXBzVG9Cb3VuZHMo
KSkKICAgICAgICAgcGFpbnRSZWN0LmludGVyc2VjdChtYXhFZmZlY3RSZWN0KCkpOwogICAgIGVs
c2UKQEAgLTg3LDggKzg3LDggQEAgdm9pZCBGRU9mZnNldDo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKICAgICBzZXRJc0FscGhhSW1hZ2UoaW4tPmlzQWxwaGFJbWFnZSgpKTsKIAogICAgIEZsb2F0
UmVjdCBkcmF3aW5nUmVnaW9uID0gZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1
dGVQYWludFJlY3QoKSk7Ci0gICAgRmlsdGVyKiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKLSAg
ICBkcmF3aW5nUmVnaW9uLm1vdmUoZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwg
ZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUobV9keSkpOworICAgIEZpbHRlciYgZmlsdGVyID0g
dGhpcy0+ZmlsdGVyKCk7CisgICAgZHJhd2luZ1JlZ2lvbi5tb3ZlKGZpbHRlci5hcHBseUhvcml6
b250YWxTY2FsZShtX2R4KSwgZmlsdGVyLmFwcGx5VmVydGljYWxTY2FsZShtX2R5KSk7CiAgICAg
cmVzdWx0SW1hZ2UtPmNvbnRleHQoKS0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVy
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb24pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXgg
YTMyMDU5YzliNjM3NDk5MzlhOWYxMmVlMTc5NWZiMzYxNTE3OTFhYS4uYjUzZWNhOWI2N2EzNGZh
NjMzZTRjMmQzYTJkZTgzMmIyYWY3MjA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtNjAsMTMgKzYwLDEzIEBAIHZv
aWQgRkVUaWxlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIEZsb2F0UG9pbnQgaW5NYXhF
ZmZlY3RMb2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9uKCk7CiAgICAgRmxvYXRQb2ludCBtYXhF
ZmZlY3RMb2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5sb2NhdGlvbigpOwogICAgIGlmIChpbi0+
ZmlsdGVyRWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dCkgewotICAg
ICAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgICAgICB0aWxlUmVjdCA9
IGZpbHRlci0+ZmlsdGVyUmVnaW9uKCk7Ci0gICAgICAgIHRpbGVSZWN0LnNjYWxlKGZpbHRlci0+
ZmlsdGVyUmVzb2x1dGlvbigpLndpZHRoKCksIGZpbHRlci0+ZmlsdGVyUmVzb2x1dGlvbigpLmhl
aWdodCgpKTsKKyAgICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKKyAgICAg
ICAgdGlsZVJlY3QgPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CisgICAgICAgIHRpbGVSZWN0LnNj
YWxlKGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLmZpbHRlclJlc29s
dXRpb24oKS5oZWlnaHQoKSk7CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiB0aWxlSW1hZ2U7Ci0gICAgaWYgKCFTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFn
ZUJ1ZmZlckZvclBhdHRlcm4odGlsZVJlY3QsIHRpbGVSZWN0LCB0aWxlSW1hZ2UsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGZpbHRlcigpLT5yZW5kZXJpbmdNb2RlKCkpKQorICAgIGlmICghU1ZHUmVu
ZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXJGb3JQYXR0ZXJuKHRpbGVSZWN0LCB0aWxl
UmVjdCwgdGlsZUltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBmaWx0ZXIoKS5yZW5kZXJpbmdN
b2RlKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHQqIHRpbGVJbWFn
ZUNvbnRleHQgPSB0aWxlSW1hZ2UtPmNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCBh
NWU4YjM0OGEzZTYzNjU1MmQ3MmViOGNiNzBmODJiZGQ0ZTRhZGViLi45MTdjOTZhMjE3ZmYxOGZj
YTU0NjJjMzE3MTZkOTZlYmIzZTYyNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC0zNDMsNyAr
MzQzLDcgQEAgaW5saW5lIHZvaWQgRkVUdXJidWxlbmNlOjpmaWxsUmVnaW9uKFVpbnQ4Q2xhbXBl
ZEFycmF5KiBwaXhlbEFycmF5LCBQYWludGluZ0RhdGEKICAgICAgICAgZm9yIChpbnQgeCA9IDA7
IHggPCBmaWx0ZXJSZWdpb24ud2lkdGgoKTsgKyt4KSB7CiAgICAgICAgICAgICBwb2ludC5zZXRY
KHBvaW50LngoKSArIDEpOwogICAgICAgICAgICAgZm9yIChjaGFubmVsID0gMDsgY2hhbm5lbCA8
IDQ7ICsrY2hhbm5lbCwgKytpbmRleE9mUGl4ZWxDaGFubmVsKQotICAgICAgICAgICAgICAgIHBp
eGVsQXJyYXktPnNldChpbmRleE9mUGl4ZWxDaGFubmVsLCBjYWxjdWxhdGVUdXJidWxlbmNlVmFs
dWVGb3JQb2ludChjaGFubmVsLCBwYWludGluZ0RhdGEsIHN0aXRjaERhdGEsIGZpbHRlcigpLT5t
YXBBYnNvbHV0ZVBvaW50VG9Mb2NhbFBvaW50KHBvaW50KSkpOworICAgICAgICAgICAgICAgIHBp
eGVsQXJyYXktPnNldChpbmRleE9mUGl4ZWxDaGFubmVsLCBjYWxjdWxhdGVUdXJidWxlbmNlVmFs
dWVGb3JQb2ludChjaGFubmVsLCBwYWludGluZ0RhdGEsIHN0aXRjaERhdGEsIGZpbHRlcigpLm1h
cEFic29sdXRlUG9pbnRUb0xvY2FsUG9pbnQocG9pbnQpKSk7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIu
aAppbmRleCAwNzRiMzBjMmEzM2E3NWU5NTU0MjYxZTQyNTY5MTJiZDE2M2RhMGI1Li5hYWJhNmY3
NzhiNTI0NDk4NmFhNWU5MDRiMzBmMTYwYWE4Njc0ZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTQ2LDggKzQ2LDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzU1ZHRmlsdGVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgZmxvYXQgYXBwbHlIb3Jpem9udGFsU2NhbGUoZmxvYXQg
dmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9uLndpZHRoKCk7
IH0KLSAgICB2aXJ0dWFsIGZsb2F0IGFwcGx5VmVydGljYWxTY2FsZShmbG9hdCB2YWx1ZSkgY29u
c3QgeyByZXR1cm4gdmFsdWUgKiBtX2ZpbHRlclJlc29sdXRpb24uaGVpZ2h0KCk7IH0KKyAgICB2
aXJ0dWFsIGZsb2F0IGFwcGx5SG9yaXpvbnRhbFNjYWxlKGNvbnN0IGZsb2F0IHZhbHVlKSBjb25z
dCB7IHJldHVybiB2YWx1ZSAqIG1fZmlsdGVyUmVzb2x1dGlvbi53aWR0aCgpOyB9CisgICAgdmly
dHVhbCBmbG9hdCBhcHBseVZlcnRpY2FsU2NhbGUoY29uc3QgZmxvYXQgdmFsdWUpIGNvbnN0IHsg
cmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9uLmhlaWdodCgpOyB9CiAgICAgCiAgICAg
dmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCmluZGV4
IGY0MzU4Mjc2ZmUyYThkYTM4YTkxMTBlMmQyMWE2MGQ3NWRlYzliZDguLmQyMDk1ZjVhMTRiMTM1
NjUzMTFiMjI3OWYxNGFjYjFkN2M2ZTdlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaApAQCAtMTQ5LDcgKzE0
OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgZWZmZWN0Qm91bmRhcmllcygpIGNvbnN0IHsg
cmV0dXJuIG1fZWZmZWN0Qm91bmRhcmllczsgfQogICAgIHZvaWQgc2V0RWZmZWN0Qm91bmRhcmll
cyhjb25zdCBGbG9hdFJlY3QmIGVmZmVjdEJvdW5kYXJpZXMpIHsgbV9lZmZlY3RCb3VuZGFyaWVz
ID0gZWZmZWN0Qm91bmRhcmllczsgfQogCi0gICAgRmlsdGVyKiBmaWx0ZXIoKSB7IHJldHVybiBt
X2ZpbHRlcjsgfQorICAgIEZpbHRlciYgZmlsdGVyKCkgeyBBU1NFUlQobV9maWx0ZXIpOyByZXR1
cm4gKm1fZmlsdGVyOyB9CiAKICAgICBib29sIGNsaXBzVG9Cb3VuZHMoKSBjb25zdCB7IHJldHVy
biBtX2NsaXBzVG9Cb3VuZHM7IH0KICAgICB2b2lkIHNldENsaXBzVG9Cb3VuZHMoYm9vbCB2YWx1
ZSkgeyBtX2NsaXBzVG9Cb3VuZHMgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCA4NmVj
NjllZjc0Nzg4NWRiNDk2YzQ2Nzk4MzU5YmJjMWFmZmE0YzNlLi44ZDM0OWY0NWI4MTViZjEyYTQx
YThkNzRjYzhjNjU0MWI4NDM2NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtNDQsMTcgKzQ0LDE3
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQogCiB2b2lk
IFNvdXJjZUFscGhhOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7Ci0gICAgRmlsdGVy
KiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKLSAgICBGbG9hdFJlY3QgcGFpbnRSZWN0ID0gZmls
dGVyLT5zb3VyY2VJbWFnZVJlY3QoKTsKLSAgICBwYWludFJlY3Quc2NhbGUoZmlsdGVyLT5maWx0
ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLT5maWx0ZXJSZXNvbHV0aW9uKCkuaGVpZ2h0
KCkpOworICAgIEZpbHRlciYgZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7CisgICAgRmxvYXRSZWN0
IHBhaW50UmVjdCA9IGZpbHRlci5zb3VyY2VJbWFnZVJlY3QoKTsKKyAgICBwYWludFJlY3Quc2Nh
bGUoZmlsdGVyLmZpbHRlclJlc29sdXRpb24oKS53aWR0aCgpLCBmaWx0ZXIuZmlsdGVyUmVzb2x1
dGlvbigpLmhlaWdodCgpKTsKICAgICBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRS
ZWN0KHBhaW50UmVjdCkpOwogfQogCiB2b2lkIFNvdXJjZUFscGhhOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUoKQogewogICAgIEltYWdlQnVmZmVyKiByZXN1bHRJbWFnZSA9IGNyZWF0ZUltYWdlQnVm
ZmVyUmVzdWx0KCk7Ci0gICAgRmlsdGVyKiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKLSAgICBp
ZiAoIXJlc3VsdEltYWdlIHx8ICFmaWx0ZXItPnNvdXJjZUltYWdlKCkpCisgICAgRmlsdGVyJiBm
aWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKKyAgICBpZiAoIXJlc3VsdEltYWdlIHx8ICFmaWx0ZXIu
c291cmNlSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0SXNBbHBoYUltYWdlKHRy
dWUpOwpAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFNvdXJjZUFscGhhOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUoKQogICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoRmxvYXRQb2ludCgpLCBhYnNvbHV0ZVBh
aW50UmVjdCgpLnNpemUoKSk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJDb250ZXh0ID0g
cmVzdWx0SW1hZ2UtPmNvbnRleHQoKTsKICAgICBmaWx0ZXJDb250ZXh0LT5maWxsUmVjdChpbWFn
ZVJlY3QsIENvbG9yOjpibGFjaywgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGZpbHRlci0+c291cmNlSW1hZ2UoKSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgSW50UG9pbnQoKSwgQ29tcG9zaXRlRGVzdGluYXRpb25Jbik7CisgICAgZmlsdGVy
Q29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGZpbHRlci5zb3VyY2VJbWFnZSgpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBJbnRQb2ludCgpLCBDb21wb3NpdGVEZXN0aW5hdGlvbkluKTsKIH0KIAogdm9p
ZCBTb3VyY2VBbHBoYTo6ZHVtcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA3MmZiNWQzM2I5
MGE0ZDg1Mjk1MzgwYzZlNmNjYTVhZDY2YmIwYzRlLi5kMDAxOTY5YTBmYzlkODA2YjgwMzQyYTY0
ZjI2MjE0ZDc4ZDVmYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTQzLDIwICs0MywyMCBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIFNvdXJjZUdyYXBoaWM6OmVmZmVjdE5hbWUoKQogCiB2b2lk
IFNvdXJjZUdyYXBoaWM6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBGaWx0
ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIEZsb2F0UmVjdCBwYWludFJlY3QgPSBm
aWx0ZXItPnNvdXJjZUltYWdlUmVjdCgpOwotICAgIHBhaW50UmVjdC5zY2FsZShmaWx0ZXItPmZp
bHRlclJlc29sdXRpb24oKS53aWR0aCgpLCBmaWx0ZXItPmZpbHRlclJlc29sdXRpb24oKS5oZWln
aHQoKSk7CisgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKKyAgICBGbG9hdFJl
Y3QgcGFpbnRSZWN0ID0gZmlsdGVyLnNvdXJjZUltYWdlUmVjdCgpOworICAgIHBhaW50UmVjdC5z
Y2FsZShmaWx0ZXIuZmlsdGVyUmVzb2x1dGlvbigpLndpZHRoKCksIGZpbHRlci5maWx0ZXJSZXNv
bHV0aW9uKCkuaGVpZ2h0KCkpOwogICAgIHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0lu
dFJlY3QocGFpbnRSZWN0KSk7CiB9CiAKIHZvaWQgU291cmNlR3JhcGhpYzo6cGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkKIHsKICAgICBJbWFnZUJ1ZmZlciogcmVzdWx0SW1hZ2UgPSBjcmVhdGVJbWFn
ZUJ1ZmZlclJlc3VsdCgpOwotICAgIEZpbHRlciogZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7Ci0g
ICAgaWYgKCFyZXN1bHRJbWFnZSB8fCAhZmlsdGVyLT5zb3VyY2VJbWFnZSgpKQorICAgIEZpbHRl
ciYgZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7CisgICAgaWYgKCFyZXN1bHRJbWFnZSB8fCAhZmls
dGVyLnNvdXJjZUltYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc3VsdEltYWdlLT5j
b250ZXh0KCktPmRyYXdJbWFnZUJ1ZmZlcihmaWx0ZXItPnNvdXJjZUltYWdlKCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIEludFBvaW50KCkpOworICAgIHJlc3VsdEltYWdlLT5jb250ZXh0KCktPmRy
YXdJbWFnZUJ1ZmZlcihmaWx0ZXIuc291cmNlSW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
SW50UG9pbnQoKSk7CiB9CiAKIHZvaWQgU291cmNlR3JhcGhpYzo6ZHVtcCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmUuY3BwCmluZGV4IDAzM2ZmOTEwNzllZjdhM2VhZWFjNTJlOTIxMzJl
ODA3MWFhZTAwMDUuLmUxMWE0Y2I0NTc0NzgwZjIyY2Y4YzljODU3MzBmNmY3MDk0ZTgzYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXJQcmltaXRpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zCiAKIEZsb2F0UmVjdCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZTo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKEZpbHRlckVmZmVjdCog
ZWZmZWN0KQogewotICAgIFNWR0ZpbHRlciogZmlsdGVyID0gdG9TVkdGaWx0ZXIoZWZmZWN0LT5m
aWx0ZXIoKSk7CisgICAgU1ZHRmlsdGVyKiBmaWx0ZXIgPSB0b1NWR0ZpbHRlcigmKGVmZmVjdC0+
ZmlsdGVyKCkpKTsKICAgICBBU1NFUlQoZmlsdGVyKTsKIAogICAgIC8vIEZFVGlsZSwgRkVUdXJi
dWxlbmNlLCBGRUZsb29kIGRvbid0IGhhdmUgaW5wdXQgZWZmZWN0cywgdGFrZSB0aGUgZmlsdGVy
IHJlZ2lvbiBhcyB1bml0ZSByZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAppbmRleCAxNDlkOTNiMjM0NTUyN2E4ZGFjMmI0ODA1
MmFhNjJmYzZjMzY1Mjg4Li4yZDUzZWY0ZGYxMDU0NjA5YjliNTUxNmI4Mjk2NmFhOGRkNjdmZjlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUlt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUlt
YWdlLmNwcApAQCAtNjcsNyArNjcsNyBAQCBQYXNzUmVmUHRyPEZFSW1hZ2U+IEZFSW1hZ2U6OmNy
ZWF0ZVdpdGhJUklSZWZlcmVuY2UoRmlsdGVyKiBmaWx0ZXIsIERvY3VtZW50JiBkbwogCiB2b2lk
IEZFSW1hZ2U6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBTVkdGaWx0ZXIq
IHN2Z0ZpbHRlciA9IHRvU1ZHRmlsdGVyKGZpbHRlcigpKTsKKyAgICBTVkdGaWx0ZXIqIHN2Z0Zp
bHRlciA9IHRvU1ZHRmlsdGVyKCYoZmlsdGVyKCkpKTsKIAogICAgIEZsb2F0UmVjdCBwYWludFJl
Y3QgPSBzdmdGaWx0ZXItPmFic29sdXRlVHJhbnNmb3JtKCkubWFwUmVjdChmaWx0ZXJQcmltaXRp
dmVTdWJyZWdpb24oKSk7CiAgICAgRmxvYXRSZWN0IHNyY1JlY3Q7CkBAIC0xMDQsNyArMTA0LDcg
QEAgdm9pZCBGRUltYWdlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIGlmICghcmVzdWx0
SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNWR0ZpbHRlciogc3ZnRmlsdGVyID0gdG9T
VkdGaWx0ZXIoZmlsdGVyKCkpOworICAgIFNWR0ZpbHRlciogc3ZnRmlsdGVyID0gdG9TVkdGaWx0
ZXIoJihmaWx0ZXIoKSkpOwogICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IHN2Z0ZpbHRlci0+YWJz
b2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpKTsKIAog
ICAgIEZsb2F0UmVjdCBzcmNSZWN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227902</attachid>
            <date>2014-03-26 18:11:43 -0700</date>
            <delta_ts>2014-03-26 21:14:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130779-20140326181122.patch</filename>
            <type>text/plain</type>
            <size>22183</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg0MzUxYzFmODQxNmVi
NDE1MDVjMmMwYjgyODQ0Nzg0NjU2MTdkMS4uNDZiYTUwYjgwNDZkMGU0N2I4ZWFkN2MzMjE5NWM1
OTMzZjdhMmQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE0LTAzLTI2ICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBGRUdh
dXNzaWFuQmx1cjogdW5pZnkgYW5kIGNvbnN0LWlmeSBjYWxjdWxhdGVLZXJuZWxTaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NzkKKworICAg
ICAgICBTb21lIG1ldGhvZHMgY2FuIGJlbmVmaXQgb2YgdXNpbmcgY29uc3QgcmVmcyBhcyBhbHNv
IG1ha2Ugc2Vuc2UgdG8KKyAgICAgICAgdW5pZnkgdGhlIGludGVyZmFjZSAoaS5lLiBwYXJhbWV0
ZXJzKSBpbiBjYWxjdWxhdGVLZXJuZWxTaXplL1Vuc2NhbGVkLgorCisgICAgICAgIEZpbHRlckVm
ZmVjdDo6ZmlsdGVyKCkgd2lsbCBub3cgcmV0dXJuIGEgcmVmZXJlbmNlLCB3aGljaCBoZWxwcyBz
aW5jZQorICAgICAgICBpdHMgZGVzY2VuZGFudHMgd2VyZSBhY2Nlc3NpbmcgbWV0aG9kcyBpbnRv
IHRoZSBwb2ludGVyIHdpdGhvdXQgdGVzdGluZworICAgICAgICBmb3IgaXQuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBj
aGFuZ2VzIG9uIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNlbWVu
dE1hcDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFk
b3c6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJv
cFNoYWRvdzo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1
c3NpYW5CbHVyOjpjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFT2Zmc2V0OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRU9mZnNldDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVRp
bGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUdXJidWxlbmNl
OjpmaWxsUmVnaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyOjphcHBseUhvcml6b250YWxTY2FsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OmFwcGx5VmVydGljYWxTY2FsZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6ZmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBo
YTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhp
Yzo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
R3JhcGhpYzo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRp
dmVTdWJyZWdpb24pOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToK
KwogMjAxNC0wMy0yNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TIFdlYktpdDJdIEZsdXNoIGFsbCBzdXJmYWNlcyBhZnRlciBwYWludGluZyBp
bnRvIGFsbCBvZiB0aGVtLCBpbnN0ZWFkIG9mIGFmdGVyIHBhaW50aW5nIGludG8gZWFjaCBvbmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggZGZiOTE5NGRhZTQwMWFlODRiNjcwMDlk
ZjMzNjBjNDQ4NGI2NmUyZC4uNmZjZTM3M2ExMDkxMWU0NGJkN2FmZTcwMTZmZmEwYmUxZmUzNzc5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTEyMywxMCArMTIzLDEwIEBAIHZv
aWQgRkVEaXNwbGFjZW1lbnRNYXA6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAKICAgICBBU1NF
UlQoc3JjUGl4ZWxBcnJheUEtPmxlbmd0aCgpID09IHNyY1BpeGVsQXJyYXlCLT5sZW5ndGgoKSk7
CiAKLSAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOworICAgIEZpbHRlciYgZmls
dGVyID0gdGhpcy0+ZmlsdGVyKCk7CiAgICAgSW50U2l6ZSBwYWludFNpemUgPSBhYnNvbHV0ZVBh
aW50UmVjdCgpLnNpemUoKTsKLSAgICBmbG9hdCBzY2FsZVggPSBmaWx0ZXItPmFwcGx5SG9yaXpv
bnRhbFNjYWxlKG1fc2NhbGUpOwotICAgIGZsb2F0IHNjYWxlWSA9IGZpbHRlci0+YXBwbHlWZXJ0
aWNhbFNjYWxlKG1fc2NhbGUpOworICAgIGZsb2F0IHNjYWxlWCA9IGZpbHRlci5hcHBseUhvcml6
b250YWxTY2FsZShtX3NjYWxlKTsKKyAgICBmbG9hdCBzY2FsZVkgPSBmaWx0ZXIuYXBwbHlWZXJ0
aWNhbFNjYWxlKG1fc2NhbGUpOwogICAgIGZsb2F0IHNjYWxlRm9yQ29sb3JYID0gc2NhbGVYIC8g
MjU1LjA7CiAgICAgZmxvYXQgc2NhbGVGb3JDb2xvclkgPSBzY2FsZVkgLyAyNTUuMDsKICAgICBm
bG9hdCBzY2FsZWRPZmZzZXRYID0gMC41IC0gc2NhbGVYICogMC41OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3Bw
CmluZGV4IGVlYzczNDVhNTRiYzg0Y2VmNzhjODg5ZTI1ZWMyMmQ2NjYzYWZjMzkuLjEwYTg5OTYx
ZWQ1NmZjNTRlMDdhYjQyMGY1YzczMWY1MjM4NGY1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAg
LTUxLDE1ICs1MSwxNCBAQCBQYXNzUmVmUHRyPEZFRHJvcFNoYWRvdz4gRkVEcm9wU2hhZG93Ojpj
cmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IHN0ZFgsIGZsb2F0CiAKIHZvaWQgRkVEcm9wU2hh
ZG93OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7Ci0gICAgRmlsdGVyKiBmaWx0ZXIg
PSB0aGlzLT5maWx0ZXIoKTsKLSAgICBBU1NFUlQoZmlsdGVyKTsKKyAgICBGaWx0ZXImIGZpbHRl
ciA9IHRoaXMtPmZpbHRlcigpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0g
aW5wdXRFZmZlY3QoMCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgRmxvYXRSZWN0IGFic29s
dXRlT2Zmc2V0UGFpbnRSZWN0KGFic29sdXRlUGFpbnRSZWN0KTsKLSAgICBhYnNvbHV0ZU9mZnNl
dFBhaW50UmVjdC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRl
ci0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBhYnNvbHV0ZU9mZnNldFBhaW50UmVj
dC5tb3ZlKGZpbHRlci5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwgZmlsdGVyLmFwcGx5VmVy
dGljYWxTY2FsZShtX2R5KSk7CiAgICAgYWJzb2x1dGVQYWludFJlY3QudW5pdGUoYWJzb2x1dGVP
ZmZzZXRQYWludFJlY3QpOwogCi0gICAgSW50U2l6ZSBrZXJuZWxTaXplID0gRkVHYXVzc2lhbkJs
dXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50
U2l6ZSBrZXJuZWxTaXplID0gRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZUtlcm5lbFNpemUoZmls
dGVyLCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICAvLyBXZSB0YWtlIHRoZSBo
YWxmIGtlcm5lbCBzaXplIGFuZCBtdWx0aXBseSBpdCB3aXRoIHRocmVlLCBiZWNhdXNlIHdlIHJ1
biBib3ggYmx1ciB0aHJlZSB0aW1lcy4KICAgICBhYnNvbHV0ZVBhaW50UmVjdC5pbmZsYXRlWCgz
ICoga2VybmVsU2l6ZS53aWR0aCgpICogMC41Zik7CkBAIC04MSw5ICs4MCw5IEBAIHZvaWQgRkVE
cm9wU2hhZG93OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIGlmICghcmVzdWx0SW1hZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIEZpbHRlciogZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7
Ci0gICAgRmxvYXRTaXplIGJsdXJSYWRpdXMoZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZSht
X3N0ZFgpLCBmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShtX3N0ZFkpKTsKLSAgICBGbG9hdFNp
emUgb2Zmc2V0KGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRlci0+YXBw
bHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRl
cigpOworICAgIEZsb2F0U2l6ZSBibHVyUmFkaXVzKGZpbHRlci5hcHBseUhvcml6b250YWxTY2Fs
ZShtX3N0ZFgpLCBmaWx0ZXIuYXBwbHlWZXJ0aWNhbFNjYWxlKG1fc3RkWSkpOworICAgIEZsb2F0
U2l6ZSBvZmZzZXQoZmlsdGVyLmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fZHgpLCBmaWx0ZXIuYXBw
bHlWZXJ0aWNhbFNjYWxlKG1fZHkpKTsKIAogICAgIEZsb2F0UmVjdCBkcmF3aW5nUmVnaW9uID0g
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSk7CiAgICAg
RmxvYXRSZWN0IGRyYXdpbmdSZWdpb25XaXRoT2Zmc2V0KGRyYXdpbmdSZWdpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmNwcAppbmRleCAxNTBhMzhmMmVmYmIyOGRjYjcxOTk1YjY2MTQ0YTM0NDhlYTRh
OGVmLi4zMzY0YzA3ZmE0MGRiOTBlZjYzYTgyYmY2ODY4MWE5ZjVmMWE4YTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmNwcApAQCAtMzg1LDM3ICszODUsMzUgQEAgaW5saW5lIHZvaWQgRkVHYXVzc2lh
bkJsdXI6OnBsYXRmb3JtQXBwbHkoVWludDhDbGFtcGVkQXJyYXkqIHNyY1BpeGVsQXJyYXksIFVp
bnQKICAgICBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhzcmNQaXhlbEFycmF5LCB0bXBQaXhlbEFycmF5
LCBrZXJuZWxTaXplWCwga2VybmVsU2l6ZVksIHBhaW50U2l6ZSk7CiB9CiAKLUludFNpemUgRkVH
YXVzc2lhbkJsdXI6OmNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShGbG9hdFBvaW50IHN0ZCkK
K0ludFNpemUgRkVHYXVzc2lhbkJsdXI6OmNhbGN1bGF0ZVVuc2NhbGVkS2VybmVsU2l6ZShjb25z
dCBGbG9hdFBvaW50JiBzdGREZXZpYXRpb24pCiB7Ci0gICAgQVNTRVJUKHN0ZC54KCkgPj0gMCAm
JiBzdGQueSgpID49IDApOwotICAgIEludFNpemUga2VybmVsU2l6ZSgwLCAwKTsKKyAgICBBU1NF
UlQoc3RkRGV2aWF0aW9uLngoKSA+PSAwICYmIHN0ZERldmlhdGlvbi55KCkgPj0gMCk7CisgICAg
SW50U2l6ZSBrZXJuZWxTaXplOwogCiAgICAgLy8gTGltaXQgdGhlIGtlcm5lbCBzaXplIHRvIDUw
MC4gQSBiaWdnZXIgcmFkaXVzIHdvbid0IG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBmb3IgdGhlIHJl
c3VsdCBpbWFnZSBidXQKICAgICAvLyBpbmZsYXRlcyB0aGUgYWJzb2x1dGUgcGFpbnQgcmVjdCB0
byBtdWNoLiBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBGaXJlZm94JyBiZWhhdmlvci4KLSAgICBp
ZiAoc3RkLngoKSkgewotICAgICAgICBpbnQgc2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3JmKHN0ZC54KCkgKiBnYXVzc2lhbktlcm5lbEZhY3Rv
cigpICsgMC41ZikpKTsKKyAgICBpZiAoc3RkRGV2aWF0aW9uLngoKSkgeworICAgICAgICBpbnQg
c2l6ZSA9IHN0ZDo6bWF4PHVuc2lnbmVkPigyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3Jm
KHN0ZERldmlhdGlvbi54KCkgKiBnYXVzc2lhbktlcm5lbEZhY3RvcigpICsgMC41ZikpKTsKICAg
ICAgICAga2VybmVsU2l6ZS5zZXRXaWR0aChzdGQ6Om1pbihzaXplLCBnTWF4S2VybmVsU2l6ZSkp
OwogICAgIH0KIAotICAgIGlmIChzdGQueSgpKSB7Ci0gICAgICAgIGludCBzaXplID0gc3RkOjpt
YXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcmYoc3RkLnkoKSAqIGdh
dXNzaWFuS2VybmVsRmFjdG9yKCkgKyAwLjVmKSkpOworICAgIGlmIChzdGREZXZpYXRpb24ueSgp
KSB7CisgICAgICAgIGludCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihmbG9vcmYoc3RkRGV2aWF0aW9uLnkoKSAqIGdhdXNzaWFuS2VybmVsRmFjdG9y
KCkgKyAwLjVmKSkpOwogICAgICAgICBrZXJuZWxTaXplLnNldEhlaWdodChzdGQ6Om1pbihzaXpl
LCBnTWF4S2VybmVsU2l6ZSkpOwogICAgIH0KIAogICAgIHJldHVybiBrZXJuZWxTaXplOwogfQog
Ci1JbnRTaXplIEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxhdGVLZXJuZWxTaXplKEZpbHRlciogZmls
dGVyLCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZKQorSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2Fs
Y3VsYXRlS2VybmVsU2l6ZShjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmxvYXRQb2ludCYg
c3RkRGV2aWF0aW9uKQogewotICAgIHN0ZFggPSBmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxl
KHN0ZFgpOwotICAgIHN0ZFkgPSBmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShzdGRZKTsKLQot
ICAgIHJldHVybiBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxvYXRQb2ludChzdGRYLCBz
dGRZKSk7CisgICAgRmxvYXRQb2ludCBzdGRGaWx0ZXJTY2FsZWQoZmlsdGVyLmFwcGx5SG9yaXpv
bnRhbFNjYWxlKHN0ZERldmlhdGlvbi54KCkpLCBmaWx0ZXIuYXBwbHlWZXJ0aWNhbFNjYWxlKHN0
ZERldmlhdGlvbi55KCkpKTsKKyAgICByZXR1cm4gY2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXpl
KHN0ZEZpbHRlclNjYWxlZCk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVL
ZXJuZWxTaXplKGZpbHRlcigpLCBtX3N0ZFgsIG1fc3RkWSk7CisgICAgSW50U2l6ZSBrZXJuZWxT
aXplID0gY2FsY3VsYXRlS2VybmVsU2l6ZShmaWx0ZXIoKSwgRmxvYXRQb2ludChtX3N0ZFgsIG1f
c3RkWSkpOwogCiAgICAgRmxvYXRSZWN0IGFic29sdXRlUGFpbnRSZWN0ID0gaW5wdXRFZmZlY3Qo
MCktPmFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgLy8gRWRnZSBtb2RlcyBvdGhlciB0aGFuICdu
b25lJyBkbyBub3QgaW5mbGF0ZSB0aGUgYWZmZWN0ZWQgcGFpbnQgcmVjdC4KQEAgLTQ1Miw3ICs0
NTAsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAg
IGlmICghbV9zdGRYICYmICFtX3N0ZFkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFNpemUg
a2VybmVsU2l6ZSA9IGNhbGN1bGF0ZUtlcm5lbFNpemUoZmlsdGVyKCksIG1fc3RkWCwgbV9zdGRZ
KTsKKyAgICBJbnRTaXplIGtlcm5lbFNpemUgPSBjYWxjdWxhdGVLZXJuZWxTaXplKGZpbHRlcigp
LCBGbG9hdFBvaW50KG1fc3RkWCwgbV9zdGRZKSk7CiAKICAgICBJbnRTaXplIHBhaW50U2l6ZSA9
IGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpOwogICAgIFJlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gdG1wSW1hZ2VEYXRhID0gVWludDhDbGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
cGFpbnRTaXplLndpZHRoKCkgKiBwYWludFNpemUuaGVpZ2h0KCkgKiA0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuaAppbmRleCBkZTY1ZDU3MDdjZTNhZDBiODRlZTQ2NjM2Yzk4YzgwMzQ5MTk4NTBkLi5mMjg5
NzMyNWNlNWNkYmEzNWNjMjJmNzJhMGJjZGYyMzZiYjlmZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
CkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7Ci0gICAgc3RhdGlj
IEludFNpemUgY2FsY3VsYXRlS2VybmVsU2l6ZShGaWx0ZXIqLCBmbG9hdCBzdGRYLCBmbG9hdCBz
dGRZKTsKLSAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoRmxv
YXRQb2ludCBzdGQpOworICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZUtlcm5lbFNpemUoY29u
c3QgRmlsdGVyJiwgY29uc3QgRmxvYXRQb2ludCYgc3RkRGV2aWF0aW9uKTsKKyAgICBzdGF0aWMg
SW50U2l6ZSBjYWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUoY29uc3QgRmxvYXRQb2ludCYgc3Rk
RGV2aWF0aW9uKTsKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cAppbmRleCA3MmZlYTM2YmJjMTFlMjY4ZjA5YTAwYmJiYjliYWI2Y2MwMmE0OGEyLi4zYTMwZGRi
YzlkZWVlMjMzMGFkYzIyZmEwOWZlYTUxM2QyZTQyOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBA
IC04Miw5ICs4Miw5IEBAIGZsb2F0IEZFTW9ycGhvbG9neTo6cmFkaXVzWSgpIGNvbnN0CiB2b2lk
IEZFTW9ycGhvbG9neTo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewogICAgIEZsb2F0
UmVjdCBwYWludFJlY3QgPSBpbnB1dEVmZmVjdCgwKS0+YWJzb2x1dGVQYWludFJlY3QoKTsKLSAg
ICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIHBhaW50UmVjdC5pbmZsYXRl
WChmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpOwotICAgIHBhaW50UmVj
dC5pbmZsYXRlWShmaWx0ZXItPmFwcGx5VmVydGljYWxTY2FsZShtX3JhZGl1c1kpKTsKKyAgICBG
aWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOworICAgIHBhaW50UmVjdC5pbmZsYXRlWChm
aWx0ZXIuYXBwbHlIb3Jpem9udGFsU2NhbGUobV9yYWRpdXNYKSk7CisgICAgcGFpbnRSZWN0Lmlu
ZmxhdGVZKGZpbHRlci5hcHBseVZlcnRpY2FsU2NhbGUobV9yYWRpdXNZKSk7CiAgICAgaWYgKGNs
aXBzVG9Cb3VuZHMoKSkKICAgICAgICAgcGFpbnRSZWN0LmludGVyc2VjdChtYXhFZmZlY3RSZWN0
KCkpOwogICAgIGVsc2UKQEAgLTIwNiw5ICsyMDYsOSBAQCB2b2lkIEZFTW9ycGhvbG9neTo6cGxh
dGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZpbHRl
ciogZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7Ci0gICAgaW50IHJhZGl1c1ggPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZsb29yZihmaWx0ZXItPmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpKTsK
LSAgICBpbnQgcmFkaXVzWSA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlci0+YXBwbHlW
ZXJ0aWNhbFNjYWxlKG1fcmFkaXVzWSkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZp
bHRlcigpOworICAgIGludCByYWRpdXNYID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYoZmlsdGVy
LmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpKTsKKyAgICBpbnQgcmFkaXVzWSA9IHN0
YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlci5hcHBseVZlcnRpY2FsU2NhbGUobV9yYWRpdXNZ
KSkpOwogCiAgICAgSW50UmVjdCBlZmZlY3REcmF3aW5nUmVjdCA9IHJlcXVlc3RlZFJlZ2lvbk9m
SW5wdXRJbWFnZURhdGEoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpOwogICAgIFJlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3JjUGl4ZWxBcnJheSA9IGluLT5hc1ByZW11bHRpcGxpZWRJbWFnZShl
ZmZlY3REcmF3aW5nUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCmluZGV4IDQ1YzRjYzg2NzQ0OWYwMmZlYTI4YjJm
MTZiODlkN2EwM2E0Nzc0OTIuLjlkYjJhMGVhNzA4NzY2YjUxNmRjNTNjOTA5NjU1MTczYzkwMzhm
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwCkBAIC02Nyw4ICs2Nyw4IEBAIHZvaWQgRkVPZmZzZXQ6OnNldER5KGZs
b2F0IGR5KQogdm9pZCBGRU9mZnNldDo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewog
ICAgIEZsb2F0UmVjdCBwYWludFJlY3QgPSBpbnB1dEVmZmVjdCgwKS0+YWJzb2x1dGVQYWludFJl
Y3QoKTsKLSAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIHBhaW50UmVj
dC5tb3ZlKGZpbHRlci0+YXBwbHlIb3Jpem9udGFsU2NhbGUobV9keCksIGZpbHRlci0+YXBwbHlW
ZXJ0aWNhbFNjYWxlKG1fZHkpKTsKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigp
OworICAgIHBhaW50UmVjdC5tb3ZlKGZpbHRlci5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwg
ZmlsdGVyLmFwcGx5VmVydGljYWxTY2FsZShtX2R5KSk7CiAgICAgaWYgKGNsaXBzVG9Cb3VuZHMo
KSkKICAgICAgICAgcGFpbnRSZWN0LmludGVyc2VjdChtYXhFZmZlY3RSZWN0KCkpOwogICAgIGVs
c2UKQEAgLTg3LDggKzg3LDggQEAgdm9pZCBGRU9mZnNldDo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKICAgICBzZXRJc0FscGhhSW1hZ2UoaW4tPmlzQWxwaGFJbWFnZSgpKTsKIAogICAgIEZsb2F0
UmVjdCBkcmF3aW5nUmVnaW9uID0gZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1
dGVQYWludFJlY3QoKSk7Ci0gICAgRmlsdGVyKiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKLSAg
ICBkcmF3aW5nUmVnaW9uLm1vdmUoZmlsdGVyLT5hcHBseUhvcml6b250YWxTY2FsZShtX2R4KSwg
ZmlsdGVyLT5hcHBseVZlcnRpY2FsU2NhbGUobV9keSkpOworICAgIEZpbHRlciYgZmlsdGVyID0g
dGhpcy0+ZmlsdGVyKCk7CisgICAgZHJhd2luZ1JlZ2lvbi5tb3ZlKGZpbHRlci5hcHBseUhvcml6
b250YWxTY2FsZShtX2R4KSwgZmlsdGVyLmFwcGx5VmVydGljYWxTY2FsZShtX2R5KSk7CiAgICAg
cmVzdWx0SW1hZ2UtPmNvbnRleHQoKS0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVy
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb24pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXgg
YTMyMDU5YzliNjM3NDk5MzlhOWYxMmVlMTc5NWZiMzYxNTE3OTFhYS4uYjUzZWNhOWI2N2EzNGZh
NjMzZTRjMmQzYTJkZTgzMmIyYWY3MjA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtNjAsMTMgKzYwLDEzIEBAIHZv
aWQgRkVUaWxlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgIEZsb2F0UG9pbnQgaW5NYXhF
ZmZlY3RMb2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9uKCk7CiAgICAgRmxvYXRQb2ludCBtYXhF
ZmZlY3RMb2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5sb2NhdGlvbigpOwogICAgIGlmIChpbi0+
ZmlsdGVyRWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dCkgewotICAg
ICAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgICAgICB0aWxlUmVjdCA9
IGZpbHRlci0+ZmlsdGVyUmVnaW9uKCk7Ci0gICAgICAgIHRpbGVSZWN0LnNjYWxlKGZpbHRlci0+
ZmlsdGVyUmVzb2x1dGlvbigpLndpZHRoKCksIGZpbHRlci0+ZmlsdGVyUmVzb2x1dGlvbigpLmhl
aWdodCgpKTsKKyAgICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKKyAgICAg
ICAgdGlsZVJlY3QgPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CisgICAgICAgIHRpbGVSZWN0LnNj
YWxlKGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLmZpbHRlclJlc29s
dXRpb24oKS5oZWlnaHQoKSk7CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiB0aWxlSW1hZ2U7Ci0gICAgaWYgKCFTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFn
ZUJ1ZmZlckZvclBhdHRlcm4odGlsZVJlY3QsIHRpbGVSZWN0LCB0aWxlSW1hZ2UsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGZpbHRlcigpLT5yZW5kZXJpbmdNb2RlKCkpKQorICAgIGlmICghU1ZHUmVu
ZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXJGb3JQYXR0ZXJuKHRpbGVSZWN0LCB0aWxl
UmVjdCwgdGlsZUltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBmaWx0ZXIoKS5yZW5kZXJpbmdN
b2RlKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHQqIHRpbGVJbWFn
ZUNvbnRleHQgPSB0aWxlSW1hZ2UtPmNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCBh
NWU4YjM0OGEzZTYzNjU1MmQ3MmViOGNiNzBmODJiZGQ0ZTRhZGViLi45MTdjOTZhMjE3ZmYxOGZj
YTU0NjJjMzE3MTZkOTZlYmIzZTYyNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC0zNDMsNyAr
MzQzLDcgQEAgaW5saW5lIHZvaWQgRkVUdXJidWxlbmNlOjpmaWxsUmVnaW9uKFVpbnQ4Q2xhbXBl
ZEFycmF5KiBwaXhlbEFycmF5LCBQYWludGluZ0RhdGEKICAgICAgICAgZm9yIChpbnQgeCA9IDA7
IHggPCBmaWx0ZXJSZWdpb24ud2lkdGgoKTsgKyt4KSB7CiAgICAgICAgICAgICBwb2ludC5zZXRY
KHBvaW50LngoKSArIDEpOwogICAgICAgICAgICAgZm9yIChjaGFubmVsID0gMDsgY2hhbm5lbCA8
IDQ7ICsrY2hhbm5lbCwgKytpbmRleE9mUGl4ZWxDaGFubmVsKQotICAgICAgICAgICAgICAgIHBp
eGVsQXJyYXktPnNldChpbmRleE9mUGl4ZWxDaGFubmVsLCBjYWxjdWxhdGVUdXJidWxlbmNlVmFs
dWVGb3JQb2ludChjaGFubmVsLCBwYWludGluZ0RhdGEsIHN0aXRjaERhdGEsIGZpbHRlcigpLT5t
YXBBYnNvbHV0ZVBvaW50VG9Mb2NhbFBvaW50KHBvaW50KSkpOworICAgICAgICAgICAgICAgIHBp
eGVsQXJyYXktPnNldChpbmRleE9mUGl4ZWxDaGFubmVsLCBjYWxjdWxhdGVUdXJidWxlbmNlVmFs
dWVGb3JQb2ludChjaGFubmVsLCBwYWludGluZ0RhdGEsIHN0aXRjaERhdGEsIGZpbHRlcigpLm1h
cEFic29sdXRlUG9pbnRUb0xvY2FsUG9pbnQocG9pbnQpKSk7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIu
aAppbmRleCAwNzRiMzBjMmEzM2E3NWU5NTU0MjYxZTQyNTY5MTJiZDE2M2RhMGI1Li41NjQzZGVm
NDA1NzkwMzgzMjFjMDc4M2UwYmY1YzEwNzU0OWI4NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzU1ZHRmlsdGVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAorICAgIC8vIFRPRE86IHZlcmlmeSBkZXNjZW5kYW50cyB0aGF0IG92ZXJsb2Fk
IHRoaXMgbWV0aG9kIGFuZCB0dXJuIHRoZW0gdG8gY29uc3QuCiAgICAgdmlydHVhbCBmbG9hdCBh
cHBseUhvcml6b250YWxTY2FsZShmbG9hdCB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFsdWUgKiBt
X2ZpbHRlclJlc29sdXRpb24ud2lkdGgoKTsgfQogICAgIHZpcnR1YWwgZmxvYXQgYXBwbHlWZXJ0
aWNhbFNjYWxlKGZsb2F0IHZhbHVlKSBjb25zdCB7IHJldHVybiB2YWx1ZSAqIG1fZmlsdGVyUmVz
b2x1dGlvbi5oZWlnaHQoKTsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggZjQzNTgyNzZmZTJh
OGRhMzhhOTExMGUyZDIxYTYwZDc1ZGVjOWJkOC4uZDIwOTVmNWExNGIxMzU2NTMxMWIyMjc5ZjE0
YWNiMWQ3YzZlN2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC0xNDksNyArMTQ5LDcgQEAgcHVibGlj
OgogICAgIEZsb2F0UmVjdCBlZmZlY3RCb3VuZGFyaWVzKCkgY29uc3QgeyByZXR1cm4gbV9lZmZl
Y3RCb3VuZGFyaWVzOyB9CiAgICAgdm9pZCBzZXRFZmZlY3RCb3VuZGFyaWVzKGNvbnN0IEZsb2F0
UmVjdCYgZWZmZWN0Qm91bmRhcmllcykgeyBtX2VmZmVjdEJvdW5kYXJpZXMgPSBlZmZlY3RCb3Vu
ZGFyaWVzOyB9CiAKLSAgICBGaWx0ZXIqIGZpbHRlcigpIHsgcmV0dXJuIG1fZmlsdGVyOyB9Cisg
ICAgRmlsdGVyJiBmaWx0ZXIoKSB7IEFTU0VSVChtX2ZpbHRlcik7IHJldHVybiAqbV9maWx0ZXI7
IH0KIAogICAgIGJvb2wgY2xpcHNUb0JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcHNUb0Jv
dW5kczsgfQogICAgIHZvaWQgc2V0Q2xpcHNUb0JvdW5kcyhib29sIHZhbHVlKSB7IG1fY2xpcHNU
b0JvdW5kcyA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDg2ZWM2OWVmNzQ3ODg1ZGI0
OTZjNDY3OTgzNTliYmMxYWZmYTRjM2UuLjhkMzQ5ZjQ1YjgxNWJmMTJhNDFhOGQ3NGNjOGM2NTQx
Yjg0MzY1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC00NCwxNyArNDQsMTcgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSgpCiAKIHZvaWQgU291cmNlQWxwaGE6
OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKLSAgICBGaWx0ZXIqIGZpbHRlciA9IHRo
aXMtPmZpbHRlcigpOwotICAgIEZsb2F0UmVjdCBwYWludFJlY3QgPSBmaWx0ZXItPnNvdXJjZUlt
YWdlUmVjdCgpOwotICAgIHBhaW50UmVjdC5zY2FsZShmaWx0ZXItPmZpbHRlclJlc29sdXRpb24o
KS53aWR0aCgpLCBmaWx0ZXItPmZpbHRlclJlc29sdXRpb24oKS5oZWlnaHQoKSk7CisgICAgRmls
dGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKKyAgICBGbG9hdFJlY3QgcGFpbnRSZWN0ID0g
ZmlsdGVyLnNvdXJjZUltYWdlUmVjdCgpOworICAgIHBhaW50UmVjdC5zY2FsZShmaWx0ZXIuZmls
dGVyUmVzb2x1dGlvbigpLndpZHRoKCksIGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkuaGVpZ2h0
KCkpOwogICAgIHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QocGFpbnRSZWN0
KSk7CiB9CiAKIHZvaWQgU291cmNlQWxwaGE6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiB7CiAg
ICAgSW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQoKTsK
LSAgICBGaWx0ZXIqIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwotICAgIGlmICghcmVzdWx0SW1h
Z2UgfHwgIWZpbHRlci0+c291cmNlSW1hZ2UoKSkKKyAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMt
PmZpbHRlcigpOworICAgIGlmICghcmVzdWx0SW1hZ2UgfHwgIWZpbHRlci5zb3VyY2VJbWFnZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBzZXRJc0FscGhhSW1hZ2UodHJ1ZSk7CkBAIC02Miw3
ICs2Miw3IEBAIHZvaWQgU291cmNlQWxwaGE6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAg
RmxvYXRSZWN0IGltYWdlUmVjdChGbG9hdFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0KCkuc2l6
ZSgpKTsKICAgICBHcmFwaGljc0NvbnRleHQqIGZpbHRlckNvbnRleHQgPSByZXN1bHRJbWFnZS0+
Y29udGV4dCgpOwogICAgIGZpbHRlckNvbnRleHQtPmZpbGxSZWN0KGltYWdlUmVjdCwgQ29sb3I6
OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoZmlsdGVyLT5zb3VyY2VJbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQ
b2ludCgpLCBDb21wb3NpdGVEZXN0aW5hdGlvbkluKTsKKyAgICBmaWx0ZXJDb250ZXh0LT5kcmF3
SW1hZ2VCdWZmZXIoZmlsdGVyLnNvdXJjZUltYWdlKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIElu
dFBvaW50KCksIENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOwogfQogCiB2b2lkIFNvdXJjZUFscGhh
OjpkdW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDcyZmI1ZDMzYjkwYTRkODUyOTUzODBj
NmU2Y2NhNWFkNjZiYjBjNGUuLmQwMDE5NjlhMGZjOWQ4MDZiODAzNDJhNjRmMjYyMTRkNzhkNWZh
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtNDMsMjAgKzQzLDIwIEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSgpCiAKIHZvaWQgU291cmNlR3JhcGhp
Yzo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewotICAgIEZpbHRlciogZmlsdGVyID0g
dGhpcy0+ZmlsdGVyKCk7Ci0gICAgRmxvYXRSZWN0IHBhaW50UmVjdCA9IGZpbHRlci0+c291cmNl
SW1hZ2VSZWN0KCk7Ci0gICAgcGFpbnRSZWN0LnNjYWxlKGZpbHRlci0+ZmlsdGVyUmVzb2x1dGlv
bigpLndpZHRoKCksIGZpbHRlci0+ZmlsdGVyUmVzb2x1dGlvbigpLmhlaWdodCgpKTsKKyAgICBG
aWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOworICAgIEZsb2F0UmVjdCBwYWludFJlY3Qg
PSBmaWx0ZXIuc291cmNlSW1hZ2VSZWN0KCk7CisgICAgcGFpbnRSZWN0LnNjYWxlKGZpbHRlci5m
aWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLmZpbHRlclJlc29sdXRpb24oKS5oZWln
aHQoKSk7CiAgICAgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChwYWludFJl
Y3QpKTsKIH0KIAogdm9pZCBTb3VyY2VHcmFwaGljOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQog
ewogICAgIEltYWdlQnVmZmVyKiByZXN1bHRJbWFnZSA9IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0
KCk7Ci0gICAgRmlsdGVyKiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKLSAgICBpZiAoIXJlc3Vs
dEltYWdlIHx8ICFmaWx0ZXItPnNvdXJjZUltYWdlKCkpCisgICAgRmlsdGVyJiBmaWx0ZXIgPSB0
aGlzLT5maWx0ZXIoKTsKKyAgICBpZiAoIXJlc3VsdEltYWdlIHx8ICFmaWx0ZXIuc291cmNlSW1h
Z2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzdWx0SW1hZ2UtPmNvbnRleHQoKS0+ZHJh
d0ltYWdlQnVmZmVyKGZpbHRlci0+c291cmNlSW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
SW50UG9pbnQoKSk7CisgICAgcmVzdWx0SW1hZ2UtPmNvbnRleHQoKS0+ZHJhd0ltYWdlQnVmZmVy
KGZpbHRlci5zb3VyY2VJbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsK
IH0KIAogdm9pZCBTb3VyY2VHcmFwaGljOjpkdW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1p
dGl2ZS5jcHAKaW5kZXggMDMzZmY5MTA3OWVmN2EzZWFlYWM1MmU5MjEzMmU4MDcxYWFlMDAwNS4u
ZTExYTRjYjQ1NzQ3ODBmMjJjZjhjOWM4NTczMGY2ZjcwOTRlODNiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlclByaW1pdGl2ZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNv
dXJjZUZpbHRlclByaW1pdGl2ZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnMKIAogRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpkZXRl
cm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oRmlsdGVyRWZmZWN0KiBlZmZlY3QpCiB7Ci0g
ICAgU1ZHRmlsdGVyKiBmaWx0ZXIgPSB0b1NWR0ZpbHRlcihlZmZlY3QtPmZpbHRlcigpKTsKKyAg
ICBTVkdGaWx0ZXIqIGZpbHRlciA9IHRvU1ZHRmlsdGVyKCYoZWZmZWN0LT5maWx0ZXIoKSkpOwog
ICAgIEFTU0VSVChmaWx0ZXIpOwogCiAgICAgLy8gRkVUaWxlLCBGRVR1cmJ1bGVuY2UsIEZFRmxv
b2QgZG9uJ3QgaGF2ZSBpbnB1dCBlZmZlY3RzLCB0YWtlIHRoZSBmaWx0ZXIgcmVnaW9uIGFzIHVu
aXRlIHJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGRUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZFSW1hZ2UuY3BwCmluZGV4IDE0OWQ5M2IyMzQ1NTI3YThkYWMyYjQ4MDUyYWE2MmZjNmMzNjUy
ODguLjJkNTNlZjRkZjEwNTQ2MDliOWI1NTE2YjgyOTY2YWE4ZGQ2N2ZmOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCkBAIC02
Nyw3ICs2Nyw3IEBAIFBhc3NSZWZQdHI8RkVJbWFnZT4gRkVJbWFnZTo6Y3JlYXRlV2l0aElSSVJl
ZmVyZW5jZShGaWx0ZXIqIGZpbHRlciwgRG9jdW1lbnQmIGRvCiAKIHZvaWQgRkVJbWFnZTo6ZGV0
ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKQogewotICAgIFNWR0ZpbHRlciogc3ZnRmlsdGVyID0g
dG9TVkdGaWx0ZXIoZmlsdGVyKCkpOworICAgIFNWR0ZpbHRlciogc3ZnRmlsdGVyID0gdG9TVkdG
aWx0ZXIoJihmaWx0ZXIoKSkpOwogCiAgICAgRmxvYXRSZWN0IHBhaW50UmVjdCA9IHN2Z0ZpbHRl
ci0+YWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigp
KTsKICAgICBGbG9hdFJlY3Qgc3JjUmVjdDsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIEZFSW1h
Z2U6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgaWYgKCFyZXN1bHRJbWFnZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU1ZHRmlsdGVyKiBzdmdGaWx0ZXIgPSB0b1NWR0ZpbHRlcihmaWx0
ZXIoKSk7CisgICAgU1ZHRmlsdGVyKiBzdmdGaWx0ZXIgPSB0b1NWR0ZpbHRlcigmKGZpbHRlcigp
KSk7CiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0gc3ZnRmlsdGVyLT5hYnNvbHV0ZVRyYW5zZm9y
bSgpLm1hcFJlY3QoZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkpOwogCiAgICAgRmxvYXRSZWN0
IHNyY1JlY3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>