<?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>132247</bug_id>
          
          <creation_ts>2014-04-28 03:19:14 -0700</creation_ts>
          <short_desc>[GStreamer] Use GstMetaVideo</short_desc>
          <delta_ts>2014-05-05 06:18:32 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Víctor M. Jáquez L.">vjaquez</reporter>
          <assigned_to name="Víctor M. Jáquez L.">vjaquez</assigned_to>
          <cc>agomez</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nicolas</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1004514</commentid>
    <comment_count>0</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-28 03:19:14 -0700</bug_when>
    <thetext>In WebKitVideoSink we announce the usage of GstMetaVideo, but we do not use it when handling the video frames. This might break some decoders and filters that rely on buffer&apos;s meta, rather that static caps structures.

This patch will enable the use of GstMetaVideo if it is available in the buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004520</commentid>
    <comment_count>1</comment_count>
      <attachid>230288</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-28 03:32:30 -0700</bug_when>
    <thetext>Created attachment 230288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004563</commentid>
    <comment_count>2</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2014-04-28 06:52:25 -0700</bug_when>
    <thetext>Well, this is not quite right. I would strongly recommend using the GstVideoFrame API, gst_video_frame_map()/gst_video_frame_unmap(). This way you don&apos;t have to worry how to map a buffer base on whether or not it has GstVideoMeta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004564</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-28 06:57:25 -0700</bug_when>
    <thetext>Oh yes that would be much better indeed. Care to update the patch Victor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004567</commentid>
    <comment_count>4</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-28 07:04:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Oh yes that would be much better indeed. Care to update the patch Victor?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005361</commentid>
    <comment_count>5</comment_count>
      <attachid>230476</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-30 06:48:45 -0700</bug_when>
    <thetext>Created attachment 230476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005367</commentid>
    <comment_count>6</comment_count>
      <attachid>230476</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-30 08:11:13 -0700</bug_when>
    <thetext>Comment on attachment 230476
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        Also, since either EFL and GTK+ ports use version of glib greater than
&gt; +        2.31, the guards for it were removed.

This is quite unrelated, I&apos;d rather do this in a separate patch, also cleaning the similar ones in MediaPlayerPrivateGStreamerBase.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005371</commentid>
    <comment_count>7</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2014-04-30 08:22:48 -0700</bug_when>
    <thetext>&gt; +    GstVideoInfo videoInfo;
&gt; +    if (!gst_video_info_from_caps(&amp;videoInfo, caps))
&gt; +        return;

You should ideally call gst_video_info_init(&amp;videoInfo), since info_from_caps() will only set what it finds in the caps, leaving random value in C, and non-default in C++. Will help if you run some memory checker. (found 2 times)

&gt; +    int stride = GST_VIDEO_FRAME_PLANE_STRIDE(&amp;m_videoFrame, 0);
Not sure if you guys uses these, but an assert that there is only 1 plane would be a nice to have. So if a dev wants to add planar formats support, it won&apos;t endup doing weird things silently.

These are details, looks good, nice work !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005417</commentid>
    <comment_count>8</comment_count>
      <attachid>230492</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-30 10:37:26 -0700</bug_when>
    <thetext>Created attachment 230492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005420</commentid>
    <comment_count>9</comment_count>
      <attachid>230493</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-04-30 10:49:29 -0700</bug_when>
    <thetext>Created attachment 230493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005449</commentid>
    <comment_count>10</comment_count>
      <attachid>230493</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-30 11:41:41 -0700</bug_when>
    <thetext>Comment on attachment 230493
Patch

Ok! Thanks to both Nicolas and Victor :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005570</commentid>
    <comment_count>11</comment_count>
      <attachid>230493</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 16:18:08 -0700</bug_when>
    <thetext>Comment on attachment 230493
Patch

Clearing flags on attachment: 230493

Committed r168060: &lt;http://trac.webkit.org/changeset/168060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005571</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 16:18:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006603</commentid>
    <comment_count>13</comment_count>
      <attachid>230823</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2014-05-05 06:18:32 -0700</bug_when>
    <thetext>Created attachment 230823
WebKitGTK+-2.2.x backport</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230288</attachid>
            <date>2014-04-28 03:32:30 -0700</date>
            <delta_ts>2014-04-30 06:48:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132247-20140428123207.patch</filename>
            <type>text/plain</type>
            <size>10616</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0NzQ5ZWZhYjJmY2Ri
NDQ0MDY5MDhjNjg1NWE1NDA5ZTJhYTQ0MC4uZjZkMDk0YmFjZDBkYzVhMWIyZDczMzMzZTFlYzhj
NjVjM2VkNDJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA0LTI4ICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gVXNlIEdzdE1ldGFWaWRlbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0VmlkZW9TaW5rIHdlIGFubm91bmNlIHRoZSB1
c2FnZSBvZiBHc3RNZXRhVmlkZW8sIGJ1dCB3ZSBkbworICAgICAgICBub3QgdXNlIGl0IHdoZW4g
aGFuZGxpbmcgdGhlIHZpZGVvIGZyYW1lcy4gVGhpcyBtaWdodCBicmVhaworICAgICAgICBzb21l
IGRlY29kZXJzIGFuZCBmaWx0ZXJzIHRoYXQgcmVseSBvbiBidWZmZXIncyBtZXRhLCByYXRoZXIK
KyAgICAgICAgdGhhdCBpbiB0aGUgY2FwcyBzdHJ1Y3R1cmVzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZW5hYmxlcyB0aGUgdXNlIG9mIEdzdE1ldGFWaWRlbyBpZiBpdCBpcyBhdmFpbGFibGUgaW4g
dGhlCisgICAgICAgIGJ1ZmZlci4gVGhpcyBtZXRhIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0
IHRoZSB2aWRlbyBmcmFtZSBpbiB0aGUKKyAgICAgICAgYnVmZmVyLCBhbmQgYWxzbyBwcm92aWRl
cyBmYWNpbGl0aWVzIGZvciBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgaXQuCisKKyAgICAgICAgQWxz
byB1c2UgbnVsbHB0ciB3aGVyZSB6ZXJvcyB3ZXJlIHVzZWQuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Z2V0VmlkZW9TaXplQW5kRm9ybWF0KTogQWRkZWQgbmV3IGZ1bmN0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0VmlkZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJD
YWlyby5jcHA6CisgICAgICAgIChJbWFnZUdTdHJlYW1lcjo6SW1hZ2VHU3RyZWFtZXIpOiBVc2Ug
dGhlIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpuYXR1cmFsU2l6ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4
dHVyZSk6IERpdHRvIGFuZAorICAgICAgICBhbHNvIHVzZSB0aGUgbWFwcGluZyB1dGlsaXRpZXMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1l
ci5jcHA6CisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtSZW5kZXIpOiBVc2UgdGhlIG5ldyBmdW5j
dGlvbi4KKwogMjAxNC0wNC0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIEdPYmplY3QgRE9NIGJpbmRpbmdz
IHN5bWJvbHMgZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKaW5kZXggYWFh
YzA5ODkzOGQ3ZTdhOTQzMWE0YTFkYTU1NjA1OGIyYjI4NzYzNi4uNmE1ODFmZDk3NzIyY2I5ZDM4
MjkxMDdkMTRhNjYzNjYyZTNiOWFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGdzdC9hdWRpby9hdWRpby5oPgogI2lu
Y2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0dmlkZW9tZXRhLmg+CiAj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00OCw3ICs0OSw3IEBAIEdzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVt
cGxhdGUoR3N0U3RhdGljUGFkVGVtcGxhdGUqIHN0YXRpY1BhZFRlbXBsCiB9CiAKICNpZiBFTkFC
TEUoVklERU8pCi1ib29sIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKEdzdENhcHMqIGNh
cHMsIFdlYkNvcmU6OkludFNpemUmIHNpemUsIEdzdFZpZGVvRm9ybWF0JiBmb3JtYXQsIGludCYg
cGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgaW50JiBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0
b3IsIGludCYgc3RyaWRlKQorYm9vbCBnZXRWaWRlb1NpemVBbmRGb3JtYXQoR3N0Q2FwcyogY2Fw
cywgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgR3N0VmlkZW9Gb3JtYXQmIGZvcm1hdCwgaW50JiBw
aXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBpbnQmIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRv
ciwgaW50JiBzdHJpZGUpCiB7CiAgICAgR3N0VmlkZW9JbmZvIGluZm87CiAKQEAgLTY0LDYgKzY1
LDI5IEBAIGJvb2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMoR3N0Q2FwcyogY2Fwcywg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgR3N0VmlkCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KKwor
Ym9vbCBnZXRWaWRlb1NpemVBbmRGb3JtYXQoR3N0QnVmZmVyKiBidWZmZXIsIFdlYkNvcmU6Oklu
dFNpemUmIHNpemUsIEdzdFZpZGVvRm9ybWF0JiBmb3JtYXQsIGludCYgcGl4ZWxBc3BlY3RSYXRp
b051bWVyYXRvciwgaW50JiBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIGludCYgc3RyaWRl
KQoreworICAgIEdzdFZpZGVvSW5mbyBpbmZvOworCisgICAgaWYgKCFidWZmZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEdzdFZpZGVvTWV0YSogdmlkZW9NZXRhID0gZ3N0X2J1ZmZl
cl9nZXRfdmlkZW9fbWV0YShidWZmZXIpOworICAgIGlmICghdmlkZW9NZXRhKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBnc3RfdmlkZW9faW5mb19zZXRfZm9ybWF0KCZpbmZvLCB2aWRl
b01ldGEtPmZvcm1hdCwgdmlkZW9NZXRhLT53aWR0aCwgdmlkZW9NZXRhLT5oZWlnaHQpOworCisg
ICAgZm9ybWF0ID0gR1NUX1ZJREVPX0lORk9fRk9STUFUKCZpbmZvKTsKKyAgICBzaXplLnNldFdp
ZHRoKEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKSk7CisgICAgc2l6ZS5zZXRIZWlnaHQoR1NU
X1ZJREVPX0lORk9fSEVJR0hUKCZpbmZvKSk7CisgICAgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRv
ciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvRGVu
b21pbmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJfRCgmaW5mbyk7CisgICAgc3RyaWRlID0gR1NU
X1ZJREVPX0lORk9fUExBTkVfU1RSSURFKCZpbmZvLCAwKTsKKworICAgIHJldHVybiB0cnVlOwor
fQogI2VuZGlmCiAKIEdzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyKEdzdEJ1ZmZlciogYnVmZmVy
KQpAQCAtNzIsNyArOTYsNyBAQCBHc3RCdWZmZXIqIGNyZWF0ZUdzdEJ1ZmZlcihHc3RCdWZmZXIq
IGJ1ZmZlcikKICAgICBHc3RCdWZmZXIqIG5ld0J1ZmZlciA9IGdzdF9idWZmZXJfbmV3X2FuZF9h
bGxvYyhidWZmZXJTaXplKTsKIAogICAgIGlmICghbmV3QnVmZmVyKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBnc3RfYnVmZmVyX2NvcHlfaW50byhu
ZXdCdWZmZXIsIGJ1ZmZlciwgc3RhdGljX2Nhc3Q8R3N0QnVmZmVyQ29weUZsYWdzPihHU1RfQlVG
RkVSX0NPUFlfTUVUQURBVEEpLCAwLCBidWZmZXJTaXplKTsKICAgICByZXR1cm4gbmV3QnVmZmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCmluZGV4IDRkMTA3MzZlMzQ3MzQ0NDliMDk2
NzVmYWE2YTU1YTU2YjU0Y2JjMzEuLjFhMjZkNGEwNzcxMmQ1ZWRkOWQyYTgxNTkzMGY0NDg0ZTBl
MzMxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmgKQEAgLTY0LDcgKzY0LDggQEAg
aW5saW5lIGJvb2wgd2Via2l0R3N0Q2hlY2tWZXJzaW9uKGd1aW50IG1ham9yLCBndWludCBtaW5v
ciwgZ3VpbnQgbWljcm8pCiAKIEdzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVt
cGxhdGUoR3N0U3RhdGljUGFkVGVtcGxhdGUqLCBjb25zdCBnY2hhciogbmFtZSwgR3N0UGFkKiB0
YXJnZXQpOwogI2lmIEVOQUJMRShWSURFTykKLWJvb2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJv
bUNhcHMoR3N0Q2FwcyosIFdlYkNvcmU6OkludFNpemUmLCBHc3RWaWRlb0Zvcm1hdCYsIGludCYg
cGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgaW50JiBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0
b3IsIGludCYgc3RyaWRlKTsKK2Jvb2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0KEdzdENhcHMqLCBX
ZWJDb3JlOjpJbnRTaXplJiwgR3N0VmlkZW9Gb3JtYXQmLCBpbnQmIHBpeGVsQXNwZWN0UmF0aW9O
dW1lcmF0b3IsIGludCYgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBpbnQmIHN0cmlkZSk7
Citib29sIGdldFZpZGVvU2l6ZUFuZEZvcm1hdChHc3RCdWZmZXIqLCBXZWJDb3JlOjpJbnRTaXpl
JiwgR3N0VmlkZW9Gb3JtYXQmLCBpbnQmIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIGludCYg
cGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBpbnQmIHN0cmlkZSk7CiAjZW5kaWYKIEdzdEJ1
ZmZlciogY3JlYXRlR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwogR3N0QnVmZmVyKiBjcmVhdGVHc3RC
dWZmZXJGb3JEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IGIyMWFjYTc2MGM5MGJhMmMxNjY4ZmVhYTExM2Q4
OWI1ZWU1Yzk2MGIuLjQ5YmM3NmZmYWZmOGU1YjdhY2RlMTEzNDJiYmZlM2ZhYjMzNjQ4YmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgSW1h
Z2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdEJ1ZmZlciogYnVmZmVyLCBHc3RDYXBzKiBj
YXBzKQogICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdDsKICAgICBJbnRTaXplIHNpemU7CiAgICAg
aW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRv
ciwgc3RyaWRlOwotICAgIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKGNhcHMsIHNpemUs
IGZvcm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yLCBzdHJpZGUpOworICAgIGdldFZpZGVvU2l6ZUFuZEZvcm1hdChjYXBzLCBzaXplLCBm
b3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWlu
YXRvciwgc3RyaWRlKTsKIAogICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJm1fbWFwSW5mbywg
R1NUX01BUF9SRUFEKTsKICAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXJEYXRhID0gcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4obV9tYXBJbmZvLmRhdGEpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDgyYjZhZGU4
NmJkZTMzNzM3YWM5NTg1ZTVlNmZhMjRlMjc0MDY5ZWEuLmM2ZGNkNGNiODM3ZjEyMTg5NzczMzU5
MDVkZjExYmVkOWIzM2MyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9sdW1lLmg+Cisj
aW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHZpZGVvbWV0YS5oPgogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJ
T04oMSwgMSwgMCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1ZGUgIlRleHR1cmVN
YXBwZXJHTC5oIgpAQCAtMTUzLDcgKzE1NCw3IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGludCBwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZTsKICAgICBJ
bnRTaXplIG9yaWdpbmFsU2l6ZTsKICAgICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQ7Ci0gICAgaWYg
KCFnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhjYXBzLmdldCgpLCBvcmlnaW5hbFNpemUs
IGZvcm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yLCBzdHJpZGUpKQorICAgIGlmICghZ2V0VmlkZW9TaXplQW5kRm9ybWF0KGNhcHMuZ2V0
KCksIG9yaWdpbmFsU2l6ZSwgZm9ybWF0LCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZSkpCiAgICAgICAgIHJldHVybiBJbnRTaXpl
KCk7CiAKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiT3JpZ2luYWwgdmlkZW8gc2l6ZTogJWR4JWQi
LCBvcmlnaW5hbFNpemUud2lkdGgoKSwgb3JpZ2luYWxTaXplLmhlaWdodCgpKTsKQEAgLTI3OCwx
OCArMjc5LDIwIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShUZXh0dXJlCiB7CiAgICAgR011dGV4TG9ja2Vy
IGxvY2sobV9idWZmZXJNdXRleCk7CiAgICAgaWYgKCFtX2J1ZmZlcikKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29uc3Qgdm9pZCogc3JjRGF0YSA9
IDA7CisgICAgdm9pZCogc3JjRGF0YSA9IDA7CiAgICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzID0g
Y3VycmVudFZpZGVvU2lua0NhcHMoKTsKICAgICBpZiAoIWNhcHMpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEludFNpemUgc2l6ZTsKICAgICBHc3RW
aWRlb0Zvcm1hdCBmb3JtYXQ7CiAgICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBp
eGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlOwotICAgIGlmICghZ2V0VmlkZW9TaXpl
QW5kRm9ybWF0RnJvbUNhcHMoY2Fwcy5nZXQoKSwgc2l6ZSwgZm9ybWF0LCBwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZSkpCi0gICAg
ICAgIHJldHVybiAwOworICAgIGlmICghZ2V0VmlkZW9TaXplQW5kRm9ybWF0KG1fYnVmZmVyLCBz
aXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9E
ZW5vbWluYXRvciwgc3RyaWRlKSkgeworICAgICAgICBpZiAoIWdldFZpZGVvU2l6ZUFuZEZvcm1h
dChjYXBzLmdldCgpLCBzaXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBp
eGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlKSkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KIAogICAgIGNvbnN0IEdzdFZpZGVvRm9ybWF0SW5mbyogZm9ybWF0SW5m
byA9IGdzdF92aWRlb19mb3JtYXRfZ2V0X2luZm8oZm9ybWF0KTsKIApAQCAtMzA5LDEyICszMTIs
MjIgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjp1cGRhdGVUZXh0dXJlKFRleHR1cmUKICNlbmRpZgogCiAgICAgR3N0TWFwSW5mbyBz
cmNJbmZvOwotICAgIGdzdF9idWZmZXJfbWFwKG1fYnVmZmVyLCAmc3JjSW5mbywgR1NUX01BUF9S
RUFEKTsKLSAgICBzcmNEYXRhID0gc3JjSW5mby5kYXRhOworICAgIEdzdFZpZGVvTWV0YSogdmlk
ZW9NZXRhID0gIGdzdF9idWZmZXJfZ2V0X3ZpZGVvX21ldGEobV9idWZmZXIpOworICAgIGlmICh2
aWRlb01ldGEpCisgICAgICAgIGdzdF92aWRlb19tZXRhX21hcCh2aWRlb01ldGEsIDAsICZzcmNJ
bmZvLCAmc3JjRGF0YSwgJnN0cmlkZSwgR1NUX01BUF9SRUFEKTsKKworICAgIGlmICghc3JjRGF0
YSkgeworICAgICAgICBnc3RfYnVmZmVyX21hcChtX2J1ZmZlciwgJnNyY0luZm8sIEdTVF9NQVBf
UkVBRCk7CisgICAgICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7CisgICAgfQogCiAgICAgdGV4
dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJ
bnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzdHJpZGUsIEJp
dG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKIAotICAg
IGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZzcmNJbmZvKTsKKyAgICBpZiAodmlkZW9NZXRh
KQorICAgICAgICBnc3RfdmlkZW9fbWV0YV91bm1hcCh2aWRlb01ldGEsIDAsICZzcmNJbmZvKTsK
KyAgICBlbHNlCisgICAgICAgIGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZzcmNJbmZvKTsK
KwogICAgIHJldHVybiB0ZXh0dXJlOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwCmluZGV4IDRjMmFhNzY4YWI5YWIyZWNlOWVmMDc5N2Q1OTQ0NTM4NTBkOGUzOTUu
LmMyMmUzZTkyYjE0Mzg3NzUxMjY1MGJkNTZlMDM2NWRkMDdmN2NmYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIEdzdEZsb3dS
ZXR1cm4gd2Via2l0VmlkZW9TaW5rUmVuZGVyKEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0QnVm
ZmVyKiBidWYKICAgICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6
ZSBzaXplOwogICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJh
dGlvRGVub21pbmF0b3IsIHN0cmlkZTsKLSAgICBpZiAoIWdldFZpZGVvU2l6ZUFuZEZvcm1hdEZy
b21DYXBzKGNhcHMuZ2V0KCksIHNpemUsIGZvcm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRv
ciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJpZGUpKSB7CisgICAgaWYgKCFnZXRW
aWRlb1NpemVBbmRGb3JtYXQoY2Fwcy5nZXQoKSwgc2l6ZSwgZm9ybWF0LCBwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZSkpIHsKICAg
ICAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOwogICAgICAgICByZXR1cm4gR1NUX0ZMT1df
RVJST1I7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230476</attachid>
            <date>2014-04-30 06:48:45 -0700</date>
            <delta_ts>2014-04-30 10:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132247-20140430154822.patch</filename>
            <type>text/plain</type>
            <size>14733</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0NzQ5ZWZhYjJmY2Ri
