<?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>153828</bug_id>
          
          <creation_ts>2016-02-03 03:58:34 -0800</creation_ts>
          <short_desc>[Gstreamer] Add volume and mute support to the WebRTC mediaplayer</short_desc>
          <delta_ts>2016-11-21 01:39:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit 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>
          <dependson>153541</dependson>
    
    <dependson>164817</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1161634</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-02-03 03:58:34 -0800</bug_when>
    <thetext>Current mediaplayer implementation does not support volume or mute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224544</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-08-30 06:06:37 -0700</bug_when>
    <thetext>An OpenWebRTC patch is likely needed for this, see for instance https://github.com/EricssonResearch/openwebrtc/pull/572</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250984</commentid>
    <comment_count>2</comment_count>
      <attachid>294703</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-14 09:03:42 -0800</bug_when>
    <thetext>Created attachment 294703
[OpenWebRTC] audio mute/volume support

Please note this depends on a OpenWebRTC patch not upstream yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250985</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-14 09:04:05 -0800</bug_when>
    <thetext>See also https://github.com/EricssonResearch/openwebrtc/pull/657</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250993</commentid>
    <comment_count>4</comment_count>
      <attachid>294703</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-14 09:33:16 -0800</bug_when>
    <thetext>Comment on attachment 294703
[OpenWebRTC] audio mute/volume support

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:108
&gt; +    if (!m_audioTrack)
&gt; +        return;
&gt; +
&gt; +

Extra blank line here.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:109
&gt; +    auto realTimeMediaSource = reinterpret_cast&lt;RealtimeMediaSourceOwr*&gt;(&amp;m_audioTrack-&gt;source());

Having to use reinterpret_cast is usually a major danger sign; is there a way to use static_cast in the three places in this file instead?

I suggest making this be a reference instead of a pointer:

    auto&amp; realTimeMediaSource = *some_kind_of_cast&lt;RealtimeMediaSourceOwr&amp;&gt;(m_audioTrack-&gt;source());

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:77
&gt; +    void setVolume(float) override;
&gt; +    void setMuted(bool) override;

final instead of override?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251394</commentid>
    <comment_count>5</comment_count>
      <attachid>294821</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-14 23:54:54 -0800</bug_when>
    <thetext>Created attachment 294821
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253206</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-21 01:39:51 -0800</bug_when>
    <thetext>Committed r208943: &lt;http://trac.webkit.org/changeset/208943&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294703</attachid>
            <date>2016-11-14 09:03:42 -0800</date>
            <delta_ts>2016-11-14 23:54:54 -0800</delta_ts>
            <desc>[OpenWebRTC] audio mute/volume support</desc>
            <filename>OpenWebRTC-audio-mutevolume-support.patch</filename>
            <type>text/plain</type>
            <size>5058</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkN2JkZjIwNzcxYjZlNzUzZDNhYjViNjcxYWY5YzU0OWVhYmY4NmRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDE0IE5vdiAyMDE2IDE3OjU4OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
W09wZW5XZWJSVENdIGF1ZGlvIG11dGUvdm9sdW1lIHN1cHBvcnQKCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrCiAu
Li4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93ci5jcHAgICB8IDMyICsr
KysrKysrKysrKysrKysrKysrLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyT3dyLmggICAgIHwgIDMgKysKIDMgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwZGZhNS4uYThiOThjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTExLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR3N0cmVhbWVyXSBBZGQgdm9sdW1lIGFuZCBt
dXRlIHN1cHBvcnQgdG8gdGhlIFdlYlJUQyBtZWRpYXBsYXllcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzODI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cjo6c2V0Vm9sdW1lKTogTmV3IGltcGxlbWVu
dGF0aW9uIHNldHRpbmcgdGhlIE9XUiBzb3VyY2Ugdm9sdW1lIHByb3BlcnR5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjpzZXRNdXRlZCk6IE5ldyBp
bXBsZW1lbnRhdGlvbiBzZXR0aW5nIHRoZSBPV1Igc291cmNlIG11dGUgcHJvcGVydHkuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6Om1heWJlSGFuZGxl
Q2hhbmdlTXV0ZWRTdGF0ZSk6IEFsc28gc2V0IGF1ZGlvIE9XUiBzb3VyY2UgbXV0ZSBzdGF0ZSBk
ZXBlbmRpbmcgb24gdGhlIHRyYWNrIGVuYWJsZWQgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6OnRyYWNrRW5hYmxlZENoYW5nZWQpOiBjaGFp
biB0byBtYXliZUhhbmRsZUNoYW5nZU11dGVTdGF0ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmg6CisKIDIwMTYt
MTEtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHU3RyZWFtZXJdW09XUl0gcG9vciB2aWRlbyByZW5kZXJpbmcgaW4gYXBwcnRjCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCmluZGV4IGNi
MjMyZDEuLjNjMDY2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJPd3IuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlT3dyLmgiCiAjaW5jbHVkZSAi
VVJMLmgiCi0jaW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogI2luY2x1ZGUgPG93
ci9vd3IuaD4KICNpbmNsdWRlIDxvd3Ivb3dyX2dzdF9hdWRpb19yZW5kZXJlci5oPgogI2luY2x1
ZGUgPG93ci9vd3JfZ3N0X3ZpZGVvX3JlbmRlcmVyLmg+CkBAIC0xMDEsNiArMTAwLDMxIEBAIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjpoYXNBdWRpbygpIGNvbnN0CiAgICAg
cmV0dXJuIG1fYXVkaW9UcmFjazsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJPd3I6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCit7CisgICAgaWYgKCFtX2F1ZGlvVHJhY2sp
CisgICAgICAgIHJldHVybjsKKworCisgICAgYXV0byByZWFsVGltZU1lZGlhU291cmNlID0gcmVp
bnRlcnByZXRfY2FzdDxSZWFsdGltZU1lZGlhU291cmNlT3dyKj4oJm1fYXVkaW9UcmFjay0+c291
cmNlKCkpOworICAgIGF1dG8gbWVkaWFTb3VyY2UgPSBPV1JfTUVESUFfU09VUkNFKHJlYWxUaW1l
TWVkaWFTb3VyY2UtPm1lZGlhU291cmNlKCkpOworCisgICAgR1NUX0RFQlVHKCJTZXR0aW5nIHZv
bHVtZTogJWYiLCB2b2x1bWUpOworICAgIGdfb2JqZWN0X3NldChtZWRpYVNvdXJjZSwgInZvbHVt
ZSIsIHN0YXRpY19jYXN0PGdkb3VibGU+KHZvbHVtZSksIG51bGxwdHIpOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cjo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAg
ICBpZiAoIW1fYXVkaW9UcmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byByZWFsVGlt
ZU1lZGlhU291cmNlID0gcmVpbnRlcnByZXRfY2FzdDxSZWFsdGltZU1lZGlhU291cmNlT3dyKj4o
Jm1fYXVkaW9UcmFjay0+c291cmNlKCkpOworICAgIGF1dG8gbWVkaWFTb3VyY2UgPSBPV1JfTUVE
SUFfU09VUkNFKHJlYWxUaW1lTWVkaWFTb3VyY2UtPm1lZGlhU291cmNlKCkpOworCisgICAgR1NU
X0RFQlVHKCJTZXR0aW5nIG11dGU6ICVzIiwgbXV0ZWQgPyAib24iOiJvZmYiKTsKKyAgICBnX29i
amVjdF9zZXQobWVkaWFTb3VyY2UsICJtdXRlIiwgbXV0ZWQsIG51bGxwdHIpOworfQorCiBmbG9h
dCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6OmN1cnJlbnRUaW1lKCkgY29uc3QKIHsK
ICAgICBnaW50NjQgcG9zaXRpb24gPSBHU1RfQ0xPQ0tfVElNRV9OT05FOwpAQCAtMzEzLDYgKzMz
Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjptYXliZUhhbmRsZUNo
YW5nZU11dGVkU3RhdGUoTWVkaWFTdHJlYW1UcmFjCiAgICAgICAgICAgICBnX29iamVjdF9zZXQo
bV9hdWRpb1JlbmRlcmVyLmdldCgpLCAiZGlzYWJsZWQiLCB0cnVlLCBudWxscHRyKTsKICAgICAg
ICAgICAgIG93cl9tZWRpYV9yZW5kZXJlcl9zZXRfc291cmNlKE9XUl9NRURJQV9SRU5ERVJFUiht
X2F1ZGlvUmVuZGVyZXIuZ2V0KCkpLCBudWxscHRyKTsKICAgICAgICAgfQorICAgICAgICBnX29i
amVjdF9zZXQobWVkaWFTb3VyY2UsICJtdXRlIiwgIXRyYWNrLmVuYWJsZWQoKSwgbnVsbHB0cik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW86CiAg
ICAgICAgIGlmICghcmVhbFRpbWVNZWRpYVNvdXJjZS0+bXV0ZWQoKSkgewpAQCAtMzMzLDkgKzM1
OCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cjo6dHJhY2tTZXR0aW5n
c0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdAogICAgIEdTVF9ERUJVRygiVHJhY2sgc2V0
dGluZ3MgY2hhbmdlZCIpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93
cjo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93cjo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgR1NUX0RFQlVHKCJUcmFjayBlbmFibGVk
IGNoYW5nZWQiKTsKKyAgICBHU1RfREVCVUcoIiVzIHRyYWNrIG5vdyAlcyIsIHRyYWNrLnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyA/ICJhdWRpbyI6InZpZGVvIiwgdHJhY2su
ZW5hYmxlZCgpID8gImVuYWJsZWQiOiJkaXNhYmxlZCIpOworICAgIG1heWJlSGFuZGxlQ2hhbmdl
TXV0ZWRTdGF0ZSh0cmFjayk7CiB9CiAKIEdzdEVsZW1lbnQqIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck93cjo6Y3JlYXRlVmlkZW9TaW5rKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJP
d3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJPd3IuaAppbmRleCA2YzU5ZTA4Li5mMTIwZTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93ci5oCkBAIC03Myw2
ICs3Myw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKSBvdmVy
cmlkZSB7IH0KICAgICBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGF1
c2VkOyB9CiAKKyAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZXRNdXRlZChib29sKSBvdmVycmlkZTsKKwogICAgIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlIHsgfTsKIAotLSAKMi4xMC4y
</data>
<flag name="review"
          id="317356"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294821</attachid>
            <date>2016-11-14 23:54:54 -0800</date>
            <delta_ts>2016-11-14 23:54:54 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch-for-landing.patch</filename>
            <type>text/plain</type>
            <size>9255</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxMzlhNjg1ZGFiM2VjNWNmNDYwNjZmZmZjODI2NmNiZThmMTRjZDhmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDE0IE5vdiAyMDE2IDE3OjU4OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2ggZm9yIGxhbmRpbmcKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAxNCArKysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJPd3IuY3BwICAgfCA0MSArKysrKysrKysrKystLS0KIC4uLi9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmggICAgIHwgNjEgKysrKysrKysrKysr