NDQ0MDY5MDhjNjg1NWE1NDA5ZTJhYTQ0MC4uODg5YTAzNjlhYjE2NGQ5ZTNmYWJjOTBmYzBkYTc4
ZmVjNWNlMjJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTA0LTMwICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gVXNlIEdzdE1ldGFWaWRlbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0VmlkZW9TaW5rIHdlIGFubm91bmNlIHRoZSB1
c2FnZSBvZiBHc3RNZXRhVmlkZW8sIGJ1dCB3ZSBkbworICAgICAgICBub3QgdXNlIGl0IHdoZW4g
aGFuZGxpbmcgdGhlIHZpZGVvIGZyYW1lcy4gVGhpcyBtaWdodCBicmVhaworICAgICAgICBzb21l
IGRlY29kZXJzIGFuZCBmaWx0ZXJzIHRoYXQgcmVseSBvbiBidWZmZXIncyBtZXRhLCByYXRoZXIK
KyAgICAgICAgdGhhdCBpbiB0aGUgY2FwcyBzdHJ1Y3R1cmVzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZW5hYmxlcyB0aGUgdXNlIG9mIEdzdE1ldGFWaWRlbyB0aHJvdWdoIHRoZSBHc3RWaWRlb0Zy
YW1lCisgICAgICAgIEFQSS4gQW5kIGl0IGlzIHVzZWQgZXZlcnl3aGVyZSB0aGUgYnVmZmVyIG1h
cHBpbmcgaXMgcmVxdWlyZWQuCisKKyAgICAgICAgQWxzbyB0aGlzIHBhdGNoIGNoYW5nZXMgdG8g
bnVsbHB0ciB3aGVyZSB6ZXJvcyB3ZXJlIHVzZWQuCisKKyAgICAgICAgQWxzbywgc2luY2UgZWl0
aGVyIEVGTCBhbmQgR1RLKyBwb3J0cyB1c2UgdmVyc2lvbiBvZiBnbGliIGdyZWF0ZXIgdGhhbgor
ICAgICAgICAyLjMxLCB0aGUgZ3VhcmRzIGZvciBpdCB3ZXJlIHJlbW92ZWQuCisKKyAgICAgICAg
QWxzbywgY29tcGlsZSBjb25kaXRpb25hbGx5IHRoZSB2aWRlbyBidWZmZXIgY29udmVyc2lvbiB3
aGVuIGl0IGlzCisgICAgICAgIEFSR0IvQkdSQSwgc2luY2UgaXQgaXMgb25seSByZXF1aXJlZCBm
b3IgdGhlIENhaXJvIGJhY2tlbmQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNv
dmVyZWQgYnkgY3VycmVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcDoKKyAgICAgICAgKEltYWdlR1N0cmVhbWVy
OjpJbWFnZUdTdHJlYW1lcik6IHVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZmZXIgbWFwcGluZwor
ICAgICAgICBhbmQgdW5tYXBwaW5nLgorICAgICAgICAoSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdT
dHJlYW1lcik6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUpOiBkaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmN1cnJlbnRW
aWRlb1NpbmtDYXBzKToKKyAgICAgICAgcmV0dXJuIG51bGxwdHIgaWYgZmFpbGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAod2Via2l0VmlkZW9TaW5rUmVuZGVyKTogcmVseSBvbiBHc3RWaWRlb0luZm8gcmF0
aGVyIHRoYW4gb24gdGhlCisgICAgICAgIGNhcHMuIFVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZm
ZXIgbWFwcGluZyBhbmQgdW5tYXBwaW5nLiBBZGQgZ3VhcmRzCisgICAgICAgIGZvciBidWZmZXIg
dHJhbnNmb3JtYXRpb24sIHNpbmNlIGl0J3Mgb25seSB1c2VkIGJ5IENhaXJvLgorICAgICAgICAo
d2Via2l0VmlkZW9TaW5rRGlzcG9zZSk6IHJlbW92ZSBnbGliIHZlcnNpb24gZ3VhcmRzLgorICAg
ICAgICAod2Via2l0VmlkZW9TaW5rU2V0Q2Fwcyk6IHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIHBy
aXZhdGUKKyAgICAgICAgR3N0VmlkZW9JbmZvLgorCiAyMDE0LTA0LTI4ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgR09iamVjdCBET00gYmluZGluZ3Mgc3ltYm9scyBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIu
aAppbmRleCAzOGJmM2I0ZDFhZDEzYjYyNzY0MTE3NjZhYWQyYmExNDBjOTZhYjE5Li5jOWQyZmI0
ZTkxNTc0OWFlNTg0ZjAxYjdiN2NiYzg1ZDBmM2E3OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIu
aApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKIAogI2lu
Y2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8uaD4KIAogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTY0
LDggKzY1LDcgQEAgY2xhc3MgSW1hZ2VHU3RyZWFtZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFn
ZUdTdHJlYW1lcj4gewogICAgICAgICBGbG9hdFJlY3QgbV9jcm9wUmVjdDsKIAogI2lmIFVTRShD
QUlSTykKLSAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IG1fYnVmZmVyOwotICAgICAgICBHc3RN
YXBJbmZvIG1fbWFwSW5mbzsKKyAgICAgICAgR3N0VmlkZW9GcmFtZSBtX3ZpZGVvRnJhbWU7CiAj
ZW5kaWYKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4
IGIyMWFjYTc2MGM5MGJhMmMxNjY4ZmVhYTExM2Q4OWI1ZWU1Yzk2MGIuLjlhN2RlOTJlNDZlNDIy
ZTU2OGFlYjE5ZjU5NjIxY2U3MjZjYmVmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJD
YWlyby5jcHAKQEAgLTMzLDI0ICszMywyOCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihHc3RC
dWZmZXIqIGJ1ZmZlciwgR3N0Q2FwcyogY2FwcykKLSAgICA6IG1fYnVmZmVyKGJ1ZmZlcikKIHsK
LSAgICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQ7Ci0gICAgSW50U2l6ZSBzaXplOwotICAgIGludCBw
aXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0
cmlkZTsKLSAgICBnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhjYXBzLCBzaXplLCBmb3Jt
YXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRv
ciwgc3RyaWRlKTsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZvOworICAgIGlmICghZ3N0X3Zp
ZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMpKQorICAgICAgICByZXR1cm47CiAK
LSAgICBnc3RfYnVmZmVyX21hcChidWZmZXIsICZtX21hcEluZm8sIEdTVF9NQVBfUkVBRCk7Ci0g
ICAgdW5zaWduZWQgY2hhciogYnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQg
Y2hhcio+KG1fbWFwSW5mby5kYXRhKTsKKyAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAoJm1f
dmlkZW9GcmFtZSwgJnZpZGVvSW5mbywgYnVmZmVyLCBHU1RfTUFQX1JFQUQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXJEYXRhID0gcmVpbnRlcnByZXRfY2Fz
dDx1bnNpZ25lZCBjaGFyKj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEoJm1fdmlkZW9GcmFt
ZSwgMCkpOwogCiAgICAgY2Fpcm9fZm9ybWF0X3QgY2Fpcm9Gb3JtYXQ7CiAjaWYgR19CWVRFX09S
REVSID09IEdfTElUVExFX0VORElBTgotICAgIGNhaXJvRm9ybWF0ID0gKGZvcm1hdCA9PSBHU1Rf
VklERU9fRk9STUFUX0JHUkEpID8gQ0FJUk9fRk9STUFUX0FSR0IzMiA6IENBSVJPX0ZPUk1BVF9S
R0IyNDsKKyAgICBjYWlyb0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3ZpZGVv
RnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRfQkdSQSkgPyBDQUlST19GT1JNQVRfQVJHQjMyIDog
Q0FJUk9fRk9STUFUX1JHQjI0OwogI2Vsc2UKLSAgICBjYWlyb0Zvcm1hdCA9IChmb3JtYXQgPT0g
R1NUX1ZJREVPX0ZPUk1BVF9BUkdCKSA/IENBSVJPX0ZPUk1BVF9BUkdCMzIgOiBDQUlST19GT1JN
QVRfUkdCMjQ7CisgICAgY2Fpcm9Gb3JtYXQgPSAoR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92
aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX0FSR0IpID8gQ0FJUk9fRk9STUFUX0FSR0Iz
MiA6IENBSVJPX0ZPUk1BVF9SR0IyNDsKICNlbmRpZgogCi0gICAgUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9k
YXRhKGJ1ZmZlckRhdGEsIGNhaXJvRm9ybWF0LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCks
IHN0cmlkZSkpOworICAgIGludCBzdHJpZGUgPSBHU1RfVklERU9fRlJBTUVfUExBTkVfU1RSSURF
KCZtX3ZpZGVvRnJhbWUsIDApOworICAgIGludCB3aWR0aCA9IEdTVF9WSURFT19GUkFNRV9XSURU
SCgmbV92aWRlb0ZyYW1lKTsKKyAgICBpbnQgaGVpZ2h0ID0gR1NUX1ZJREVPX0ZSQU1FX0hFSUdI
VCgmbV92aWRlb0ZyYW1lKTsKKworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2Ug
PSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXJEYXRh
LCBjYWlyb0Zvcm1hdCwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7CiAgICAgQVNTRVJUKGNhaXJv
X3N1cmZhY2Vfc3RhdHVzKHN1cmZhY2UuZ2V0KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTKTsK
ICAgICBtX2ltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShzdXJmYWNlLnJlbGVhc2UoKSk7CiAK
QEAgLTY3LDYgKzcxLDYgQEAgSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdTdHJlYW1lcigpCiAKICAg
ICAvLyBXZSBrZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMg
ZGVzdHJveWVkIGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdh
cyBjcmVhdGVkIHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCi0g
ICAgZ3N0X2J1ZmZlcl91bm1hcChtX2J1ZmZlci5nZXQoKSwgJm1fbWFwSW5mbyk7CisgICAgZ3N0
X3ZpZGVvX2ZyYW1lX3VubWFwKCZtX3ZpZGVvRnJhbWUpOwogfQogI2VuZGlmIC8vIFVTRShHU1RS
RUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5jcHAKaW5kZXggODJiNmFkZTg2YmRlMzM3MzdhYzk1ODVlNWU2ZmEyNGUyNzQwNjllYS4u
OGNjZGQ3N2IyNmUyZDg4ZDliNTZjMmRmYWQ1ZTc4OTQ4MTc2MTdmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPGdzdC9h
dWRpby9zdHJlYW12b2x1bWUuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0dmlkZW9tZXRhLmg+
CiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAxLCAwKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCkBAIC0yNzgsMjIgKzI3OSwxOCBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnVwZGF0ZVRleHR1cmUoVGV4dHVyZQogewogICAgIEdNdXRleExvY2tlciBsb2NrKG1fYnVmZmVy
TXV0ZXgpOwogICAgIGlmICghbV9idWZmZXIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnN0IHZvaWQqIHNyY0RhdGEgPSAwOwogICAgIEdSZWZQ
dHI8R3N0Q2Fwcz4gY2FwcyA9IGN1cnJlbnRWaWRlb1NpbmtDYXBzKCk7CiAgICAgaWYgKCFjYXBz
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBJbnRT
aXplIHNpemU7Ci0gICAgR3N0VmlkZW9Gb3JtYXQgZm9ybWF0OwotICAgIGludCBwaXhlbEFzcGVj
dFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZTsKLSAg
ICBpZiAoIWdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKGNhcHMuZ2V0KCksIHNpemUsIGZv
cm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5h
dG9yLCBzdHJpZGUpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGNvbnN0IEdzdFZpZGVvRm9y
bWF0SW5mbyogZm9ybWF0SW5mbyA9IGdzdF92aWRlb19mb3JtYXRfZ2V0X2luZm8oZm9ybWF0KTsK
KyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZvOworICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJv
bV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMuZ2V0KCkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gdGV4dHVyZU1hcHBlci0+YWNx
dWlyZVRleHR1cmVGcm9tUG9vbChzaXplLCBHU1RfVklERU9fRk9STUFUX0lORk9fSEFTX0FMUEhB
KGZvcm1hdEluZm8pID8gQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1
cmU6Ok5vRmxhZyk7CisgICAgSW50U2l6ZSBzaXplID0gSW50U2l6ZShHU1RfVklERU9fSU5GT19X
SURUSCgmdmlkZW9JbmZvKSwgR1NUX1ZJREVPX0lORk9fSEVJR0hUKCZ2aWRlb0luZm8pKTsKKyAg
ICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVU
ZXh0dXJlRnJvbVBvb2woc2l6ZSwgR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8p
ID8gQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1cmU6Ok5vRmxhZyk7
CiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAxLCAwKQogICAgIEdzdFZpZGVvR0xUZXh0dXJl
VXBsb2FkTWV0YSogbWV0YTsKQEAgLTMwOCwxMyArMzA1LDE1IEBAIFBhc3NSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShU
ZXh0dXJlCiAgICAgfQogI2VuZGlmCiAKLSAgICBHc3RNYXBJbmZvIHNyY0luZm87Ci0gICAgZ3N0
X2J1ZmZlcl9tYXAobV9idWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOwotICAgIHNyY0Rh
dGEgPSBzcmNJbmZvLmRhdGE7CisgICAgR3N0VmlkZW9GcmFtZSB2aWRlb0ZyYW1lOworICAgIGlm
ICghZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmdmlkZW9GcmFtZSwgJnZpZGVvSW5mbywgbV9idWZmZXIs
IEdTVF9NQVBfUkVBRCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgaW50IHN0cmlk
ZSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9TVFJJREUoJnZpZGVvRnJhbWUsIDApOworICAgIGNv
bnN0IHZvaWQqIHNyY0RhdGEgPSBHU1RfVklERU9fRlJBTUVfUExBTkVfREFUQSgmdmlkZW9GcmFt
ZSwgMCk7CiAgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwgV2ViQ29yZTo6SW50
UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6OkludFBvaW50KDAs
IDApLCBzdHJpZGUsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1h
Z2VEYXRhKTsKKyAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJnZpZGVvRnJhbWUpOwogCi0gICAg
Z3N0X2J1ZmZlcl91bm1hcChtX2J1ZmZlciwgJnNyY0luZm8pOwogICAgIHJldHVybiB0ZXh0dXJl
OwogfQogI2VuZGlmCkBAIC00MTEsNyArNDEwLDcgQEAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5
cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bW92aWVMb2FkVHlwZSgpIGNvbnMK
IEdSZWZQdHI8R3N0Q2Fwcz4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y3VycmVu
dFZpZGVvU2lua0NhcHMoKSBjb25zdAogewogICAgIGlmICghbV93ZWJraXRWaWRlb1NpbmspCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEdSZWZQdHI8
R3N0Q2Fwcz4gY3VycmVudENhcHM7CiAgICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fd2Via2l0
VmlkZW9TaW5rLmdldCgpKSwgImN1cnJlbnQtY2FwcyIsICZjdXJyZW50Q2Fwcy5vdXRQdHIoKSwg
TlVMTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDRjMmFhNzY4YWI5
YWIyZWNlOWVmMDc5N2Q1OTQ0NTM4NTBkOGUzOTUuLmJkMDU2NGYxMWE0ZjVjZTliNjk5MzAwYzM2
MjE4MWJkYTVhMjdiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0x
MDIsMTUgKzEwMiwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19pbml0KFdlYktp
dFZpZGVvU2luayogc2luaykKIHsKICAgICBzaW5rLT5wcml2ID0gR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKHNpbmssIFdFQktJVF9UWVBFX1ZJREVPX1NJTkssIFdlYktpdFZpZGVvU2lua1By
aXZhdGUpOwogICAgIG5ldyAoc2luay0+cHJpdikgV2ViS2l0VmlkZW9TaW5rUHJpdmF0ZSgpOwot
I2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAzMSwgMCkKICAgICBzaW5rLT5wcml2LT5kYXRhQ29u
ZGl0aW9uID0gbmV3IEdDb25kOwogICAgIGdfY29uZF9pbml0KHNpbmstPnByaXYtPmRhdGFDb25k
aXRpb24pOwogICAgIHNpbmstPnByaXYtPmJ1ZmZlck11dGV4ID0gbmV3IEdNdXRleDsKICAgICBn
X211dGV4X2luaXQoc2luay0+cHJpdi0+YnVmZmVyTXV0ZXgpOwotI2Vsc2UKLSAgICBzaW5rLT5w
cml2LT5kYXRhQ29uZGl0aW9uID0gZ19jb25kX25ldygpOwotICAgIHNpbmstPnByaXYtPmJ1ZmZl
ck11dGV4ID0gZ19tdXRleF9uZXcoKTsKLSNlbmRpZgogCiAgICAgZ3N0X3ZpZGVvX2luZm9faW5p
dCgmc2luay0+cHJpdi0+aW5mbyk7CiB9CkBAIC0xNDUsMjEgKzE0MCwxNCBAQCBzdGF0aWMgR3N0
Rmxvd1JldHVybiB3ZWJraXRWaWRlb1NpbmtSZW5kZXIoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBH
c3RCdWZmZXIqIGJ1ZgogCiAgICAgcHJpdi0+YnVmZmVyID0gZ3N0X2J1ZmZlcl9yZWYoYnVmZmVy
KTsKIAotICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwczsKICAgICAvLyBUaGUgdmlkZW8gaW5mbyBz
dHJ1Y3R1cmUgaXMgdmFsaWQgb25seSBpZiB0aGUgc2luayBoYW5kbGVkIGFuIGFsbG9jYXRpb24g
cXVlcnkuCi0gICAgaWYgKEdTVF9WSURFT19JTkZPX0ZPUk1BVCgmcHJpdi0+aW5mbykgIT0gR1NU
X1ZJREVPX0ZPUk1BVF9VTktOT1dOKQotICAgICAgICBjYXBzID0gYWRvcHRHUmVmKGdzdF92aWRl
b19pbmZvX3RvX2NhcHMoJnByaXYtPmluZm8pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhcHMgPSBw
cml2LT5jdXJyZW50Q2FwczsKLQotICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdDsKLSAgICBXZWJD
b3JlOjpJbnRTaXplIHNpemU7Ci0gICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBp
eGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlOwotICAgIGlmICghZ2V0VmlkZW9TaXpl
QW5kRm9ybWF0RnJvbUNhcHMoY2Fwcy5nZXQoKSwgc2l6ZSwgZm9ybWF0LCBwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZSkpIHsKKyAg
ICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQgPSBHU1RfVklERU9fSU5GT19GT1JNQVQoJnByaXYtPmlu
Zm8pOworICAgIGlmIChmb3JtYXQgPT0gR1NUX1ZJREVPX0ZPUk1BVF9VTktOT1dOKSB7CiAgICAg
ICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VS
Uk9SOwogICAgIH0KIAorI2lmICEoVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKSkKICAgICAvLyBDYWlybydzIEFSR0IgaGFzIHByZS1tdWx0aXBsaWVk
IGFscGhhIHdoaWxlIEdTdHJlYW1lcidzIGRvZXNuJ3QuCiAgICAgLy8gSGVyZSB3ZSBjb252ZXJ0
IHRvIENhaXJvJ3MgQVJHQi4KICAgICBpZiAoZm9ybWF0ID09IEdTVF9WSURFT19GT1JNQVRfQVJH
QiB8fCBmb3JtYXQgPT0gR1NUX1ZJREVPX0ZPUk1BVF9CR1JBKSB7CkBAIC0xNzEsMjIgKzE1OSwz
NSBAQCBzdGF0aWMgR3N0Rmxvd1JldHVybiB3ZWJraXRWaWRlb1NpbmtSZW5kZXIoR3N0QmFzZVNp
bmsqIGJhc2VTaW5rLCBHc3RCdWZmZXIqIGJ1ZgogICAgICAgICBHc3RCdWZmZXIqIG5ld0J1ZmZl
ciA9IFdlYkNvcmU6OmNyZWF0ZUdzdEJ1ZmZlcihidWZmZXIpOwogCiAgICAgICAgIC8vIENoZWNr
IGlmIGFsbG9jYXRpb24gZmFpbGVkLgotICAgICAgICBpZiAoVU5MSUtFTFkoIW5ld0J1ZmZlcikp
CisgICAgICAgIGlmIChVTkxJS0VMWSghbmV3QnVmZmVyKSkgeworICAgICAgICAgICAgZ3N0X2J1
ZmZlcl91bnJlZihidWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOwor
ICAgICAgICB9CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIENvbG9yOjpwcmVtdWx0aXBsaWVk
QVJHQkZyb21Db2xvcigpIGhlcmUgYmVjYXVzZQogICAgICAgICAvLyBvbmUgZnVuY3Rpb24gY2Fs
bCBwZXIgdmlkZW8gcGl4ZWwgaXMganVzdCB0b28gZXhwZW5zaXZlOgogICAgICAgICAvLyBGb3Ig
NzIwcC9QQUwgZm9yIGV4YW1wbGUgdGhpcyBtZWFucyAxMjgwKjcyMCoyNT0yMzA0MDAwMAogICAg
ICAgICAvLyBmdW5jdGlvbiBjYWxscyBwZXIgc2Vjb25kIQotICAgICAgICBHc3RNYXBJbmZvIHNv
dXJjZUluZm87Ci0gICAgICAgIEdzdE1hcEluZm8gZGVzdGluYXRpb25JbmZvOwotICAgICAgICBn
c3RfYnVmZmVyX21hcChidWZmZXIsICZzb3VyY2VJbmZvLCBHU1RfTUFQX1JFQUQpOwotICAgICAg
ICBjb25zdCBndWludDgqIHNvdXJjZSA9IGNvbnN0X2Nhc3Q8Z3VpbnQ4Kj4oc291cmNlSW5mby5k
YXRhKTsKLSAgICAgICAgZ3N0X2J1ZmZlcl9tYXAobmV3QnVmZmVyLCAmZGVzdGluYXRpb25JbmZv
LCBHU1RfTUFQX1dSSVRFKTsKLSAgICAgICAgZ3VpbnQ4KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19j
YXN0PGd1aW50OCo+KGRlc3RpbmF0aW9uSW5mby5kYXRhKTsKLQotICAgICAgICBmb3IgKGludCB4
ID0gMDsgeCA8IHNpemUuaGVpZ2h0KCk7IHgrKykgewotICAgICAgICAgICAgZm9yIChpbnQgeSA9
IDA7IHkgPCBzaXplLndpZHRoKCk7IHkrKykgeworICAgICAgICBHc3RWaWRlb0ZyYW1lIHNvdXJj
ZUZyYW1lOworICAgICAgICBHc3RWaWRlb0ZyYW1lIGRlc3RpbmF0aW9uRnJhbWU7CisKKyAgICAg
ICAgaWYgKCFnc3RfdmlkZW9fZnJhbWVfbWFwKCZzb3VyY2VGcmFtZSwgJnByaXYtPmluZm8sIGJ1
ZmZlciwgR1NUX01BUF9SRUFEKSkgeworICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZm
ZXIpOworICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihuZXdCdWZmZXIpOworICAgICAgICAg
ICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOworICAgICAgICB9CisgICAgICAgIGlmICghZ3N0X3Zp
ZGVvX2ZyYW1lX21hcCgmZGVzdGluYXRpb25GcmFtZSwgJnByaXYtPmluZm8sIG5ld0J1ZmZlciwg
R1NUX01BUF9XUklURSkpIHsKKyAgICAgICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmc291
cmNlRnJhbWUpOworICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOworICAgICAg
ICAgICAgZ3N0X2J1ZmZlcl91bnJlZihuZXdCdWZmZXIpOworICAgICAgICAgICAgcmV0dXJuIEdT
VF9GTE9XX0VSUk9SOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZ3VpbnQ4KiBzb3VyY2Ug
PSBzdGF0aWNfY2FzdDxndWludDgqPihHU1RfVklERU9fRlJBTUVfUExBTkVfREFUQSgmc291cmNl
RnJhbWUsIDApKTsKKyAgICAgICAgZ3VpbnQ4KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PGd1
aW50OCo+KEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZkZXN0aW5hdGlvbkZyYW1lLCAwKSk7
CisKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZz
b3VyY2VGcmFtZSk7IHgrKykgeworICAgICAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBHU1Rf
VklERU9fRlJBTUVfV0lEVEgoJnNvdXJjZUZyYW1lKTsgeSsrKSB7CiAjaWYgR19CWVRFX09SREVS
ID09IEdfTElUVExFX0VORElBTgogICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFscGhh
ID0gc291cmNlWzNdOwogICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gKHNvdXJjZVsw
XSAqIGFscGhhICsgMTI4KSAvIDI1NTsKQEAgLTIwNSwxMSArMjA2LDEyIEBAIHN0YXRpYyBHc3RG
bG93UmV0dXJuIHdlYmtpdFZpZGVvU2lua1JlbmRlcihHc3RCYXNlU2luayogYmFzZVNpbmssIEdz
dEJ1ZmZlciogYnVmCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBnc3RfYnVm
ZmVyX3VubWFwKGJ1ZmZlciwgJnNvdXJjZUluZm8pOwotICAgICAgICBnc3RfYnVmZmVyX3VubWFw
KG5ld0J1ZmZlciwgJmRlc3RpbmF0aW9uSW5mbyk7CisgICAgICAgIGdzdF92aWRlb19mcmFtZV91
bm1hcCgmc291cmNlRnJhbWUpOworICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJmRlc3Rp
bmF0aW9uRnJhbWUpOwogICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CiAgICAgICAg
IGJ1ZmZlciA9IHByaXYtPmJ1ZmZlciA9IG5ld0J1ZmZlcjsKICAgICB9CisjZW5kaWYKIAogICAg
IC8vIFRoaXMgc2hvdWxkIGxpa2VseSB1c2UgYSBsb3dlciBwcmlvcml0eSwgYnV0IGdsaWIgY3Vy
cmVudGx5IHN0YXJ2ZXMKICAgICAvLyBsb3dlciBwcmlvcml0eSBzb3VyY2VzLgpAQCAtMjI4LDIy
ICsyMzAsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0VmlkZW9TaW5rRGlzcG9zZShHT2JqZWN0KiBv
YmplY3QpCiAgICAgV2ViS2l0VmlkZW9TaW5rUHJpdmF0ZSogcHJpdiA9IHNpbmstPnByaXY7CiAK
ICAgICBpZiAocHJpdi0+ZGF0YUNvbmRpdGlvbikgewotI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigy
LCAzMSwgMCkKICAgICAgICAgZ19jb25kX2NsZWFyKHByaXYtPmRhdGFDb25kaXRpb24pOwogICAg
ICAgICBkZWxldGUgcHJpdi0+ZGF0YUNvbmRpdGlvbjsKLSNlbHNlCi0gICAgICAgIGdfY29uZF9m
cmVlKHByaXYtPmRhdGFDb25kaXRpb24pOwotI2VuZGlmCiAgICAgICAgIHByaXYtPmRhdGFDb25k
aXRpb24gPSAwOwogICAgIH0KIAogICAgIGlmIChwcml2LT5idWZmZXJNdXRleCkgewotI2lmIEdM
SUJfQ0hFQ0tfVkVSU0lPTigyLCAzMSwgMCkKICAgICAgICAgZ19tdXRleF9jbGVhcihwcml2LT5i
dWZmZXJNdXRleCk7CiAgICAgICAgIGRlbGV0ZSBwcml2LT5idWZmZXJNdXRleDsKLSNlbHNlCi0g
ICAgICAgIGdfbXV0ZXhfZnJlZShwcml2LT5idWZmZXJNdXRleCk7Ci0jZW5kaWYKICAgICAgICAg
cHJpdi0+YnVmZmVyTXV0ZXggPSAwOwogICAgIH0KIApAQCAtMzQ1LDYgKzMzOSw3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJraXRWaWRlb1NpbmtTZXRDYXBzKEdzdEJhc2VTaW5rKiBiYXNlU2luaywg
R3N0Q2FwcyogY2FwcykKICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAorICAgIHByaXYt
PmluZm8gPSBpbmZvOwogICAgIGdzdF9jYXBzX3JlcGxhY2UoJnByaXYtPmN1cnJlbnRDYXBzLCBj
YXBzKTsKICAgICByZXR1cm4gVFJVRTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230492</attachid>
            <date>2014-04-30 10:37:26 -0700</date>
            <delta_ts>2014-04-30 10:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132247-20140430193703.patch</filename>
            <type>text/plain</type>
            <size>14948</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0NzQ5ZWZhYjJmY2Ri