LS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwZGZhNS4uZDhjZGM3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE2LTExLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR3N0cmVhbWVyXSBBZGQgdm9sdW1lIGFuZCBtdXRlIHN1cHBvcnQg
dG8gdGhlIFdlYlJUQyBtZWRpYXBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzODI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyT3dyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lck93cjo6c2V0Vm9sdW1lKTogTmV3IGltcGxlbWVudGF0aW9uIHNldHRpbmcg
dGhlIE9XUiBzb3VyY2Ugdm9sdW1lIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjpzZXRNdXRlZCk6IE5ldyBpbXBsZW1lbnRhdGlvbiBz
ZXR0aW5nIHRoZSBPV1Igc291cmNlIG11dGUgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6Om1heWJlSGFuZGxlQ2hhbmdlTXV0ZWRTdGF0
ZSk6IEFsc28gc2V0IGF1ZGlvIE9XUiBzb3VyY2UgbXV0ZSBzdGF0ZSBkZXBlbmRpbmcgb24gdGhl
IHRyYWNrIGVuYWJsZWQgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJPd3I6OnRyYWNrRW5hYmxlZENoYW5nZWQpOiBjaGFpbiB0byBtYXliZUhhbmRs
ZUNoYW5nZU11dGVTdGF0ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmg6CisKIDIwMTYtMTEtMTAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW09X
Ul0gcG9vciB2aWRlbyByZW5kZXJpbmcgaW4gYXBwcnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyT3dyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCmluZGV4IGNiMjMyZDEuLjg5NWFmMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3Iu
Y3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlT3dyLmgiCiAjaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVk
ZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogI2luY2x1ZGUgPG93ci9vd3IuaD4KICNpbmNs
dWRlIDxvd3Ivb3dyX2dzdF9hdWRpb19yZW5kZXJlci5oPgogI2luY2x1ZGUgPG93ci9vd3JfZ3N0
X3ZpZGVvX3JlbmRlcmVyLmg+CkBAIC0xMDEsNiArMTAwLDMwIEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyT3dyOjpoYXNBdWRpbygpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXVkaW9U
cmFjazsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6OnNldFZvbHVt
ZShmbG9hdCB2b2x1bWUpCit7CisgICAgaWYgKCFtX2F1ZGlvVHJhY2spCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8mIHJlYWxUaW1lTWVkaWFTb3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGlt
ZU1lZGlhU291cmNlT3dyJj4obV9hdWRpb1RyYWNrLT5zb3VyY2UoKSk7CisgICAgYXV0byBtZWRp
YVNvdXJjZSA9IE9XUl9NRURJQV9TT1VSQ0UocmVhbFRpbWVNZWRpYVNvdXJjZS5tZWRpYVNvdXJj
ZSgpKTsKKworICAgIEdTVF9ERUJVRygiU2V0dGluZyB2b2x1bWU6ICVmIiwgdm9sdW1lKTsKKyAg
ICBnX29iamVjdF9zZXQobWVkaWFTb3VyY2UsICJ2b2x1bWUiLCBzdGF0aWNfY2FzdDxnZG91Ymxl
Pih2b2x1bWUpLCBudWxscHRyKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJPd3I6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgaWYgKCFtX2F1ZGlvVHJhY2spCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHJlYWxUaW1lTWVkaWFTb3VyY2UgPSBzdGF0aWNf
Y2FzdDxSZWFsdGltZU1lZGlhU291cmNlT3dyJj4obV9hdWRpb1RyYWNrLT5zb3VyY2UoKSk7Cisg
ICAgYXV0byBtZWRpYVNvdXJjZSA9IE9XUl9NRURJQV9TT1VSQ0UocmVhbFRpbWVNZWRpYVNvdXJj
ZS5tZWRpYVNvdXJjZSgpKTsKKworICAgIEdTVF9ERUJVRygiU2V0dGluZyBtdXRlOiAlcyIsIG11
dGVkID8gIm9uIjoib2ZmIik7CisgICAgZ19vYmplY3Rfc2V0KG1lZGlhU291cmNlLCAibXV0ZSIs
IG11dGVkLCBudWxscHRyKTsKK30KKwogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
T3dyOjpjdXJyZW50VGltZSgpIGNvbnN0CiB7CiAgICAgZ2ludDY0IHBvc2l0aW9uID0gR1NUX0NM
T0NLX1RJTUVfTk9ORTsKQEAgLTMwMCwyMiArMzIzLDIzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyT3dyOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJPd3I6Om1heWJlSGFuZGxlQ2hh
bmdlTXV0ZWRTdGF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgYXV0
byByZWFsVGltZU1lZGlhU291cmNlID0gcmVpbnRlcnByZXRfY2FzdDxSZWFsdGltZU1lZGlhU291
cmNlT3dyKj4oJnRyYWNrLnNvdXJjZSgpKTsKLSAgICBhdXRvIG1lZGlhU291cmNlID0gT1dSX01F
RElBX1NPVVJDRShyZWFsVGltZU1lZGlhU291cmNlLT5tZWRpYVNvdXJjZSgpKTsKKyAgICBhdXRv
JiByZWFsVGltZU1lZGlhU291cmNlID0gc3RhdGljX2Nhc3Q8UmVhbHRpbWVNZWRpYVNvdXJjZU93
ciY+KHRyYWNrLnNvdXJjZSgpKTsKKyAgICBhdXRvIG1lZGlhU291cmNlID0gT1dSX01FRElBX1NP
VVJDRShyZWFsVGltZU1lZGlhU291cmNlLm1lZGlhU291cmNlKCkpOwogCi0gICAgR1NUX0RFQlVH
KCIlcyB0cmFjayBub3cgJXMiLCB0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW8gPyAiYXVkaW8iOiJ2aWRlbyIsIHJlYWxUaW1lTWVkaWFTb3VyY2UtPm11dGVkKCkgPyAi
bXV0ZWQiOiJ1bi1tdXRlZCIpOworICAgIEdTVF9ERUJVRygiJXMgdHJhY2sgbm93ICVzIiwgdHJh
Y2sudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvID8gImF1ZGlvIjoidmlkZW8i
LCByZWFsVGltZU1lZGlhU291cmNlLm11dGVkKCkgPyAibXV0ZWQiOiJ1bi1tdXRlZCIpOwogICAg
IHN3aXRjaCAodHJhY2sudHlwZSgpKSB7CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpbzoKLSAgICAgICAgaWYgKCFyZWFsVGltZU1lZGlhU291cmNlLT5tdXRlZCgpKSB7CisgICAg
ICAgIGlmICghcmVhbFRpbWVNZWRpYVNvdXJjZS5tdXRlZCgpKSB7CiAgICAgICAgICAgICBnX29i
amVjdF9zZXQobV9hdWRpb1JlbmRlcmVyLmdldCgpLCAiZGlzYWJsZWQiLCBmYWxzZSwgbnVsbHB0
cik7CiAgICAgICAgICAgICBvd3JfbWVkaWFfcmVuZGVyZXJfc2V0X3NvdXJjZShPV1JfTUVESUFf
UkVOREVSRVIobV9hdWRpb1JlbmRlcmVyLmdldCgpKSwgbWVkaWFTb3VyY2UpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgZ19vYmplY3Rfc2V0KG1fYXVkaW9SZW5kZXJlci5nZXQoKSwg
ImRpc2FibGVkIiwgdHJ1ZSwgbnVsbHB0cik7CiAgICAgICAgICAgICBvd3JfbWVkaWFfcmVuZGVy
ZXJfc2V0X3NvdXJjZShPV1JfTUVESUFfUkVOREVSRVIobV9hdWRpb1JlbmRlcmVyLmdldCgpKSwg
bnVsbHB0cik7CiAgICAgICAgIH0KKyAgICAgICAgZ19vYmplY3Rfc2V0KG1lZGlhU291cmNlLCAi
bXV0ZSIsICF0cmFjay5lbmFibGVkKCksIG51bGxwdHIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvOgotICAgICAgICBpZiAoIXJlYWxUaW1lTWVk
aWFTb3VyY2UtPm11dGVkKCkpIHsKKyAgICAgICAgaWYgKCFyZWFsVGltZU1lZGlhU291cmNlLm11
dGVkKCkpIHsKICAgICAgICAgICAgIGdfb2JqZWN0X3NldChtX3ZpZGVvUmVuZGVyZXIuZ2V0KCks
ICJkaXNhYmxlZCIsIGZhbHNlLCBudWxscHRyKTsKICAgICAgICAgICAgIG93cl9tZWRpYV9yZW5k
ZXJlcl9zZXRfc291cmNlKE9XUl9NRURJQV9SRU5ERVJFUihtX3ZpZGVvUmVuZGVyZXIuZ2V0KCkp
LCBtZWRpYVNvdXJjZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMzMsOSArMzU3LDEwIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjp0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0CiAgICAgR1NUX0RFQlVHKCJUcmFjayBzZXR0aW5ncyBjaGFu
Z2VkIik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyOjp0cmFja0Vu
YWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyT3dyOjp0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJiB0cmFjaykKIHsKLSAgICBHU1RfREVCVUcoIlRyYWNrIGVuYWJsZWQgY2hhbmdlZCIp
OworICAgIEdTVF9ERUJVRygiJXMgdHJhY2sgbm93ICVzIiwgdHJhY2sudHlwZSgpID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvID8gImF1ZGlvIjoidmlkZW8iLCB0cmFjay5lbmFibGVkKCkg
PyAiZW5hYmxlZCI6ImRpc2FibGVkIik7CisgICAgbWF5YmVIYW5kbGVDaGFuZ2VNdXRlZFN0YXRl
KHRyYWNrKTsKIH0KIAogR3N0RWxlbWVudCogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dy
OjpjcmVhdGVWaWRlb1NpbmsoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck93ci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck93ci5oCmluZGV4IDZjNTllMDguLmU2MjJkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJPd3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyT3dyLmgKQEAgLTQwLDUwICs0MCw1MyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIAotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKIAogcHJpdmF0ZToK
LSAgICBHc3RFbGVtZW50KiBjcmVhdGVWaWRlb1NpbmsoKSBvdmVycmlkZTsKLSAgICBHc3RFbGVt
ZW50KiBhdWRpb1NpbmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2F1ZGlvU2luay5nZXQo
KTsgfQotICAgIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIEdzdEVsZW1lbnQqIGNyZWF0ZVZpZGVvU2luaygpIGZpbmFsOworICAgIEdzdEVs
ZW1lbnQqIGF1ZGlvU2luaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVkaW9TaW5rLmdldCgp
OyB9CisgICAgYm9vbCBpc0xpdmVTdHJlYW0oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiT3BlbldlYlJUQyI7IH0KKyAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiT3BlbldlYlJUQyI7IH0KIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOwogI2VuZGlmCi0gICAgdm9pZCBs
b2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FuY2VsTG9hZCgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsK
KyAgICB2b2lkIGNhbmNlbExvYWQoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcHJlcGFyZVRvUGxh
eSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgcGxheSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGF1
c2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHByZXBhcmVUb1BsYXkoKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHBsYXkoKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKCkgZmluYWw7CiAKLSAgICBib29sIGhh
c1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGhhc0F1ZGlv
KCkgY29uc3QgZmluYWw7CiAKLSAgICBmbG9hdCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIDA7IH0KKyAgICBmbG9hdCBkdXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7
IH0KIAotICAgIGZsb2F0IGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
ZWVrKGZsb2F0KSBvdmVycmlkZSB7IH0KLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGZsb2F0IGN1cnJlbnRUaW1lKCkgY29uc3QgZmluYWw7
CisgICAgdm9pZCBzZWVrKGZsb2F0KSBmaW5hbCB7IH0KKyAgICBib29sIHNlZWtpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBzZXRSYXRlKGZsb2F0KSBvdmVy
cmlkZSB7IH0KLSAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpIG92ZXJyaWRlIHsgfQot
ICAgIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wYXVzZWQ7IH0KKyAg
ICB2b2lkIHNldFJhdGUoZmxvYXQpIGZpbmFsIHsgfQorICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0
Y2goYm9vbCkgZmluYWwgeyB9CisgICAgYm9vbCBwYXVzZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3BhdXNlZDsgfQogCi0gICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUo
Ym9vbCkgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBmaW5hbDsKKyAg
ICB2b2lkIHNldE11dGVkKGJvb2wpIGZpbmFsOwogCi0gICAgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7IH0KLSAgICBib29sIGRpZExvYWRpbmdQ
cm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNW
aXNpYmxlKGJvb2wpIGZpbmFsIHsgfTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5
dGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIGZsb2F0IG1heFRpbWVTZWVr
YWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOyB9CisgICAgYm9vbCBkaWRMb2FkaW5nUHJv
Z3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wgY2FuTG9hZFBvc3RlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9pZCBzZXRQb3N0ZXIoY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGUgeyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAwOyB9CisKKyAgICBib29sIGNhbkxvYWRQb3N0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgc2V0UG9zdGVyKGNvbnN0IFN0cmluZyYp
IGZpbmFsIHsgfQogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIGlt
cGxlbWVudGF0aW9uLgogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsOwotLSAKMi4xMC4y
</data>

          </attachment>
      

    </bug>

</bugzilla>