NDQ0MDY5MDhjNjg1NWE1NDA5ZTJhYTQ0MC4uMTViYmNjNTc0NGI4YmQyNjBmYjc4ZDM3NjQzYTVl
MTNjZGVkYjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTA0LTMwICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gVXNlIEdzdE1ldGFWaWRlbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0VmlkZW9TaW5rIHdlIGFubm91bmNlIHRoZSB1
c2FnZSBvZiBHc3RNZXRhVmlkZW8sIGJ1dCB3ZSBkbworICAgICAgICBub3QgdXNlIGl0IHdoZW4g
aGFuZGxpbmcgdGhlIHZpZGVvIGZyYW1lcy4gVGhpcyBtaWdodCBicmVhaworICAgICAgICBzb21l
IGRlY29kZXJzIGFuZCBmaWx0ZXJzIHRoYXQgcmVseSBvbiBidWZmZXIncyBtZXRhLCByYXRoZXIK
KyAgICAgICAgdGhhdCBpbiB0aGUgY2FwcyBzdHJ1Y3R1cmVzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZW5hYmxlcyB0aGUgdXNlIG9mIEdzdE1ldGFWaWRlbyB0aHJvdWdoIHRoZSBHc3RWaWRlb0Zy
YW1lCisgICAgICAgIEFQSS4gQW5kIGl0IGlzIHVzZWQgZXZlcnl3aGVyZSB0aGUgYnVmZmVyIG1h
cHBpbmcgaXMgcmVxdWlyZWQuCisKKyAgICAgICAgQWxzbyB0aGlzIHBhdGNoIGNoYW5nZXMgdG8g
bnVsbHB0ciB3aGVyZSB6ZXJvcyB3ZXJlIHVzZWQuCisKKyAgICAgICAgQWxzbywgY29tcGlsZSBj
b25kaXRpb25hbGx5IHRoZSB2aWRlbyBidWZmZXIgY29udmVyc2lvbiB3aGVuIGl0IGlzCisgICAg
ICAgIEFSR0IvQkdSQSwgc2luY2UgaXQgaXMgb25seSByZXF1aXJlZCBmb3IgdGhlIENhaXJvIGJh
Y2tlbmQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVu
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VmlkZW9TaXplQW5kRm9ybWF0
RnJvbUNhcHMpOiBpbml0IHRoZSBHc3RWaWRlb0luZm8gYmVmb3JlCisgICAgICAgIHVzZWQgYW5k
IHJlbW92ZSBjYXBzIGZpeGF0ZSBjaGVjayBzaW5jZSBpdCBpcyBkb25lIGJ5CisgICAgICAgIGdz
dF92aWRlb19pbmZvX2Zyb21fY2FwcygpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcDoKKyAgICAgICAgKEltYWdlR1N0cmVhbWVy
OjpJbWFnZUdTdHJlYW1lcik6IHVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZmZXIgbWFwcGluZwor
ICAgICAgICBhbmQgdW5tYXBwaW5nLgorICAgICAgICAoSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdT
dHJlYW1lcik6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUpOiBkaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmN1cnJlbnRW
aWRlb1NpbmtDYXBzKToKKyAgICAgICAgcmV0dXJuIG51bGxwdHIgaWYgZmFpbGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAod2Via2l0VmlkZW9TaW5rUmVuZGVyKTogcmVseSBvbiBHc3RWaWRlb0luZm8gcmF0
aGVyIHRoYW4gb24gdGhlCisgICAgICAgIGNhcHMuIFVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZm
ZXIgbWFwcGluZyBhbmQgdW5tYXBwaW5nLiBBZGQgZ3VhcmRzCisgICAgICAgIGZvciBidWZmZXIg
dHJhbnNmb3JtYXRpb24sIHNpbmNlIGl0J3Mgb25seSB1c2VkIGJ5IENhaXJvLgorICAgICAgICAo
d2Via2l0VmlkZW9TaW5rRGlzcG9zZSk6IHJlbW92ZSBnbGliIHZlcnNpb24gZ3VhcmRzLgorICAg
ICAgICAod2Via2l0VmlkZW9TaW5rU2V0Q2Fwcyk6IHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIHBy
aXZhdGUKKyAgICAgICAgR3N0VmlkZW9JbmZvLgorCiAyMDE0LTA0LTI4ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgR09iamVjdCBET00gYmluZGluZ3Mgc3ltYm9scyBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmNwcAppbmRleCBhYWFjMDk4OTM4ZDdlN2E5NDMxYTRhMWRhNTU2MDU4YjJiMjg3
NjM2Li40MmE4MGQ3NmRlZDBhYWNlZDBhOTI5ZjQ4OTI3NWEyZGVjNDE5ZDA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcApAQCAtNTIsNyArNTIsOCBAQCBib29sIGdldFZpZGVv
U2l6ZUFuZEZvcm1hdEZyb21DYXBzKEdzdENhcHMqIGNhcHMsIFdlYkNvcmU6OkludFNpemUmIHNp
emUsIEdzdFZpZAogewogICAgIEdzdFZpZGVvSW5mbyBpbmZvOwogCi0gICAgaWYgKCFnc3RfY2Fw
c19pc19maXhlZChjYXBzKSB8fCAhZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBjYXBz
KSkKKyAgICBnc3RfdmlkZW9faW5mb19pbml0KCZpbmZvKTsKKyAgICBpZiAoIWdzdF92aWRlb19p
bmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGZvcm1hdCA9IEdTVF9WSURFT19JTkZPX0ZPUk1BVCgmaW5mbyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ci5oCmluZGV4IDM4YmYzYjRkMWFkMTNiNjI3NjQxMTc2NmFhZDJiYTE0MGM5NmFiMTkuLmM5ZDJm
YjRlOTE1NzQ5YWU1ODRmMDFiN2I3Y2JjODVkMGYzYTc5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogCiAj
aW5jbHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgogCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
NjQsOCArNjUsNyBAQCBjbGFzcyBJbWFnZUdTdHJlYW1lciA6IHB1YmxpYyBSZWZDb3VudGVkPElt
YWdlR1N0cmVhbWVyPiB7CiAgICAgICAgIEZsb2F0UmVjdCBtX2Nyb3BSZWN0OwogCiAjaWYgVVNF
KENBSVJPKQotICAgICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAgICAgIEdz
dE1hcEluZm8gbV9tYXBJbmZvOworICAgICAgICBHc3RWaWRlb0ZyYW1lIG1fdmlkZW9GcmFtZTsK
ICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKaW5k
ZXggYjIxYWNhNzYwYzkwYmEyYzE2NjhmZWFhMTEzZDg5YjVlZTVjOTYwYi4uOWE3ZGU5MmU0NmU0
MjJlNTY4YWViMTlmNTk2MjFjZTcyNmNiZWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ckNhaXJvLmNwcApAQCAtMzMsMjQgKzMzLDI4IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogSW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdz
dEJ1ZmZlciogYnVmZmVyLCBHc3RDYXBzKiBjYXBzKQotICAgIDogbV9idWZmZXIoYnVmZmVyKQog
ewotICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdDsKLSAgICBJbnRTaXplIHNpemU7Ci0gICAgaW50
IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwg
c3RyaWRlOwotICAgIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKGNhcHMsIHNpemUsIGZv
cm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5h
dG9yLCBzdHJpZGUpOworICAgIEdzdFZpZGVvSW5mbyB2aWRlb0luZm87CisgICAgaWYgKCFnc3Rf
dmlkZW9faW5mb19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2FwcykpCisgICAgICAgIHJldHVybjsK
IAotICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJm1fbWFwSW5mbywgR1NUX01BUF9SRUFEKTsK
LSAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXJEYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCBjaGFyKj4obV9tYXBJbmZvLmRhdGEpOworICAgIGlmICghZ3N0X3ZpZGVvX2ZyYW1lX21hcCgm
bV92aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBidWZmZXIsIEdTVF9NQVBfUkVBRCkpCisgICAgICAg
IHJldHVybjsKKworICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlckRhdGEgPSByZWludGVycHJldF9j
YXN0PHVuc2lnbmVkIGNoYXIqPihHU1RfVklERU9fRlJBTUVfUExBTkVfREFUQSgmbV92aWRlb0Zy
YW1lLCAwKSk7CiAKICAgICBjYWlyb19mb3JtYXRfdCBjYWlyb0Zvcm1hdDsKICNpZiBHX0JZVEVf
T1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCi0gICAgY2Fpcm9Gb3JtYXQgPSAoZm9ybWF0ID09IEdT
VF9WSURFT19GT1JNQVRfQkdSQSkgPyBDQUlST19GT1JNQVRfQVJHQjMyIDogQ0FJUk9fRk9STUFU
X1JHQjI0OworICAgIGNhaXJvRm9ybWF0ID0gKEdTVF9WSURFT19GUkFNRV9GT1JNQVQoJm1fdmlk
ZW9GcmFtZSkgPT0gR1NUX1ZJREVPX0ZPUk1BVF9CR1JBKSA/IENBSVJPX0ZPUk1BVF9BUkdCMzIg
OiBDQUlST19GT1JNQVRfUkdCMjQ7CiAjZWxzZQotICAgIGNhaXJvRm9ybWF0ID0gKGZvcm1hdCA9
PSBHU1RfVklERU9fRk9STUFUX0FSR0IpID8gQ0FJUk9fRk9STUFUX0FSR0IzMiA6IENBSVJPX0ZP
Uk1BVF9SR0IyNDsKKyAgICBjYWlyb0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZt
X3ZpZGVvRnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRfQVJHQikgPyBDQUlST19GT1JNQVRfQVJH
QjMyIDogQ0FJUk9fRk9STUFUX1JHQjI0OwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoYnVmZmVyRGF0YSwgY2Fpcm9Gb3JtYXQsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSwgc3RyaWRlKSk7CisgICAgaW50IHN0cmlkZSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9TVFJJ
REUoJm1fdmlkZW9GcmFtZSwgMCk7CisgICAgaW50IHdpZHRoID0gR1NUX1ZJREVPX0ZSQU1FX1dJ
RFRIKCZtX3ZpZGVvRnJhbWUpOworICAgIGludCBoZWlnaHQgPSBHU1RfVklERU9fRlJBTUVfSEVJ
R0hUKCZtX3ZpZGVvRnJhbWUpOworCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFj
ZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlckRh
dGEsIGNhaXJvRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKICAgICBBU1NFUlQoY2Fp
cm9fc3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1Mp
OwogICAgIG1faW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKHN1cmZhY2UucmVsZWFzZSgpKTsK
IApAQCAtNjcsNiArNzEsNiBAQCBJbWFnZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKCkKIAog
ICAgIC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRoZSBpbWFnZSBp
cyBkZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19zdXJmYWNlX3Qg
d2FzIGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKS4K
LSAgICBnc3RfYnVmZmVyX3VubWFwKG1fYnVmZmVyLmdldCgpLCAmbV9tYXBJbmZvKTsKKyAgICBn
c3RfdmlkZW9fZnJhbWVfdW5tYXAoJm1fdmlkZW9GcmFtZSk7CiB9CiAjZW5kaWYgLy8gVVNFKEdT
VFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlLmNwcAppbmRleCA4MmI2YWRlODZiZGUzMzczN2FjOTU4NWU1ZTZmYTI0ZTI3NDA2OWVh
Li41ZTMyYmUyNmQ5YmRjMzc2OGQyMzYzMGE3MzNiZmVjOTIxNTU5MDcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC00Miw2
ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaW5jbHVkZSA8Z3N0
L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgorI2luY2x1ZGUgPGdzdC92aWRlby9nc3R2aWRlb21ldGEu
aD4KIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDEsIDApICYmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKQEAgLTI3OCwyMiArMjc5LDE5IEBA
IFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6dXBkYXRlVGV4dHVyZShUZXh0dXJlCiB7CiAgICAgR011dGV4TG9ja2VyIGxvY2sobV9idWZm
ZXJNdXRleCk7CiAgICAgaWYgKCFtX2J1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgY29uc3Qgdm9pZCogc3JjRGF0YSA9IDA7CiAgICAgR1Jl
ZlB0cjxHc3RDYXBzPiBjYXBzID0gY3VycmVudFZpZGVvU2lua0NhcHMoKTsKICAgICBpZiAoIWNh
cHMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgSW50U2l6ZSBzaXplOwotICAgIEdzdFZpZGVv
Rm9ybWF0IGZvcm1hdDsKLSAgICBpbnQgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxB
c3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJpZGU7Ci0gICAgaWYgKCFnZXRWaWRlb1NpemVBbmRG
b3JtYXRGcm9tQ2FwcyhjYXBzLmdldCgpLCBzaXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9O
dW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlKSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29uc3QgR3N0VmlkZW9G
b3JtYXRJbmZvKiBmb3JtYXRJbmZvID0gZ3N0X3ZpZGVvX2Zvcm1hdF9nZXRfaW5mbyhmb3JtYXQp
OworICAgIEdzdFZpZGVvSW5mbyB2aWRlb0luZm87CisgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgm
dmlkZW9JbmZvKTsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZv
LCBjYXBzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8Qml0
bWFwVGV4dHVyZT4gdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBv
b2woc2l6ZSwgR1NUX1ZJREVPX0ZPUk1BVF9JTkZPX0hBU19BTFBIQShmb3JtYXRJbmZvKSA/IEJp
dG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiBCaXRtYXBUZXh0dXJlOjpOb0ZsYWcpOworICAg
IEludFNpemUgc2l6ZSA9IEludFNpemUoR1NUX1ZJREVPX0lORk9fV0lEVEgoJnZpZGVvSW5mbyks
IEdTVF9WSURFT19JTkZPX0hFSUdIVCgmdmlkZW9JbmZvKSk7CisgICAgUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IHRleHR1cmUgPSB0ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKHNp
emUsIEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/IEJpdG1hcFRleHR1cmU6
OlN1cHBvcnRzQWxwaGEgOiBCaXRtYXBUZXh0dXJlOjpOb0ZsYWcpOwogCiAjaWYgR1NUX0NIRUNL
X1ZFUlNJT04oMSwgMSwgMCkKICAgICBHc3RWaWRlb0dMVGV4dHVyZVVwbG9hZE1ldGEqIG1ldGE7
CkBAIC0zMDgsMTMgKzMwNiwxOCBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUoVGV4dHVyZQogICAgIH0KICNl
bmRpZgogCi0gICAgR3N0TWFwSW5mbyBzcmNJbmZvOwotICAgIGdzdF9idWZmZXJfbWFwKG1fYnVm
ZmVyLCAmc3JjSW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICBzcmNEYXRhID0gc3JjSW5mby5kYXRh
OworICAgIC8vIFJpZ2h0IG5vdyB0aGUgVGV4dHVyZU1hcHBlciBvbmx5IHN1cHBvcnRzIGNocm9t
YXMgd2l0aCBvbmUgcGxhbmUKKyAgICBBU1NFUlQoR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJnZp
ZGVvSW5mbykgPT0gMSk7CiAKKyAgICBHc3RWaWRlb0ZyYW1lIHZpZGVvRnJhbWU7CisgICAgaWYg
KCFnc3RfdmlkZW9fZnJhbWVfbWFwKCZ2aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBtX2J1ZmZlciwg
R1NUX01BUF9SRUFEKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpbnQgc3RyaWRl
ID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmdmlkZW9GcmFtZSwgMCk7CisgICAgY29u
c3Qgdm9pZCogc3JjRGF0YSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZ2aWRlb0ZyYW1l
LCAwKTsKICAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRS
ZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwg
MCksIHN0cmlkZSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFn
ZURhdGEpOworICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmdmlkZW9GcmFtZSk7CiAKLSAgICBn
c3RfYnVmZmVyX3VubWFwKG1fYnVmZmVyLCAmc3JjSW5mbyk7CiAgICAgcmV0dXJuIHRleHR1cmU7
CiB9CiAjZW5kaWYKQEAgLTQxMSw3ICs0MTQsNyBAQCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlw
ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptb3ZpZUxvYWRUeXBlKCkgY29ucwog
R1JlZlB0cjxHc3RDYXBzPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjdXJyZW50
VmlkZW9TaW5rQ2FwcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3dlYmtpdFZpZGVvU2luaykKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgR1JlZlB0cjxH
c3RDYXBzPiBjdXJyZW50Q2FwczsKICAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV93ZWJraXRW
aWRlb1NpbmsuZ2V0KCkpLCAiY3VycmVudC1jYXBzIiwgJmN1cnJlbnRDYXBzLm91dFB0cigpLCBO
VUxMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggNGMyYWE3NjhhYjlh
YjJlY2U5ZWYwNzk3ZDU5NDQ1Mzg1MGQ4ZTM5NS4uOGIzZmIzMjIyNzg2YjBhOTVkM2RkYThlOWM0
ZTZjMWM1MDBjMzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTE0
NSwyMSArMTQ1LDE0IEBAIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdFZpZGVvU2lua1JlbmRl
cihHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmCiAKICAgICBwcml2LT5idWZm
ZXIgPSBnc3RfYnVmZmVyX3JlZihidWZmZXIpOwogCi0gICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBz
OwogICAgIC8vIFRoZSB2aWRlbyBpbmZvIHN0cnVjdHVyZSBpcyB2YWxpZCBvbmx5IGlmIHRoZSBz
aW5rIGhhbmRsZWQgYW4gYWxsb2NhdGlvbiBxdWVyeS4KLSAgICBpZiAoR1NUX1ZJREVPX0lORk9f
Rk9STUFUKCZwcml2LT5pbmZvKSAhPSBHU1RfVklERU9fRk9STUFUX1VOS05PV04pCi0gICAgICAg
IGNhcHMgPSBhZG9wdEdSZWYoZ3N0X3ZpZGVvX2luZm9fdG9fY2FwcygmcHJpdi0+aW5mbykpOwot
ICAgIGVsc2UKLSAgICAgICAgY2FwcyA9IHByaXYtPmN1cnJlbnRDYXBzOwotCi0gICAgR3N0Vmlk
ZW9Gb3JtYXQgZm9ybWF0OwotICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZTsKLSAgICBpbnQgcGl4
ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJp
ZGU7Ci0gICAgaWYgKCFnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhjYXBzLmdldCgpLCBz
aXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9E
ZW5vbWluYXRvciwgc3RyaWRlKSkgeworICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdCA9IEdTVF9W
SURFT19JTkZPX0ZPUk1BVCgmcHJpdi0+aW5mbyk7CisgICAgaWYgKGZvcm1hdCA9PSBHU1RfVklE
RU9fRk9STUFUX1VOS05PV04pIHsKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOwog
ICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CiAgICAgfQogCisjaWYgIShVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpKQogICAgIC8vIENhaXJv
J3MgQVJHQiBoYXMgcHJlLW11bHRpcGxpZWQgYWxwaGEgd2hpbGUgR1N0cmVhbWVyJ3MgZG9lc24n
dC4KICAgICAvLyBIZXJlIHdlIGNvbnZlcnQgdG8gQ2Fpcm8ncyBBUkdCLgogICAgIGlmIChmb3Jt
YXQgPT0gR1NUX1ZJREVPX0ZPUk1BVF9BUkdCIHx8IGZvcm1hdCA9PSBHU1RfVklERU9fRk9STUFU
X0JHUkEpIHsKQEAgLTE3MSwyMiArMTY0LDM1IEBAIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtp
dFZpZGVvU2lua1JlbmRlcihHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmCiAg
ICAgICAgIEdzdEJ1ZmZlciogbmV3QnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlR3N0QnVmZmVyKGJ1
ZmZlcik7CiAKICAgICAgICAgLy8gQ2hlY2sgaWYgYWxsb2NhdGlvbiBmYWlsZWQuCi0gICAgICAg
IGlmIChVTkxJS0VMWSghbmV3QnVmZmVyKSkKKyAgICAgICAgaWYgKFVOTElLRUxZKCFuZXdCdWZm
ZXIpKSB7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CiAgICAgICAgICAg
ICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBkb24n
dCB1c2UgQ29sb3I6OnByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkgaGVyZSBiZWNhdXNlCiAg
ICAgICAgIC8vIG9uZSBmdW5jdGlvbiBjYWxsIHBlciB2aWRlbyBwaXhlbCBpcyBqdXN0IHRvbyBl
eHBlbnNpdmU6CiAgICAgICAgIC8vIEZvciA3MjBwL1BBTCBmb3IgZXhhbXBsZSB0aGlzIG1lYW5z
IDEyODAqNzIwKjI1PTIzMDQwMDAwCiAgICAgICAgIC8vIGZ1bmN0aW9uIGNhbGxzIHBlciBzZWNv
bmQhCi0gICAgICAgIEdzdE1hcEluZm8gc291cmNlSW5mbzsKLSAgICAgICAgR3N0TWFwSW5mbyBk
ZXN0aW5hdGlvbkluZm87Ci0gICAgICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNvdXJjZUlu
Zm8sIEdTVF9NQVBfUkVBRCk7Ci0gICAgICAgIGNvbnN0IGd1aW50OCogc291cmNlID0gY29uc3Rf
Y2FzdDxndWludDgqPihzb3VyY2VJbmZvLmRhdGEpOwotICAgICAgICBnc3RfYnVmZmVyX21hcChu
ZXdCdWZmZXIsICZkZXN0aW5hdGlvbkluZm8sIEdTVF9NQVBfV1JJVEUpOwotICAgICAgICBndWlu
dDgqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4Kj4oZGVzdGluYXRpb25JbmZvLmRh
dGEpOwotCi0gICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgc2l6ZS5oZWlnaHQoKTsgeCsrKSB7
Ci0gICAgICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IHNpemUud2lkdGgoKTsgeSsrKSB7Cisg
ICAgICAgIEdzdFZpZGVvRnJhbWUgc291cmNlRnJhbWU7CisgICAgICAgIEdzdFZpZGVvRnJhbWUg
ZGVzdGluYXRpb25GcmFtZTsKKworICAgICAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAoJnNv
dXJjZUZyYW1lLCAmcHJpdi0+aW5mbywgYnVmZmVyLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgICAg
ICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3Vu
cmVmKG5ld0J1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKCFnc3RfdmlkZW9fZnJhbWVfbWFwKCZkZXN0aW5hdGlvbkZyYW1l
LCAmcHJpdi0+aW5mbywgbmV3QnVmZmVyLCBHU1RfTUFQX1dSSVRFKSkgeworICAgICAgICAgICAg
Z3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZzb3VyY2VGcmFtZSk7CisgICAgICAgICAgICBnc3RfYnVm
ZmVyX3VucmVmKGJ1ZmZlcik7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG5ld0J1ZmZl
cik7CisgICAgICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgIH0KKworICAg
ICAgICBjb25zdCBndWludDgqIHNvdXJjZSA9IHN0YXRpY19jYXN0PGd1aW50OCo+KEdTVF9WSURF
T19GUkFNRV9QTEFORV9EQVRBKCZzb3VyY2VGcmFtZSwgMCkpOworICAgICAgICBndWludDgqIGRl
c3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4Kj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RB
VEEoJmRlc3RpbmF0aW9uRnJhbWUsIDApKTsKKworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8
IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJnNvdXJjZUZyYW1lKTsgeCsrKSB7CisgICAgICAgICAg
ICBmb3IgKGludCB5ID0gMDsgeSA8IEdTVF9WSURFT19GUkFNRV9XSURUSCgmc291cmNlRnJhbWUp
OyB5KyspIHsKICNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCiAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBzb3VyY2VbM107CiAgICAgICAgICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSAoc291cmNlWzBdICogYWxwaGEgKyAxMjgpIC8gMjU1OwpAQCAtMjA1
LDExICsyMTEsMTIgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gd2Via2l0VmlkZW9TaW5rUmVuZGVy
KEdzdEJhc2VTaW5rKiBiYXNlU2luaywgR3N0QnVmZmVyKiBidWYKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCi0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc291cmNlSW5mbyk7
Ci0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAobmV3QnVmZmVyLCAmZGVzdGluYXRpb25JbmZvKTsK
KyAgICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZzb3VyY2VGcmFtZSk7CisgICAgICAgIGdz
dF92aWRlb19mcmFtZV91bm1hcCgmZGVzdGluYXRpb25GcmFtZSk7CiAgICAgICAgIGdzdF9idWZm
ZXJfdW5yZWYoYnVmZmVyKTsKICAgICAgICAgYnVmZmVyID0gcHJpdi0+YnVmZmVyID0gbmV3QnVm
ZmVyOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGhpcyBzaG91bGQgbGlrZWx5IHVzZSBhIGxv
d2VyIHByaW9yaXR5LCBidXQgZ2xpYiBjdXJyZW50bHkgc3RhcnZlcwogICAgIC8vIGxvd2VyIHBy
aW9yaXR5IHNvdXJjZXMuCkBAIC0zMzksMTIgKzM0NiwxNCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0VmlkZW9TaW5rU2V0Q2FwcyhHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdENhcHMqIGNhcHMp
CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKHNpbmssICJDdXJyZW50IGNhcHMgJSIgR1NUX1BUUl9G
T1JNQVQgIiwgc2V0dGluZyBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBwcml2LT5jdXJyZW50Q2Fw
cywgY2Fwcyk7CiAKLSAgICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICBpZiAoIWdzdF92aWRlb19p
bmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpIHsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZv
OworICAgIGdzdF92aWRlb19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3Rfdmlk
ZW9faW5mb19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2FwcykpIHsKICAgICAgICAgR1NUX0VSUk9S
X09CSkVDVChzaW5rLCAiSW52YWxpZCBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBjYXBzKTsKICAg
ICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAorICAgIHByaXYtPmluZm8gPSB2aWRlb0luZm87
CiAgICAgZ3N0X2NhcHNfcmVwbGFjZSgmcHJpdi0+Y3VycmVudENhcHMsIGNhcHMpOwogICAgIHJl
dHVybiBUUlVFOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230493</attachid>
            <date>2014-04-30 10:49:29 -0700</date>
            <delta_ts>2014-04-30 16:18:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132247-20140430194906.patch</filename>
            <type>text/plain</type>
            <size>15116</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0NzQ5ZWZhYjJmY2Ri
NDQ0MDY5MDhjNjg1NWE1NDA5ZTJhYTQ0MC4uMTViYmNjNTc0NGI4YmQyNjBmYjc4ZDM3NjQzYTVl
MTNjZGVkYjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTA0LTMwICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gVXNlIEdzdE1ldGFWaWRlbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0VmlkZW9TaW5rIHdlIGFubm91bmNlIHRoZSB1
c2FnZSBvZiBHc3RNZXRhVmlkZW8sIGJ1dCB3ZSBkbworICAgICAgICBub3QgdXNlIGl0IHdoZW4g
aGFuZGxpbmcgdGhlIHZpZGVvIGZyYW1lcy4gVGhpcyBtaWdodCBicmVhaworICAgICAgICBzb21l
IGRlY29kZXJzIGFuZCBmaWx0ZXJzIHRoYXQgcmVseSBvbiBidWZmZXIncyBtZXRhLCByYXRoZXIK
KyAgICAgICAgdGhhdCBpbiB0aGUgY2FwcyBzdHJ1Y3R1cmVzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZW5hYmxlcyB0aGUgdXNlIG9mIEdzdE1ldGFWaWRlbyB0aHJvdWdoIHRoZSBHc3RWaWRlb0Zy
YW1lCisgICAgICAgIEFQSS4gQW5kIGl0IGlzIHVzZWQgZXZlcnl3aGVyZSB0aGUgYnVmZmVyIG1h
cHBpbmcgaXMgcmVxdWlyZWQuCisKKyAgICAgICAgQWxzbyB0aGlzIHBhdGNoIGNoYW5nZXMgdG8g
bnVsbHB0ciB3aGVyZSB6ZXJvcyB3ZXJlIHVzZWQuCisKKyAgICAgICAgQWxzbywgY29tcGlsZSBj
b25kaXRpb25hbGx5IHRoZSB2aWRlbyBidWZmZXIgY29udmVyc2lvbiB3aGVuIGl0IGlzCisgICAg
ICAgIEFSR0IvQkdSQSwgc2luY2UgaXQgaXMgb25seSByZXF1aXJlZCBmb3IgdGhlIENhaXJvIGJh
Y2tlbmQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVu
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VmlkZW9TaXplQW5kRm9ybWF0
RnJvbUNhcHMpOiBpbml0IHRoZSBHc3RWaWRlb0luZm8gYmVmb3JlCisgICAgICAgIHVzZWQgYW5k
IHJlbW92ZSBjYXBzIGZpeGF0ZSBjaGVjayBzaW5jZSBpdCBpcyBkb25lIGJ5CisgICAgICAgIGdz
dF92aWRlb19pbmZvX2Zyb21fY2FwcygpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcDoKKyAgICAgICAgKEltYWdlR1N0cmVhbWVy
OjpJbWFnZUdTdHJlYW1lcik6IHVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZmZXIgbWFwcGluZwor
ICAgICAgICBhbmQgdW5tYXBwaW5nLgorICAgICAgICAoSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdT
dHJlYW1lcik6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUpOiBkaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmN1cnJlbnRW
aWRlb1NpbmtDYXBzKToKKyAgICAgICAgcmV0dXJuIG51bGxwdHIgaWYgZmFpbGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAod2Via2l0VmlkZW9TaW5rUmVuZGVyKTogcmVseSBvbiBHc3RWaWRlb0luZm8gcmF0
aGVyIHRoYW4gb24gdGhlCisgICAgICAgIGNhcHMuIFVzZSBHc3RWaWRlb0ZyYW1lIGZvciBidWZm
ZXIgbWFwcGluZyBhbmQgdW5tYXBwaW5nLiBBZGQgZ3VhcmRzCisgICAgICAgIGZvciBidWZmZXIg
dHJhbnNmb3JtYXRpb24sIHNpbmNlIGl0J3Mgb25seSB1c2VkIGJ5IENhaXJvLgorICAgICAgICAo
d2Via2l0VmlkZW9TaW5rRGlzcG9zZSk6IHJlbW92ZSBnbGliIHZlcnNpb24gZ3VhcmRzLgorICAg
ICAgICAod2Via2l0VmlkZW9TaW5rU2V0Q2Fwcyk6IHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIHBy
aXZhdGUKKyAgICAgICAgR3N0VmlkZW9JbmZvLgorCiAyMDE0LTA0LTI4ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgR09iamVjdCBET00gYmluZGluZ3Mgc3ltYm9scyBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmNwcAppbmRleCBhYWFjMDk4OTM4ZDdlN2E5NDMxYTRhMWRhNTU2MDU4YjJiMjg3
NjM2Li40MmE4MGQ3NmRlZDBhYWNlZDBhOTI5ZjQ4OTI3NWEyZGVjNDE5ZDA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcApAQCAtNTIsNyArNTIsOCBAQCBib29sIGdldFZpZGVv
U2l6ZUFuZEZvcm1hdEZyb21DYXBzKEdzdENhcHMqIGNhcHMsIFdlYkNvcmU6OkludFNpemUmIHNp
emUsIEdzdFZpZAogewogICAgIEdzdFZpZGVvSW5mbyBpbmZvOwogCi0gICAgaWYgKCFnc3RfY2Fw
c19pc19maXhlZChjYXBzKSB8fCAhZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBjYXBz
KSkKKyAgICBnc3RfdmlkZW9faW5mb19pbml0KCZpbmZvKTsKKyAgICBpZiAoIWdzdF92aWRlb19p
bmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGZvcm1hdCA9IEdTVF9WSURFT19JTkZPX0ZPUk1BVCgmaW5mbyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ci5oCmluZGV4IDM4YmYzYjRkMWFkMTNiNjI3NjQxMTc2NmFhZDJiYTE0MGM5NmFiMTkuLmM5ZDJm
YjRlOTE1NzQ5YWU1ODRmMDFiN2I3Y2JjODVkMGYzYTc5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogCiAj
aW5jbHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgogCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
NjQsOCArNjUsNyBAQCBjbGFzcyBJbWFnZUdTdHJlYW1lciA6IHB1YmxpYyBSZWZDb3VudGVkPElt
YWdlR1N0cmVhbWVyPiB7CiAgICAgICAgIEZsb2F0UmVjdCBtX2Nyb3BSZWN0OwogCiAjaWYgVVNF
KENBSVJPKQotICAgICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAgICAgIEdz
dE1hcEluZm8gbV9tYXBJbmZvOworICAgICAgICBHc3RWaWRlb0ZyYW1lIG1fdmlkZW9GcmFtZTsK
ICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKaW5k
ZXggYjIxYWNhNzYwYzkwYmEyYzE2NjhmZWFhMTEzZDg5YjVlZTVjOTYwYi4uYjE1M2YwOWVjMTli
ZDhiY2Q0NDBmZmQ0ZjliOTJkZDQwOTFkMmZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1l
ckNhaXJvLmNwcApAQCAtMzMsMjQgKzMzLDMyIEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogSW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdz
dEJ1ZmZlciogYnVmZmVyLCBHc3RDYXBzKiBjYXBzKQotICAgIDogbV9idWZmZXIoYnVmZmVyKQog
ewotICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdDsKLSAgICBJbnRTaXplIHNpemU7Ci0gICAgaW50
IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwg
c3RyaWRlOwotICAgIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKGNhcHMsIHNpemUsIGZv
cm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5h
dG9yLCBzdHJpZGUpOworICAgIEdzdFZpZGVvSW5mbyB2aWRlb0luZm87CisgICAgZ3N0X3ZpZGVv
X2luZm9faW5pdCgmdmlkZW9JbmZvKTsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2Fw
cygmdmlkZW9JbmZvLCBjYXBzKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgZ3N0X2J1ZmZlcl9t
YXAoYnVmZmVyLCAmbV9tYXBJbmZvLCBHU1RfTUFQX1JFQUQpOwotICAgIHVuc2lnbmVkIGNoYXIq
IGJ1ZmZlckRhdGEgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihtX21hcEluZm8u
ZGF0YSk7CisgICAgLy8gUmlnaHQgbm93IHRoZSBUZXh0dXJlTWFwcGVyIG9ubHkgc3VwcG9ydHMg
Y2hyb21hcyB3aXRoIG9uZSBwbGFuZQorICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19OX1BMQU5F
UygmdmlkZW9JbmZvKSA9PSAxKTsKKworICAgIGlmICghZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmbV92
aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBidWZmZXIsIEdTVF9NQVBfUkVBRCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlckRhdGEgPSByZWludGVycHJldF9jYXN0
PHVuc2lnbmVkIGNoYXIqPihHU1RfVklERU9fRlJBTUVfUExBTkVfREFUQSgmbV92aWRlb0ZyYW1l
LCAwKSk7CiAKICAgICBjYWlyb19mb3JtYXRfdCBjYWlyb0Zvcm1hdDsKICNpZiBHX0JZVEVfT1JE
RVIgPT0gR19MSVRUTEVfRU5ESUFOCi0gICAgY2Fpcm9Gb3JtYXQgPSAoZm9ybWF0ID09IEdTVF9W
SURFT19GT1JNQVRfQkdSQSkgPyBDQUlST19GT1JNQVRfQVJHQjMyIDogQ0FJUk9fRk9STUFUX1JH
QjI0OworICAgIGNhaXJvRm9ybWF0ID0gKEdTVF9WSURFT19GUkFNRV9GT1JNQVQoJm1fdmlkZW9G
cmFtZSkgPT0gR1NUX1ZJREVPX0ZPUk1BVF9CR1JBKSA/IENBSVJPX0ZPUk1BVF9BUkdCMzIgOiBD
QUlST19GT1JNQVRfUkdCMjQ7CiAjZWxzZQotICAgIGNhaXJvRm9ybWF0ID0gKGZvcm1hdCA9PSBH
U1RfVklERU9fRk9STUFUX0FSR0IpID8gQ0FJUk9fRk9STUFUX0FSR0IzMiA6IENBSVJPX0ZPUk1B
VF9SR0IyNDsKKyAgICBjYWlyb0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3Zp
ZGVvRnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRfQVJHQikgPyBDQUlST19GT1JNQVRfQVJHQjMy
IDogQ0FJUk9fRk9STUFUX1JHQjI0OwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2Rh
dGEoYnVmZmVyRGF0YSwgY2Fpcm9Gb3JtYXQsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
c3RyaWRlKSk7CisgICAgaW50IHN0cmlkZSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9TVFJJREUo
Jm1fdmlkZW9GcmFtZSwgMCk7CisgICAgaW50IHdpZHRoID0gR1NUX1ZJREVPX0ZSQU1FX1dJRFRI
KCZtX3ZpZGVvRnJhbWUpOworICAgIGludCBoZWlnaHQgPSBHU1RfVklERU9fRlJBTUVfSEVJR0hU
KCZtX3ZpZGVvRnJhbWUpOworCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9
IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlckRhdGEs
IGNhaXJvRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKICAgICBBU1NFUlQoY2Fpcm9f
c3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpOwog
ICAgIG1faW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKHN1cmZhY2UucmVsZWFzZSgpKTsKIApA
QCAtNjcsNiArNzUsNiBAQCBJbWFnZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKCkKIAogICAg
IC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRoZSBpbWFnZSBpcyBk
ZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19zdXJmYWNlX3Qgd2Fz
IGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKS4KLSAg
ICBnc3RfYnVmZmVyX3VubWFwKG1fYnVmZmVyLmdldCgpLCAmbV9tYXBJbmZvKTsKKyAgICBnc3Rf
dmlkZW9fZnJhbWVfdW5tYXAoJm1fdmlkZW9GcmFtZSk7CiB9CiAjZW5kaWYgLy8gVVNFKEdTVFJF
QU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcAppbmRleCA4MmI2YWRlODZiZGUzMzczN2FjOTU4NWU1ZTZmYTI0ZTI3NDA2OWVhLi41
ZTMyYmUyNmQ5YmRjMzc2OGQyMzYzMGE3MzNiZmVjOTIxNTU5MDcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaW5jbHVkZSA8Z3N0L2F1
ZGlvL3N0cmVhbXZvbHVtZS5oPgorI2luY2x1ZGUgPGdzdC92aWRlby9nc3R2aWRlb21ldGEuaD4K
IAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDEsIDApICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKQEAgLTI3OCwyMiArMjc5LDE5IEBAIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
dXBkYXRlVGV4dHVyZShUZXh0dXJlCiB7CiAgICAgR011dGV4TG9ja2VyIGxvY2sobV9idWZmZXJN
dXRleCk7CiAgICAgaWYgKCFtX2J1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgY29uc3Qgdm9pZCogc3JjRGF0YSA9IDA7CiAgICAgR1JlZlB0
cjxHc3RDYXBzPiBjYXBzID0gY3VycmVudFZpZGVvU2lua0NhcHMoKTsKICAgICBpZiAoIWNhcHMp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgSW50U2l6ZSBzaXplOwotICAgIEdzdFZpZGVvRm9y
bWF0IGZvcm1hdDsKLSAgICBpbnQgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3Bl
Y3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJpZGU7Ci0gICAgaWYgKCFnZXRWaWRlb1NpemVBbmRGb3Jt
YXRGcm9tQ2FwcyhjYXBzLmdldCgpLCBzaXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1l
cmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29uc3QgR3N0VmlkZW9Gb3Jt
YXRJbmZvKiBmb3JtYXRJbmZvID0gZ3N0X3ZpZGVvX2Zvcm1hdF9nZXRfaW5mbyhmb3JtYXQpOwor
ICAgIEdzdFZpZGVvSW5mbyB2aWRlb0luZm87CisgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmdmlk
ZW9JbmZvKTsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZvLCBj
YXBzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wo
c2l6ZSwgR1NUX1ZJREVPX0ZPUk1BVF9JTkZPX0hBU19BTFBIQShmb3JtYXRJbmZvKSA/IEJpdG1h
cFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiBCaXRtYXBUZXh0dXJlOjpOb0ZsYWcpOworICAgIElu
dFNpemUgc2l6ZSA9IEludFNpemUoR1NUX1ZJREVPX0lORk9fV0lEVEgoJnZpZGVvSW5mbyksIEdT
VF9WSURFT19JTkZPX0hFSUdIVCgmdmlkZW9JbmZvKSk7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHRleHR1cmUgPSB0ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKHNpemUs
IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/IEJpdG1hcFRleHR1cmU6OlN1
cHBvcnRzQWxwaGEgOiBCaXRtYXBUZXh0dXJlOjpOb0ZsYWcpOwogCiAjaWYgR1NUX0NIRUNLX1ZF
UlNJT04oMSwgMSwgMCkKICAgICBHc3RWaWRlb0dMVGV4dHVyZVVwbG9hZE1ldGEqIG1ldGE7CkBA
IC0zMDgsMTMgKzMwNiwxOCBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUoVGV4dHVyZQogICAgIH0KICNlbmRp
ZgogCi0gICAgR3N0TWFwSW5mbyBzcmNJbmZvOwotICAgIGdzdF9idWZmZXJfbWFwKG1fYnVmZmVy
LCAmc3JjSW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICBzcmNEYXRhID0gc3JjSW5mby5kYXRhOwor
ICAgIC8vIFJpZ2h0IG5vdyB0aGUgVGV4dHVyZU1hcHBlciBvbmx5IHN1cHBvcnRzIGNocm9tYXMg
d2l0aCBvbmUgcGxhbmUKKyAgICBBU1NFUlQoR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJnZpZGVv
SW5mbykgPT0gMSk7CiAKKyAgICBHc3RWaWRlb0ZyYW1lIHZpZGVvRnJhbWU7CisgICAgaWYgKCFn
c3RfdmlkZW9fZnJhbWVfbWFwKCZ2aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBtX2J1ZmZlciwgR1NU
X01BUF9SRUFEKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpbnQgc3RyaWRlID0g
R1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmdmlkZW9GcmFtZSwgMCk7CisgICAgY29uc3Qg
dm9pZCogc3JjRGF0YSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZ2aWRlb0ZyYW1lLCAw
KTsKICAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0
KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwgMCks
IHN0cmlkZSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURh
dGEpOworICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmdmlkZW9GcmFtZSk7CiAKLSAgICBnc3Rf
YnVmZmVyX3VubWFwKG1fYnVmZmVyLCAmc3JjSW5mbyk7CiAgICAgcmV0dXJuIHRleHR1cmU7CiB9
CiAjZW5kaWYKQEAgLTQxMSw3ICs0MTQsNyBAQCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptb3ZpZUxvYWRUeXBlKCkgY29ucwogR1Jl
ZlB0cjxHc3RDYXBzPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjdXJyZW50Vmlk
ZW9TaW5rQ2FwcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3dlYmtpdFZpZGVvU2luaykKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgR1JlZlB0cjxHc3RD
YXBzPiBjdXJyZW50Q2FwczsKICAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV93ZWJraXRWaWRl
b1NpbmsuZ2V0KCkpLCAiY3VycmVudC1jYXBzIiwgJmN1cnJlbnRDYXBzLm91dFB0cigpLCBOVUxM
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggNGMyYWE3NjhhYjlhYjJl
Y2U5ZWYwNzk3ZDU5NDQ1Mzg1MGQ4ZTM5NS4uOGIzZmIzMjIyNzg2YjBhOTVkM2RkYThlOWM0ZTZj
MWM1MDBjMzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTE0NSwy
MSArMTQ1LDE0IEBAIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdFZpZGVvU2lua1JlbmRlcihH
c3RCYXNlU2luayogYmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmCiAKICAgICBwcml2LT5idWZmZXIg
PSBnc3RfYnVmZmVyX3JlZihidWZmZXIpOwogCi0gICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzOwog
ICAgIC8vIFRoZSB2aWRlbyBpbmZvIHN0cnVjdHVyZSBpcyB2YWxpZCBvbmx5IGlmIHRoZSBzaW5r
IGhhbmRsZWQgYW4gYWxsb2NhdGlvbiBxdWVyeS4KLSAgICBpZiAoR1NUX1ZJREVPX0lORk9fRk9S
TUFUKCZwcml2LT5pbmZvKSAhPSBHU1RfVklERU9fRk9STUFUX1VOS05PV04pCi0gICAgICAgIGNh
cHMgPSBhZG9wdEdSZWYoZ3N0X3ZpZGVvX2luZm9fdG9fY2FwcygmcHJpdi0+aW5mbykpOwotICAg
IGVsc2UKLSAgICAgICAgY2FwcyA9IHByaXYtPmN1cnJlbnRDYXBzOwotCi0gICAgR3N0VmlkZW9G
b3JtYXQgZm9ybWF0OwotICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZTsKLSAgICBpbnQgcGl4ZWxB
c3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBzdHJpZGU7
Ci0gICAgaWYgKCFnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhjYXBzLmdldCgpLCBzaXpl
LCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5v
bWluYXRvciwgc3RyaWRlKSkgeworICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1hdCA9IEdTVF9WSURF
T19JTkZPX0ZPUk1BVCgmcHJpdi0+aW5mbyk7CisgICAgaWYgKGZvcm1hdCA9PSBHU1RfVklERU9f
Rk9STUFUX1VOS05PV04pIHsKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOwogICAg
ICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CiAgICAgfQogCisjaWYgIShVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpKQogICAgIC8vIENhaXJvJ3Mg
QVJHQiBoYXMgcHJlLW11bHRpcGxpZWQgYWxwaGEgd2hpbGUgR1N0cmVhbWVyJ3MgZG9lc24ndC4K
ICAgICAvLyBIZXJlIHdlIGNvbnZlcnQgdG8gQ2Fpcm8ncyBBUkdCLgogICAgIGlmIChmb3JtYXQg
PT0gR1NUX1ZJREVPX0ZPUk1BVF9BUkdCIHx8IGZvcm1hdCA9PSBHU1RfVklERU9fRk9STUFUX0JH
UkEpIHsKQEAgLTE3MSwyMiArMTY0LDM1IEBAIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdFZp
ZGVvU2lua1JlbmRlcihHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmCiAgICAg
ICAgIEdzdEJ1ZmZlciogbmV3QnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlR3N0QnVmZmVyKGJ1ZmZl
cik7CiAKICAgICAgICAgLy8gQ2hlY2sgaWYgYWxsb2NhdGlvbiBmYWlsZWQuCi0gICAgICAgIGlm
IChVTkxJS0VMWSghbmV3QnVmZmVyKSkKKyAgICAgICAgaWYgKFVOTElLRUxZKCFuZXdCdWZmZXIp
KSB7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CiAgICAgICAgICAgICBy
ZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBkb24ndCB1
c2UgQ29sb3I6OnByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkgaGVyZSBiZWNhdXNlCiAgICAg
ICAgIC8vIG9uZSBmdW5jdGlvbiBjYWxsIHBlciB2aWRlbyBwaXhlbCBpcyBqdXN0IHRvbyBleHBl
bnNpdmU6CiAgICAgICAgIC8vIEZvciA3MjBwL1BBTCBmb3IgZXhhbXBsZSB0aGlzIG1lYW5zIDEy
ODAqNzIwKjI1PTIzMDQwMDAwCiAgICAgICAgIC8vIGZ1bmN0aW9uIGNhbGxzIHBlciBzZWNvbmQh
Ci0gICAgICAgIEdzdE1hcEluZm8gc291cmNlSW5mbzsKLSAgICAgICAgR3N0TWFwSW5mbyBkZXN0
aW5hdGlvbkluZm87Ci0gICAgICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNvdXJjZUluZm8s
IEdTVF9NQVBfUkVBRCk7Ci0gICAgICAgIGNvbnN0IGd1aW50OCogc291cmNlID0gY29uc3RfY2Fz
dDxndWludDgqPihzb3VyY2VJbmZvLmRhdGEpOwotICAgICAgICBnc3RfYnVmZmVyX21hcChuZXdC
dWZmZXIsICZkZXN0aW5hdGlvbkluZm8sIEdTVF9NQVBfV1JJVEUpOwotICAgICAgICBndWludDgq
IGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4Kj4oZGVzdGluYXRpb25JbmZvLmRhdGEp
OwotCi0gICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgc2l6ZS5oZWlnaHQoKTsgeCsrKSB7Ci0g
ICAgICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IHNpemUud2lkdGgoKTsgeSsrKSB7CisgICAg
ICAgIEdzdFZpZGVvRnJhbWUgc291cmNlRnJhbWU7CisgICAgICAgIEdzdFZpZGVvRnJhbWUgZGVz
dGluYXRpb25GcmFtZTsKKworICAgICAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAoJnNvdXJj
ZUZyYW1lLCAmcHJpdi0+aW5mbywgYnVmZmVyLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgICAgICAg
ICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVm
KG5ld0J1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKCFnc3RfdmlkZW9fZnJhbWVfbWFwKCZkZXN0aW5hdGlvbkZyYW1lLCAm
cHJpdi0+aW5mbywgbmV3QnVmZmVyLCBHU1RfTUFQX1dSSVRFKSkgeworICAgICAgICAgICAgZ3N0
X3ZpZGVvX2ZyYW1lX3VubWFwKCZzb3VyY2VGcmFtZSk7CisgICAgICAgICAgICBnc3RfYnVmZmVy
X3VucmVmKGJ1ZmZlcik7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG5ld0J1ZmZlcik7
CisgICAgICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zdCBndWludDgqIHNvdXJjZSA9IHN0YXRpY19jYXN0PGd1aW50OCo+KEdTVF9WSURFT19G
UkFNRV9QTEFORV9EQVRBKCZzb3VyY2VGcmFtZSwgMCkpOworICAgICAgICBndWludDgqIGRlc3Rp
bmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4Kj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEo
JmRlc3RpbmF0aW9uRnJhbWUsIDApKTsKKworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IEdT
VF9WSURFT19GUkFNRV9IRUlHSFQoJnNvdXJjZUZyYW1lKTsgeCsrKSB7CisgICAgICAgICAgICBm
b3IgKGludCB5ID0gMDsgeSA8IEdTVF9WSURFT19GUkFNRV9XSURUSCgmc291cmNlRnJhbWUpOyB5
KyspIHsKICNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCiAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBzb3VyY2VbM107CiAgICAgICAgICAgICAgICAgZGVz
dGluYXRpb25bMF0gPSAoc291cmNlWzBdICogYWxwaGEgKyAxMjgpIC8gMjU1OwpAQCAtMjA1LDEx
ICsyMTEsMTIgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gd2Via2l0VmlkZW9TaW5rUmVuZGVyKEdz
dEJhc2VTaW5rKiBiYXNlU2luaywgR3N0QnVmZmVyKiBidWYKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCi0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc291cmNlSW5mbyk7Ci0g
ICAgICAgIGdzdF9idWZmZXJfdW5tYXAobmV3QnVmZmVyLCAmZGVzdGluYXRpb25JbmZvKTsKKyAg
ICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZzb3VyY2VGcmFtZSk7CisgICAgICAgIGdzdF92
aWRlb19mcmFtZV91bm1hcCgmZGVzdGluYXRpb25GcmFtZSk7CiAgICAgICAgIGdzdF9idWZmZXJf
dW5yZWYoYnVmZmVyKTsKICAgICAgICAgYnVmZmVyID0gcHJpdi0+YnVmZmVyID0gbmV3QnVmZmVy
OwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGhpcyBzaG91bGQgbGlrZWx5IHVzZSBhIGxvd2Vy
IHByaW9yaXR5LCBidXQgZ2xpYiBjdXJyZW50bHkgc3RhcnZlcwogICAgIC8vIGxvd2VyIHByaW9y
aXR5IHNvdXJjZXMuCkBAIC0zMzksMTIgKzM0NiwxNCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0
VmlkZW9TaW5rU2V0Q2FwcyhHc3RCYXNlU2luayogYmFzZVNpbmssIEdzdENhcHMqIGNhcHMpCiAK
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNpbmssICJDdXJyZW50IGNhcHMgJSIgR1NUX1BUUl9GT1JN
QVQgIiwgc2V0dGluZyBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBwcml2LT5jdXJyZW50Q2Fwcywg
Y2Fwcyk7CiAKLSAgICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICBpZiAoIWdzdF92aWRlb19pbmZv
X2Zyb21fY2FwcygmaW5mbywgY2FwcykpIHsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZvOwor
ICAgIGdzdF92aWRlb19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3RfdmlkZW9f
aW5mb19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2FwcykpIHsKICAgICAgICAgR1NUX0VSUk9SX09C
SkVDVChzaW5rLCAiSW52YWxpZCBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBjYXBzKTsKICAgICAg
ICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAorICAgIHByaXYtPmluZm8gPSB2aWRlb0luZm87CiAg
ICAgZ3N0X2NhcHNfcmVwbGFjZSgmcHJpdi0+Y3VycmVudENhcHMsIGNhcHMpOwogICAgIHJldHVy
biBUUlVFOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230823</attachid>
            <date>2014-05-05 06:18:32 -0700</date>
            <delta_ts>2014-05-05 06:18:32 -0700</delta_ts>
            <desc>WebKitGTK+-2.2.x backport</desc>
            <filename>0001-GStreamer-Use-GstMetaVideo-https-bugs.webkit.org-sho.patch</filename>
            <type>text/plain</type>
            <size>16711</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSAxZTc3YzQzMmRlNjc2YzAxZDQ0NGM2MzAwNTQzYzFmMGE5NGM2MGYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAidmphcXVlekBpZ2FsaWEuY29tIgogPHZqYXF1ZXpAaWdhbGlh
LmNvbUAyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CkRhdGU6IFdlZCwgMzAg
QXByIDIwMTQgMjM6MTc6MzYgKzAwMDAKU3ViamVjdDogW1BBVENIXSBbR1N0cmVhbWVyXSBVc2Ug
R3N0TWV0YVZpZGVvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMy
MjQ3CgpSZXZpZXdlZCBieSBQaGlsaXBwZSBOb3JtYW5kLgoKSW4gV2ViS2l0VmlkZW9TaW5rIHdl
IGFubm91bmNlIHRoZSB1c2FnZSBvZiBHc3RNZXRhVmlkZW8sIGJ1dCB3ZSBkbwpub3QgdXNlIGl0
IHdoZW4gaGFuZGxpbmcgdGhlIHZpZGVvIGZyYW1lcy4gVGhpcyBtaWdodCBicmVhawpzb21lIGRl
Y29kZXJzIGFuZCBmaWx0ZXJzIHRoYXQgcmVseSBvbiBidWZmZXIncyBtZXRhLCByYXRoZXIKdGhh
dCBpbiB0aGUgY2FwcyBzdHJ1Y3R1cmVzLgoKVGhpcyBwYXRjaCBlbmFibGVzIHRoZSB1c2Ugb2Yg
R3N0TWV0YVZpZGVvIHRocm91Z2ggdGhlIEdzdFZpZGVvRnJhbWUKQVBJLiBBbmQgaXQgaXMgdXNl
ZCBldmVyeXdoZXJlIHRoZSBidWZmZXIgbWFwcGluZyBpcyByZXF1aXJlZC4KCkFsc28gdGhpcyBw
YXRjaCBjaGFuZ2VzIHRvIG51bGxwdHIgd2hlcmUgemVyb3Mgd2VyZSB1c2VkLgoKQWxzbywgY29t
cGlsZSBjb25kaXRpb25hbGx5IHRoZSB2aWRlbyBidWZmZXIgY29udmVyc2lvbiB3aGVuIGl0IGlz
CkFSR0IvQkdSQSwgc2luY2UgaXQgaXMgb25seSByZXF1aXJlZCBmb3IgdGhlIENhaXJvIGJhY2tl
bmQuCgpObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBjdXJyZW50IHRlc3RzLgoKKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcDoKKFdlYkNv
cmU6OmdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKTogaW5pdCB0aGUgR3N0VmlkZW9JbmZv
IGJlZm9yZQp1c2VkIGFuZCByZW1vdmUgY2FwcyBmaXhhdGUgY2hlY2sgc2luY2UgaXQgaXMgZG9u
ZSBieQpnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoKS4KKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaDoKKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VHU3RyZWFtZXJDYWlyby5jcHA6CihJbWFnZUdTdHJlYW1lcjo6SW1hZ2VHU3RyZWFtZXIpOiB1
c2UgR3N0VmlkZW9GcmFtZSBmb3IgYnVmZmVyIG1hcHBpbmcKYW5kIHVubWFwcGluZy4KKEltYWdl
R1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFtZXIpOiBkaXR0by4KKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CihXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKTogZGl0dG8uCihX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjdXJyZW50VmlkZW9TaW5r
Q2Fwcyk6CnJldHVybiBudWxscHRyIGlmIGZhaWxlZC4KKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKHdlYmtpdFZpZGVvU2lua1JlbmRlcik6IHJl
bHkgb24gR3N0VmlkZW9JbmZvIHJhdGhlciB0aGFuIG9uIHRoZQpjYXBzLiBVc2UgR3N0VmlkZW9G
cmFtZSBmb3IgYnVmZmVyIG1hcHBpbmcgYW5kIHVubWFwcGluZy4gQWRkIGd1YXJkcwpmb3IgYnVm
ZmVyIHRyYW5zZm9ybWF0aW9uLCBzaW5jZSBpdCdzIG9ubHkgdXNlZCBieSBDYWlyby4KKHdlYmtp
dFZpZGVvU2lua0Rpc3Bvc2UpOiByZW1vdmUgZ2xpYiB2ZXJzaW9uIGd1YXJkcy4KKHdlYmtpdFZp
ZGVvU2lua1NldENhcHMpOiB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBwcml2YXRlCkdzdFZpZGVv
SW5mby4KCmdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtp
dC90cnVua0AxNjgwNjAgMjY4ZjQ1Y2MtY2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjCgpDb25m
bGljdHM6CglTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyVXRpbGl0aWVzLmNwcAoJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0ltYWdlR1N0cmVhbWVyLmgKCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAoJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCglT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcAotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclZlcnNpb25pbmcuY3BwICAgICB8ICAzICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmggICB8ICAzICstCiAuLi4vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwICAgICB8IDMwICsrKysrKysrKy0tLS0KIC4uLi9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgIHwgMzUgKysrKysr
KysrKystLS0tCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAg
ICAgICB8IDUyICsrKysrKysrKysrKysrKy0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTMyIGlu
c2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MGQxMThlLi4zOGIx
MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTQtMDQtMzAgIFbDrWN0b3IgTWFu
dWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSBVc2UgR3N0TWV0YVZpZGVvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzIyNDcKKworICAgICAgICBSZXZpZXdlZCBieSBQaGlsaXBwZSBOb3Jt
YW5kLgorCisgICAgICAgIEluIFdlYktpdFZpZGVvU2luayB3ZSBhbm5vdW5jZSB0aGUgdXNhZ2Ug
b2YgR3N0TWV0YVZpZGVvLCBidXQgd2UgZG8KKyAgICAgICAgbm90IHVzZSBpdCB3aGVuIGhhbmRs
aW5nIHRoZSB2aWRlbyBmcmFtZXMuIFRoaXMgbWlnaHQgYnJlYWsKKyAgICAgICAgc29tZSBkZWNv
ZGVycyBhbmQgZmlsdGVycyB0aGF0IHJlbHkgb24gYnVmZmVyJ3MgbWV0YSwgcmF0aGVyCisgICAg
ICAgIHRoYXQgaW4gdGhlIGNhcHMgc3RydWN0dXJlcy4KKworICAgICAgICBUaGlzIHBhdGNoIGVu
YWJsZXMgdGhlIHVzZSBvZiBHc3RNZXRhVmlkZW8gdGhyb3VnaCB0aGUgR3N0VmlkZW9GcmFtZQor
ICAgICAgICBBUEkuIEFuZCBpdCBpcyB1c2VkIGV2ZXJ5d2hlcmUgdGhlIGJ1ZmZlciBtYXBwaW5n
IGlzIHJlcXVpcmVkLgorCisgICAgICAgIEFsc28gdGhpcyBwYXRjaCBjaGFuZ2VzIHRvIG51bGxw
dHIgd2hlcmUgemVyb3Mgd2VyZSB1c2VkLgorCisgICAgICAgIEFsc28sIGNvbXBpbGUgY29uZGl0
aW9uYWxseSB0aGUgdmlkZW8gYnVmZmVyIGNvbnZlcnNpb24gd2hlbiBpdCBpcworICAgICAgICBB
UkdCL0JHUkEsIHNpbmNlIGl0IGlzIG9ubHkgcmVxdWlyZWQgZm9yIHRoZSBDYWlybyBiYWNrZW5k
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRp
bGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21D
YXBzKTogaW5pdCB0aGUgR3N0VmlkZW9JbmZvIGJlZm9yZQorICAgICAgICB1c2VkIGFuZCByZW1v
dmUgY2FwcyBmaXhhdGUgY2hlY2sgc2luY2UgaXQgaXMgZG9uZSBieQorICAgICAgICBnc3Rfdmlk
ZW9faW5mb19mcm9tX2NhcHMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFnZUdTdHJlYW1lcjo6SW1h
Z2VHU3RyZWFtZXIpOiB1c2UgR3N0VmlkZW9GcmFtZSBmb3IgYnVmZmVyIG1hcHBpbmcKKyAgICAg
ICAgYW5kIHVubWFwcGluZy4KKyAgICAgICAgKEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKTogZGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjdXJyZW50VmlkZW9T
aW5rQ2Fwcyk6CisgICAgICAgIHJldHVybiBudWxscHRyIGlmIGZhaWxlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKHdlYmtpdFZpZGVvU2lua1JlbmRlcik6IHJlbHkgb24gR3N0VmlkZW9JbmZvIHJhdGhlciB0
aGFuIG9uIHRoZQorICAgICAgICBjYXBzLiBVc2UgR3N0VmlkZW9GcmFtZSBmb3IgYnVmZmVyIG1h
cHBpbmcgYW5kIHVubWFwcGluZy4gQWRkIGd1YXJkcworICAgICAgICBmb3IgYnVmZmVyIHRyYW5z
Zm9ybWF0aW9uLCBzaW5jZSBpdCdzIG9ubHkgdXNlZCBieSBDYWlyby4KKyAgICAgICAgKHdlYmtp
dFZpZGVvU2lua0Rpc3Bvc2UpOiByZW1vdmUgZ2xpYiB2ZXJzaW9uIGd1YXJkcy4KKyAgICAgICAg
KHdlYmtpdFZpZGVvU2lua1NldENhcHMpOiB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBwcml2YXRl
CisgICAgICAgIEdzdFZpZGVvSW5mby4KKwogMjAxNC0wMy0yNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNjI2NzkpOiBQb3N0ZXIgaW1h
Z2UgdmlzaWJsZSB1bmRlciB0aGUgdmlkZW8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5n
LmNwcAppbmRleCBiMDcwZmZiLi4wMmZjYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNp
b25pbmcuY3BwCkBAIC05MSw3ICs5MSw4IEBAIGJvb2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJv
bUNhcHMoR3N0Q2FwcyogY2FwcywgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgR3N0VmlkCiAjaWZk
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBHc3RWaWRlb0luZm8gaW5mbzsKIAotICAgIGlmICgh
Z3N0X2NhcHNfaXNfZml4ZWQoY2FwcykgfHwgIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5m
bywgY2FwcykpCisgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmaW5mbyk7CisgICAgaWYgKCFnc3Rf
dmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGNhcHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBmb3JtYXQgPSBHU1RfVklERU9fSU5GT19GT1JNQVQoJmluZm8pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VH
U3RyZWFtZXIuaAppbmRleCA4YjQ2Y2Q2Li5mMzg4NDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIu
aApAQCAtNjEsOCArNjEsNyBAQCBjbGFzcyBJbWFnZUdTdHJlYW1lciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEltYWdlR1N0cmVhbWVyPiB7CiAgICAgICAgIEZsb2F0UmVjdCBtX2Nyb3BSZWN0OwogCiAj
aWYgVVNFKENBSVJPKSAmJiBkZWZpbmVkKEdTVF9BUElfVkVSU0lPTl8xKQotICAgICAgICBHUmVm
UHRyPEdzdEJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAgICAgIEdzdE1hcEluZm8gbV9tYXBJbmZvOwor
ICAgICAgICBHc3RWaWRlb0ZyYW1lIG1fdmlkZW9GcmFtZTsKICNlbmRpZgogICAgIH07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VHU3RyZWFtZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKaW5kZXggMzI4YzUzZS4uYjFmYzUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcApAQCAtMzYsMTkgKzM2LDMzIEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogSW1hZ2VH
U3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdEJ1ZmZlciogYnVmZmVyLCBHc3RDYXBzKiBjYXBz
KQotI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCi0gICAgOiBtX2J1ZmZlcihidWZmZXIpCi0jZW5k
aWYKIHsKICAgICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQ7CiAgICAgSW50U2l6ZSBzaXplOwotICAg
IGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0
b3IsIHN0cmlkZTsKLSAgICBnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhjYXBzLCBzaXpl
LCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5v
bWluYXRvciwgc3RyaWRlKTsKKyAgICBpbnQgc3RyaWRlOwogCiAjaWZkZWYgR1NUX0FQSV9WRVJT
SU9OXzEKLSAgICBnc3RfYnVmZmVyX21hcChidWZmZXIsICZtX21hcEluZm8sIEdTVF9NQVBfUkVB
RCk7Ci0gICAgdW5zaWduZWQgY2hhciogYnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5z
aWduZWQgY2hhcio+KG1fbWFwSW5mby5kYXRhKTsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZv
OworICAgIGdzdF92aWRlb19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3Rfdmlk
ZW9faW5mb19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2FwcykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIFJpZ2h0IG5vdyB0aGUgVGV4dHVyZU1hcHBlciBvbmx5IHN1cHBvcnRzIGNocm9tYXMg
d2l0aCBvbmUgcGxhbmUKKyAgICBBU1NFUlQoR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJnZpZGVv
SW5mbykgPT0gMSk7CisKKyAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAoJm1fdmlkZW9GcmFt
ZSwgJnZpZGVvSW5mbywgYnVmZmVyLCBHU1RfTUFQX1JFQUQpKQorICAgICAgICByZXR1cm47CisK
KyAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXJEYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCBjaGFyKj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEoJm1fdmlkZW9GcmFtZSwgMCkpOwor
CisgICAgZm9ybWF0ID0gR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKTsKKyAg
ICBzdHJpZGUgPSBHU1RfVklERU9fRlJBTUVfUExBTkVfU1RSSURFKCZtX3ZpZGVvRnJhbWUsIDAp
OworICAgIHNpemUuc2V0V2lkdGgoR1NUX1ZJREVPX0ZSQU1FX1dJRFRIKCZtX3ZpZGVvRnJhbWUp
KTsKKyAgICBzaXplLnNldEhlaWdodChHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZtX3ZpZGVvRnJh
bWUpKTsKICNlbHNlCisgICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNw
ZWN0UmF0aW9EZW5vbWluYXRvcjsKKyAgICBnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2Fwcyhj
YXBzLCBzaXplLCBmb3JtYXQsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0
UmF0aW9EZW5vbWluYXRvciwgc3RyaWRlKTsKKwogICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlckRh
dGEgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihHU1RfQlVGRkVSX0RBVEEoYnVm
ZmVyKSk7CiAjZW5kaWYKIApAQCAtNzksNyArOTMsNyBAQCBJbWFnZUdTdHJlYW1lcjo6fkltYWdl
R1N0cmVhbWVyKCkKICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIC8vIFdlIGtlZXAgdGhl
IGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRoZSBpbWFnZSBpcyBkZXN0cm95ZWQgYmVjYXVz
ZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19zdXJmYWNlX3Qgd2FzIGNyZWF0ZWQgdXNpbmcg
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKS4KLSAgICBnc3RfYnVmZmVyX3Vu
bWFwKG1fYnVmZmVyLmdldCgpLCAmbV9tYXBJbmZvKTsKKyAgICBnc3RfdmlkZW9fZnJhbWVfdW5t
YXAoJm1fdmlkZW9GcmFtZSk7CiAjZW5kaWYKIH0KICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDBiNDFlN2QuLmU3MGExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTMzMiwyOCArMzMyLDQxIEBAIFBhc3NS
ZWZQdHI8Qml0bWFwVGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBk
YXRlVGV4dHVyZShUZXh0dXJlCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAorICAgIEludFNp
emUgc2l6ZTsKKyAgICBpbnQgc3RyaWRlOworICAgIGJvb2wgdmlkZW9IYXNBbHBoYTsKICAgICBj
b25zdCB2b2lkKiBzcmNEYXRhID0gMDsKICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIEdS
ZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGN1cnJlbnRWaWRlb1NpbmtDYXBzKCk7CisgICAgaWYgKCFj
YXBzKQorICAgICAgICByZXR1cm4gMDsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZvOworICAg
IGdzdF92aWRlb19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3RfdmlkZW9faW5m
b19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2Fwcy5nZXQoKSkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc2l6ZS5zZXRXaWR0aChHU1RfVklERU9fSU5GT19XSURUSCgmdmlkZW9JbmZvKSk7Cisg
ICAgc2l6ZS5zZXRIZWlnaHQoR1NUX1ZJREVPX0lORk9fSEVJR0hUKCZ2aWRlb0luZm8pKTsKKyAg
ICB2aWRlb0hhc0FscGhhID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pOwog
I2Vsc2UKICAgICBHUmVmUHRyPEdzdENhcHM+IGNhcHMgPSBHU1RfQlVGRkVSX0NBUFMobV9idWZm
ZXIpOwotI2VuZGlmCiAgICAgaWYgKCFjYXBzKSB7CiAgICAgICAgIGdfbXV0ZXhfdW5sb2NrKG1f
YnVmZmVyTXV0ZXgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBJbnRTaXplIHNp
emU7CiAgICAgR3N0VmlkZW9Gb3JtYXQgZm9ybWF0OwotICAgIGludCBwaXhlbEFzcGVjdFJhdGlv
TnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZTsKKyAgICBpbnQg
cGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yOwog
ICAgIGlmICghZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMoY2Fwcy5nZXQoKSwgc2l6ZSwg
Zm9ybWF0LCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21p
bmF0b3IsIHN0cmlkZSkpIHsKICAgICAgICAgZ19tdXRleF91bmxvY2sobV9idWZmZXJNdXRleCk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGNvbnN0IEdzdFZpZGVvRm9ybWF0SW5m
byogZm9ybWF0SW5mbyA9IGdzdF92aWRlb19mb3JtYXRfZ2V0X2luZm8oZm9ybWF0KTsKKyAgICB2
aWRlb0hhc0FscGhhPSBHU1RfVklERU9fRk9STUFUX0lORk9fSEFTX0FMUEhBKGZvcm1hdEluZm8p
OworI2VuZGlmCiAKLSAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSA9IHRleHR1cmVN
YXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSwgR1NUX1ZJREVPX0ZPUk1BVF9JTkZP
X0hBU19BTFBIQShmb3JtYXRJbmZvKSA/IEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiBC
aXRtYXBUZXh0dXJlOjpOb0ZsYWcpOworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJl
ID0gdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplLCB2aWRlb0hhc0Fs
cGhhID8gQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1cmU6Ok5vRmxh
Zyk7CiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAxLCAwKQogICAgIEdzdFZpZGVvR0xUZXh0
dXJlVXBsb2FkTWV0YSogbWV0YTsKQEAgLTM3MSw5ICszODQsMTUgQEAgUGFzc1JlZlB0cjxCaXRt
YXBUZXh0dXJlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJl
KFRleHR1cmUKICNlbmRpZgogCiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKLSAgICBHc3RNYXBJ
bmZvIHNyY0luZm87Ci0gICAgZ3N0X2J1ZmZlcl9tYXAobV9idWZmZXIsICZzcmNJbmZvLCBHU1Rf
TUFQX1JFQUQpOwotICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7CisgICAgLy8gUmlnaHQgbm93
IHRoZSBUZXh0dXJlTWFwcGVyIG9ubHkgc3VwcG9ydHMgY2hyb21hcyB3aXRoIG9uZSBwbGFuZQor
ICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19OX1BMQU5FUygmdmlkZW9JbmZvKSA9PSAxKTsKKwor
ICAgIEdzdFZpZGVvRnJhbWUgdmlkZW9GcmFtZTsKKyAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9t
YXAoJnZpZGVvRnJhbWUsICZ2aWRlb0luZm8sIG1fYnVmZmVyLCBHU1RfTUFQX1JFQUQpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0cmlkZSA9IEdTVF9WSURFT19GUkFNRV9QTEFO
RV9TVFJJREUoJnZpZGVvRnJhbWUsIDApOworICAgIHNyY0RhdGEgPSBHU1RfVklERU9fRlJBTUVf
UExBTkVfREFUQSgmdmlkZW9GcmFtZSwgMCk7CiAjZWxzZQogICAgIHNyY0RhdGEgPSBHU1RfQlVG
RkVSX0RBVEEobV9idWZmZXIpOwogI2VuZGlmCkBAIC0zODEsNyArNDAwLDcgQEAgUGFzc1JlZlB0
cjxCaXRtYXBUZXh0dXJlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVU
ZXh0dXJlKFRleHR1cmUKICAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJD
b3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50
UG9pbnQoMCwgMCksIHN0cmlkZSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3Jp
Z2luYWxJbWFnZURhdGEpOwogCiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKLSAgICBnc3RfYnVm
ZmVyX3VubWFwKG1fYnVmZmVyLCAmc3JjSW5mbyk7CisgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFw
KCZ2aWRlb0ZyYW1lKTsKICNlbmRpZgogCiAgICAgZ19tdXRleF91bmxvY2sobV9idWZmZXJNdXRl
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDQzNDBmNDAuLjFlOTE5
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0xNzgsNiArMTc4LDgg
QEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gd2Via2l0VmlkZW9TaW5rUmVuZGVyKEdzdEJhc2VTaW5r
KiBiYXNlU2luaywgR3N0QnVmZmVyKiBidWYKIAogICAgIHByaXYtPmJ1ZmZlciA9IGdzdF9idWZm
ZXJfcmVmKGJ1ZmZlcik7CiAKKyAgICBHc3RWaWRlb0Zvcm1hdCBmb3JtYXQ7CisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBzaXplOwogI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIC8vIEZvciB0
aGUgdW5saWtlbHkgY2FzZSB3aGVyZSB0aGUgYnVmZmVyIGhhcyBubyBjYXBzLCB0aGUgY2Fwcwog
ICAgIC8vIGFyZSBpbXBsaWNpdGVseSB0aGUgY2FwcyBvZiB0aGUgcGFkLiBUaGlzIHNob3VsZG4n
dCBoYXBwZW4uCkBAIC0xODcsMTkgKzE4OSwyNSBAQCBzdGF0aWMgR3N0Rmxvd1JldHVybiB3ZWJr
aXRWaWRlb1NpbmtSZW5kZXIoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RCdWZmZXIqIGJ1Zgog
ICAgIH0KIAogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IEdTVF9CVUZGRVJfQ0FQUyhidWZm
ZXIpOwotI2Vsc2UKLSAgICBHUmVmUHRyPEdzdENhcHM+IGNhcHMgPSBhZG9wdEdSZWYoZ3N0X3Zp
ZGVvX2luZm9fdG9fY2FwcygmcHJpdi0+aW5mbykpOwotI2VuZGlmCiAKLSAgICBHc3RWaWRlb0Zv
cm1hdCBmb3JtYXQ7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplOwogICAgIGludCBwaXhlbEFz
cGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIHN0cmlkZTsK
ICAgICBpZiAoIWdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKGNhcHMuZ2V0KCksIHNpemUs
IGZvcm1hdCwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yLCBzdHJpZGUpKSB7CiAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKICAg
ICAgICAgZ19tdXRleF91bmxvY2socHJpdi0+YnVmZmVyTXV0ZXgpOwogICAgICAgICByZXR1cm4g
R1NUX0ZMT1dfRVJST1I7CiAgICAgfQorI2Vsc2UKKyAgICBmb3JtYXQgPSBHU1RfVklERU9fSU5G
T19GT1JNQVQoJnByaXYtPmluZm8pOworICAgIHNpemUuc2V0V2lkdGgoR1NUX1ZJREVPX0lORk9f
V0lEVEgoJnByaXYtPmluZm8pKTsKKyAgICBzaXplLnNldEhlaWdodChHU1RfVklERU9fSU5GT19I
RUlHSFQoJnByaXYtPmluZm8pKTsKKyNlbmRpZgorICAgIGlmIChmb3JtYXQgPT0gR1NUX1ZJREVP
X0ZPUk1BVF9VTktOT1dOKSB7CisgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKKyAg
ICAgICAgZ19tdXRleF91bmxvY2socHJpdi0+YnVmZmVyTXV0ZXgpOworICAgICAgICByZXR1cm4g
R1NUX0ZMT1dfRVJST1I7CisgICAgfQogCisjaWYgIShVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElD
UykpCiAgICAgLy8gQ2Fpcm8ncyBBUkdCIGhhcyBwcmUtbXVsdGlwbGllZCBhbHBoYSB3aGlsZSBH
U3RyZWFtZXIncyBkb2Vzbid0LgogICAgIC8vIEhlcmUgd2UgY29udmVydCB0byBDYWlybydzIEFS
R0IuCiAgICAgaWYgKGZvcm1hdCA9PSBHU1RfVklERU9fRk9STUFUX0FSR0IgfHwgZm9ybWF0ID09
IEdTVF9WSURFT19GT1JNQVRfQkdSQSkgewpAQCAtMjI0LDEyICsyMzIsMjMgQEAgc3RhdGljIEdz
dEZsb3dSZXR1cm4gd2Via2l0VmlkZW9TaW5rUmVuZGVyKEdzdEJhc2VTaW5rKiBiYXNlU2luaywg
R3N0QnVmZmVyKiBidWYKICAgICAgICAgY29uc3QgZ3VpbnQ4KiBzb3VyY2UgPSBHU1RfQlVGRkVS
X0RBVEEoYnVmZmVyKTsKICAgICAgICAgZ3VpbnQ4KiBkZXN0aW5hdGlvbiA9IEdTVF9CVUZGRVJf
REFUQShuZXdCdWZmZXIpOwogI2Vsc2UKLSAgICAgICAgR3N0TWFwSW5mbyBzb3VyY2VJbmZvOwot
ICAgICAgICBHc3RNYXBJbmZvIGRlc3RpbmF0aW9uSW5mbzsKLSAgICAgICAgZ3N0X2J1ZmZlcl9t
YXAoYnVmZmVyLCAmc291cmNlSW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAgICAgY29uc3QgZ3Vp
bnQ4KiBzb3VyY2UgPSBjb25zdF9jYXN0PGd1aW50OCo+KHNvdXJjZUluZm8uZGF0YSk7Ci0gICAg
ICAgIGdzdF9idWZmZXJfbWFwKG5ld0J1ZmZlciwgJmRlc3RpbmF0aW9uSW5mbywgR1NUX01BUF9X
UklURSk7Ci0gICAgICAgIGd1aW50OCogZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxndWludDgq
PihkZXN0aW5hdGlvbkluZm8uZGF0YSk7CisgICAgICAgIEdzdFZpZGVvRnJhbWUgc291cmNlRnJh
bWU7CisgICAgICAgIEdzdFZpZGVvRnJhbWUgZGVzdGluYXRpb25GcmFtZTsKKworICAgICAgICBp
ZiAoIWdzdF92aWRlb19mcmFtZV9tYXAoJnNvdXJjZUZyYW1lLCAmcHJpdi0+aW5mbywgYnVmZmVy
LCBHU1RfTUFQX1JFQUQpKSB7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7
CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG5ld0J1ZmZlcik7CisgICAgICAgICAgICBy
ZXR1cm4gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFnc3RfdmlkZW9f
ZnJhbWVfbWFwKCZkZXN0aW5hdGlvbkZyYW1lLCAmcHJpdi0+aW5mbywgbmV3QnVmZmVyLCBHU1Rf
TUFQX1dSSVRFKSkgeworICAgICAgICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZzb3VyY2VG
cmFtZSk7CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CisgICAgICAgICAg
ICBnc3RfYnVmZmVyX3VucmVmKG5ld0J1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gR1NUX0ZM
T1dfRVJST1I7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBndWludDgqIHNvdXJjZSA9IHN0
YXRpY19jYXN0PGd1aW50OCo+KEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZzb3VyY2VGcmFt
ZSwgMCkpOworICAgICAgICBndWludDgqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4
Kj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEoJmRlc3RpbmF0aW9uRnJhbWUsIDApKTsKICNl
bmRpZgogCiAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgc2l6ZS5oZWlnaHQoKTsgeCsrKSB7
CkBAIC0yNTMsMTIgKzI3MiwxMyBAQCBzdGF0aWMgR3N0Rmxvd1JldHVybiB3ZWJraXRWaWRlb1Np
bmtSZW5kZXIoR3N0QmFzZVNpbmsqIGJhc2VTaW5rLCBHc3RCdWZmZXIqIGJ1ZgogICAgICAgICB9
CiAKICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1
ZmZlciwgJnNvdXJjZUluZm8pOwotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKG5ld0J1ZmZlciwg
JmRlc3RpbmF0aW9uSW5mbyk7CisgICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmc291cmNl
RnJhbWUpOworICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJmRlc3RpbmF0aW9uRnJhbWUp
OwogI2VuZGlmCiAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKICAgICAgICAgYnVm
ZmVyID0gcHJpdi0+YnVmZmVyID0gbmV3QnVmZmVyOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8g
VGhpcyBzaG91bGQgbGlrZWx5IHVzZSBhIGxvd2VyIHByaW9yaXR5LCBidXQgZ2xpYiBjdXJyZW50
bHkgc3RhcnZlcwogICAgIC8vIGxvd2VyIHByaW9yaXR5IHNvdXJjZXMuCkBAIC0zODQsMTEgKzQw
NCwxMyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rU2V0Q2FwcyhHc3RCYXNlU2lu
ayogYmFzZVNpbmssIEdzdENhcHMqIGNhcHMpCiAgICAgR1NUX0RFQlVHX09CSkVDVChzaW5rLCAi
Q3VycmVudCBjYXBzICUiIEdTVF9QVFJfRk9STUFUICIsIHNldHRpbmcgY2FwcyAlIiBHU1RfUFRS
X0ZPUk1BVCwgcHJpdi0+Y3VycmVudENhcHMsIGNhcHMpOwogCiAjaWZkZWYgR1NUX0FQSV9WRVJT
SU9OXzEKLSAgICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zy
b21fY2FwcygmaW5mbywgY2FwcykpIHsKKyAgICBHc3RWaWRlb0luZm8gdmlkZW9JbmZvOworICAg
IGdzdF92aWRlb19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3RfdmlkZW9faW5m
b19mcm9tX2NhcHMoJnZpZGVvSW5mbywgY2FwcykpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzaW5rLCAiSW52YWxpZCBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBjYXBzKTsKICAgICAgICAg
cmV0dXJuIEZBTFNFOwogICAgIH0KKyAgICBwcml2LT5pbmZvID0gdmlkZW9JbmZvOwogI2VuZGlm
CiAKICAgICBnc3RfY2Fwc19yZXBsYWNlKCZwcml2LT5jdXJyZW50Q2FwcywgY2Fwcyk7Ci0tIAoy
LjAuMC5yYzAKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>