<?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>131973</bug_id>
          
          <creation_ts>2014-04-21 23:17:40 -0700</creation_ts>
          <short_desc>[MediaStream] Implement MediaStream active attribute</short_desc>
          <delta_ts>2014-04-24 06:33: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="Praveen Jadhav">praveen.j</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dev_sachin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1002823</commentid>
    <comment_count>0</comment_count>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-04-21 23:17:40 -0700</bug_when>
    <thetext>MediaStream.active, MediaStream.onactive and MediaStream.oninactive are not implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003170</commentid>
    <comment_count>1</comment_count>
      <attachid>229949</attachid>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-04-22 20:55:52 -0700</bug_when>
    <thetext>Created attachment 229949
Patch

MediaStream IDL specifications are revised to use &apos;active&apos; attribute instead of &apos;ended&apos;. This patch implements the newly introduced attribute as well as the event listeners &apos;onactive&apos; and &apos;oninactive&apos; associated with it. Code related to &apos;ended&apos; attribute shall be deprecated. Work on the same is in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003174</commentid>
    <comment_count>2</comment_count>
      <attachid>229952</attachid>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-04-22 21:10:07 -0700</bug_when>
    <thetext>Created attachment 229952
Patch

Updated patch attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003305</commentid>
    <comment_count>3</comment_count>
      <attachid>229952</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-23 09:42:33 -0700</bug_when>
    <thetext>Comment on attachment 229952
Patch

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

r=me with some minor caveats.

&gt; Source/WebCore/ChangeLog:29
&gt; +        * Modules/mediastream/MediaStream.cpp:
&gt; +        (WebCore::MediaStream::active):
&gt; +        (WebCore::MediaStream::setActive):
&gt; +        (WebCore::MediaStream::addTrack):
&gt; +        (WebCore::MediaStream::removeTrack):
&gt; +        (WebCore::MediaStream::trackDidEnd):
&gt; +        (WebCore::MediaStream::streamDidEnd):
&gt; +        (WebCore::MediaStream::streamIsActive):
&gt; +        * Modules/mediastream/MediaStream.h:
&gt; +        * Modules/mediastream/MediaStream.idl:
&gt; +        * dom/EventNames.h:
&gt; +        * platform/mediastream/MediaStreamPrivate.cpp:
&gt; +        (WebCore::MediaStreamPrivate::MediaStreamPrivate):
&gt; +        (WebCore::MediaStreamPrivate::setEnded):
&gt; +        (WebCore::MediaStreamPrivate::setActive):
&gt; +        * platform/mediastream/MediaStreamPrivate.h:
&gt; +        (WebCore::MediaStreamPrivate::active):

I think it is helpful to have per-method comments in the ChangeLog to make it easier to see at a glance what changed.

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:231
&gt;          setEnded();

Nit: A &quot;FIXME: to be removed in bug http://xxxx&quot; comment would be good.

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:282
&gt;      setEnded();

Ditto.

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:296
&gt; +void MediaStream::streamIsActive(bool streamActive)

This name suggests the method checks to see if the stream is active. Please use a name that makes it clear that it changes the stream active state, eg. something like &quot;setStreamIsActive&quot;.

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:299
&gt; +    if (active() == streamActive)
&gt; +        return;

active() returns m_private-&gt;active(), so this will only work if the private stream sets its state after making the client callback, which I think is a bad idea (see below). It seems like you need to keep track the state the last time an event was fired.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:131
&gt;      , m_ended(false)

Nit: not that this is deprecated.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:146
&gt;      if (providedSourcesSize &gt; 0 &amp;&amp; !tracksSize)
&gt;          m_ended = true;

Ditto.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:155
&gt;      , m_ended(false)

Ditto.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:170
&gt;      if (providedTracksSize &gt; 0 &amp;&amp; !tracksSize)
&gt;          m_ended = true;

Ditto.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:190
&gt; +void MediaStreamPrivate::setActive(bool active)
&gt; +{
&gt; +    if (m_client)
&gt; +        m_client-&gt;streamIsActive(active);
&gt; +
&gt; +    m_isActive = active;
&gt; +}

Setting m_isActive after notifying the client is a bad idea because you can&apos;t know what the client will do in the callback. It also seems unnecessary to call the client if (m_isActive == active).

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:91
&gt;      bool ended() const { return m_ended; }
&gt;      void setEnded();

Nit: comment that these are deprecated

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:113
&gt;      bool m_ended;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003542</commentid>
    <comment_count>4</comment_count>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-04-23 22:23:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 229952 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229952&amp;action=review
&gt; 
&gt; r=me with some minor caveats.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:29
&gt; &gt; +        * Modules/mediastream/MediaStream.cpp:
&gt; &gt; +        (WebCore::MediaStream::active):
&gt; &gt; +        (WebCore::MediaStream::setActive):
&gt; &gt; +        (WebCore::MediaStream::addTrack):
&gt; &gt; +        (WebCore::MediaStream::removeTrack):
&gt; &gt; +        (WebCore::MediaStream::trackDidEnd):
&gt; &gt; +        (WebCore::MediaStream::streamDidEnd):
&gt; &gt; +        (WebCore::MediaStream::streamIsActive):
&gt; &gt; +        * Modules/mediastream/MediaStream.h:
&gt; &gt; +        * Modules/mediastream/MediaStream.idl:
&gt; &gt; +        * dom/EventNames.h:
&gt; &gt; +        * platform/mediastream/MediaStreamPrivate.cpp:
&gt; &gt; +        (WebCore::MediaStreamPrivate::MediaStreamPrivate):
&gt; &gt; +        (WebCore::MediaStreamPrivate::setEnded):
&gt; &gt; +        (WebCore::MediaStreamPrivate::setActive):
&gt; &gt; +        * platform/mediastream/MediaStreamPrivate.h:
&gt; &gt; +        (WebCore::MediaStreamPrivate::active):
&gt; 
&gt; I think it is helpful to have per-method comments in the ChangeLog to make it easier to see at a glance what changed.

Right. Brief comments added here. 

&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:231
&gt; &gt;          setEnded();
&gt; 
&gt; Nit: A &quot;FIXME: to be removed in bug http://xxxx&quot; comment would be good.

New bug https://bugs.webkit.org/show_bug.cgi?id=132104 is raised. Updated in patch as well.

&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:282
&gt; &gt;      setEnded();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:296
&gt; &gt; +void MediaStream::streamIsActive(bool streamActive)
&gt; 
&gt; This name suggests the method checks to see if the stream is active. Please use a name that makes it clear that it changes the stream active state, eg. something like &quot;setStreamIsActive&quot;.

Updated.

&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:299
&gt; &gt; +    if (active() == streamActive)
&gt; &gt; +        return;
&gt; 
&gt; active() returns m_private-&gt;active(), so this will only work if the private stream sets its state after making the client callback, which I think is a bad idea (see below). It seems like you need to keep track the state the last time an event was fired.

True. Corrections done.

&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:131
&gt; &gt;      , m_ended(false)
&gt; 
&gt; Nit: not that this is deprecated.
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:146
&gt; &gt;      if (providedSourcesSize &gt; 0 &amp;&amp; !tracksSize)
&gt; &gt;          m_ended = true;
&gt; 
&gt; Ditto.

Updated.

&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:155
&gt; &gt;      , m_ended(false)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:170
&gt; &gt;      if (providedTracksSize &gt; 0 &amp;&amp; !tracksSize)
&gt; &gt;          m_ended = true;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:190
&gt; &gt; +void MediaStreamPrivate::setActive(bool active)
&gt; &gt; +{
&gt; &gt; +    if (m_client)
&gt; &gt; +        m_client-&gt;streamIsActive(active);
&gt; &gt; +
&gt; &gt; +    m_isActive = active;
&gt; &gt; +}
&gt; 
&gt; Setting m_isActive after notifying the client is a bad idea because you can&apos;t know what the client will do in the callback. It also seems unnecessary to call the client if (m_isActive == active).

Logic updated.

&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:91
&gt; &gt;      bool ended() const { return m_ended; }
&gt; &gt;      void setEnded();
&gt; 
&gt; Nit: comment that these are deprecated
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:113
&gt; &gt;      bool m_ended;
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003543</commentid>
    <comment_count>5</comment_count>
      <attachid>230050</attachid>
    <who name="Praveen Jadhav">praveen.j</who>
    <bug_when>2014-04-23 22:24:11 -0700</bug_when>
    <thetext>Created attachment 230050
Patch

All comments included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003556</commentid>
    <comment_count>6</comment_count>
      <attachid>230050</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-23 23:38:19 -0700</bug_when>
    <thetext>Comment on attachment 230050
Patch

Clearing flags on attachment: 230050

Committed r167750: &lt;http://trac.webkit.org/changeset/167750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003557</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-23 23:38:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003616</commentid>
    <comment_count>8</comment_count>
      <attachid>230050</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-24 06:33:32 -0700</bug_when>
    <thetext>Comment on attachment 230050
Patch

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

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:188
&gt; +    if (m_isActive != active) {

Nit: WebKit style is to use an early return in a situation like this, eg. &quot;if (m_isActive == active) return ...&quot;. Please try to remember to change this when you fix bug #132104.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229949</attachid>
            <date>2014-04-22 20:55:52 -0700</date>
            <delta_ts>2014-04-22 21:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>MediaStream-131973.txt</filename>
            <type>text/plain</type>
            <size>12795</size>
            <attacher name="Praveen Jadhav">praveen.j</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzY5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTIyICBQcmF2ZWVu
IFIgSmFkaGF2ICA8cHJhdmVlbi5qQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gSW1wbGVtZW50IE1lZGlhU3RyZWFtIGFjdGl2ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTk3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhU3RyZWFtIC5hY3RpdmUgYXR0
cmlidXRlIGFyZSBpbnRyb2R1Y2VkIHdoaWNoIHdpbGwgcmVwbGFjZQorICAgICAgICAuZW5kZWQg
YXR0cmlidXRlLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIG5ld2x5IGludHJvZHVjZWQgYXR0
cmlidXRlcy4KKworICAgICAgICBNZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sIGlz
IHVwZGF0ZWQgdG8gaGFuZGxlIHRoaXMgc2NlbmFyaW8uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
OjphY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OnNldEFjdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OnJlbW92ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtOjp0cmFja0RpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RyZWFt
RGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpzdHJlYW1Jc0FjdGl2ZSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJl
YW1Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0RW5k
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzZXRBY3RpdmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphY3RpdmUpOgorCiAyMDE0LTA0LTIy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHBhaW50
IGJvcmRlciBpbWFnZSB3aGVuIHRoZSBib3JkZXIgcmVjdCBpcyBlbXB0eS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCShy
ZXZpc2lvbiAxNjc1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiwxOCBAQCB2b2lkIE1l
ZGlhU3RyZWFtOjpzZXRFbmRlZCgpCiAgICAgbV9wcml2YXRlLT5zZXRFbmRlZCgpOwogfQogCiti
b29sIE1lZGlhU3RyZWFtOjphY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUt
PmFjdGl2ZSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2
ZSkKK3sKKyAgICBpZiAoYWN0aXZlKCkgPT0gaXNBY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX3ByaXZhdGUtPnNldEFjdGl2ZShpc0FjdGl2ZSk7Cit9CisKIFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrPj4gdHJhY2tTZXQ7CkBAIC0xNzIsNiArMTg0LDcgQEAgYm9vbCBNZWRpYVN0cmVh
bTo6YWRkVHJhY2soUGFzc1JlZlB0cjxNZQogICAgIHRyYWNrcy0+YXBwZW5kKHRyYWNrKTsKICAg
ICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CiAgICAgbV9wcml2YXRlLT5hZGRUcmFjaygmdHJh
Y2stPnByaXZhdGVUcmFjaygpKTsKKyAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTIxNCw4ICsyMjcsMTAgQEAgYm9vbCBNZWRpYVN0cmVhbTo6cmVtb3ZlVHJh
Y2soUGFzc1JlZlB0cgogICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVNvdXJjZSh0cmFjay0+c291
cmNlKCkpOwogCiAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKHRoaXMpOwotICAgIGlmICghbV9h
dWRpb1RyYWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgpKQorICAgIGlmICghbV9h
dWRpb1RyYWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgpKSB7CiAgICAgICAgIHNl
dEVuZGVkKCk7CisgICAgICAgIHNldEFjdGl2ZShmYWxzZSk7CisgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0yNjUsNiArMjgwLDkgQEAgdm9pZCBNZWRpYVN0cmVhbTo6dHJhY2tEaWRF
bmQoKQogICAgIH0KIAogICAgIHNldEVuZGVkKCk7CisKKyAgICBpZiAoIW1fYXVkaW9UcmFja3Mu
c2l6ZSgpICYmICFtX3ZpZGVvVHJhY2tzLnNpemUoKSkKKyAgICAgICAgc2V0QWN0aXZlKGZhbHNl
KTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRGlkRW5kKCkKQEAgLTI3NSw2ICsyOTMs
MTcgQEAgdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRGlkRW5kKCkKICAgICBzY2hlZHVsZURpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kZWRFdmVudCwgZmFsc2UsIGZh
bHNlKSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW06OnN0cmVhbUlzQWN0aXZlKGJvb2wgc3RyZWFt
QWN0aXZlKQoreworICAgIGlmIChhY3RpdmUoKSA9PSBzdHJlYW1BY3RpdmUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChzdHJlYW1BY3RpdmUpCisgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudCwgZmFsc2UsIGZhbHNl
KSk7CisgICAgZWxzZQorICAgICAgICBzY2hlZHVsZURpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuaW5hY3RpdmVFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cit9CisKIHZvaWQg
TWVkaWFTdHJlYW06OmNvbnRleHREZXN0cm95ZWQoKQogewogICAgIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCShyZXZpc2lvbiAxNjc1NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDYgKzc1LDEyIEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGFkZHRyYWNrKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKHJlbW92ZXRyYWNrKTsKIAorICAgIGJvb2wgYWN0aXZlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRBY3RpdmUoYm9vbCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGFjdGl2ZSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbmFjdGl2ZSk7
CisKICAgICBNZWRpYVN0cmVhbVByaXZhdGUqIHByaXZhdGVTdHJlYW0oKSBjb25zdCB7IHJldHVy
biBtX3ByaXZhdGUuZ2V0KCk7IH0KIAogICAgIC8vIEV2ZW50VGFyZ2V0CkBAIC0xMDQsNiArMTEw
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQKICAgICB2aXJ0
dWFsIHZvaWQgdHJhY2tEaWRFbmQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQg
c3RyZWFtRGlkRW5kKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHN0cmVhbUlz
QWN0aXZlKGJvb2wpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVT
b3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Kikgb3ZlcnJpZGUgZmluYWw7CkBAIC0xMjksNiArMTM2LDggQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8UmVmUHRyPEV2ZW50Pj4gbV9zY2hlZHVsZWRFdmVudHM7CiAKICAgICBWZWN0b3I8T2JzZXJ2
ZXIqPiBtX29ic2VydmVyczsKKworICAgIHVuc2lnbmVkIG1fYWN0aXZlVHJhY2tDb3VudDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsCShyZXZpc2lvbiAxNjc1NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMTEgQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmFkZHRyYWNrOwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVtb3ZldHJhY2s7
CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhY3RpdmU7CisKKyAgICBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmFjdGl2ZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmluYWN0aXZlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCShyZXZp
c2lvbiAxNjc1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjMsNiArMTYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KHZvbHVtZWNoYW5nZSkgXAogICAgIG1hY3JvKHdhaXRpbmcpIFwKICAgICBcCisgICAgbWFjcm8o
YWN0aXZlKSBcCisgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhhZGR0cmFjaykgXAog
ICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGVudGVyKSBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5jcHAJKHJldmlzaW9uIDE2NzU3NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
OSw2ICsxMjksNyBAQCBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShjCiAg
ICAgOiBtX2NsaWVudCgwKQogICAgICwgbV9pZChpZCkKICAgICAsIG1fZW5kZWQoZmFsc2UpCisg
ICAgLCBtX2lzQWN0aXZlKGZhbHNlKQogewogICAgIEFTU0VSVChtX2lkLmxlbmd0aCgpKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF1ZGlvU291cmNlcy5zaXplKCk7IGkrKykKQEAgLTE0
MywxMiArMTQ0LDE2IEBAIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGMK
ICAgICAvLyB0aGF0IHRoZSB0cmFja3Mgd2VyZSBhbGwgZW5kZWQKICAgICBpZiAocHJvdmlkZWRT
b3VyY2VzU2l6ZSA+IDAgJiYgIXRyYWNrc1NpemUpCiAgICAgICAgIG1fZW5kZWQgPSB0cnVlOwor
CisgICAgaWYgKHByb3ZpZGVkU291cmNlc1NpemUgPiAwICYmIHRyYWNrc1NpemUgPiAwKQorICAg
ICAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKIH0KIAogTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0
cmVhbVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4+JiBhdWRpb1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKQogICAgIDog
bV9jbGllbnQoMCkKICAgICAsIG1faWQoaWQpCiAgICAgLCBtX2VuZGVkKGZhbHNlKQorICAgICwg
bV9pc0FjdGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQobV9pZC5sZW5ndGgoKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBhdWRpb1ByaXZhdGVUcmFja3Muc2l6ZSgpOyBpKyspCkBAIC0x
NjMsNiArMTY4LDkgQEAgTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoYwog
ICAgIC8vIHRoYXQgdGhlIHRyYWNrcyB3ZXJlIGFsbCBlbmRlZAogICAgIGlmIChwcm92aWRlZFRy
YWNrc1NpemUgPiAwICYmICF0cmFja3NTaXplKQogICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKKwor
ICAgIGlmIChwcm92aWRlZFRyYWNrc1NpemUgPiAwICYmIHRyYWNrc1NpemUgPiAwKQorICAgICAg
ICBtX2lzQWN0aXZlID0gdHJ1ZTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNldEVu
ZGVkKCkKQEAgLTE3Myw2ICsxODEsMTQgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNldEVu
ZGVkKCkKICAgICBtX2VuZGVkID0gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1f
Y2xpZW50LT5zdHJlYW1Jc0FjdGl2ZShhY3RpdmUpOworCisgICAgbV9pc0FjdGl2ZSA9IGFjdGl2
ZTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+IHBycFRyYWNrKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4gdHJhY2sgPSBwcnBUcmFjazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCShy
ZXZpc2lvbiAxNjc1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgc3RyZWFtRGlkRW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1J
c0FjdGl2ZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVNvdXJjZShNZWRp
YVN0cmVhbVNvdXJjZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNl
KE1lZGlhU3RyZWFtU291cmNlKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVUcmFj
ayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSopID0gMDsKQEAgLTg5LDYgKzkwLDkgQEAgcHVibGlj
OgogICAgIGJvb2wgZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2VuZGVkOyB9CiAgICAgdm9pZCBz
ZXRFbmRlZCgpOwogCisgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZl
OyB9CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CisKICAgICB2b2lkIGFkZFRyYWNrKFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+KTsKICAgICB2b2lkIHJlbW92ZVRyYWNrKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+KTsKIApAQCAtMTA3LDYgKzExMSw3IEBA
IHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1f
YXVkaW9Qcml2YXRlVHJhY2tzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+PiBtX3ZpZGVvUHJpdmF0ZVRyYWNrczsKICAgICBib29sIG1fZW5kZWQ7CisgICAgYm9v
bCBtX2lzQWN0aXZlOwogfTsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4+IE1lZGlhU3RyZWFtUHJpdmF0ZVZlY3RvcjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzY5
NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
IEBACisyMDE0LTA0LTIyICBQcmF2ZWVuIFIgSmFkaGF2ICA8cHJhdmVlbi5qQHNhbXN1bmcuY29t
PgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gSW1wbGVtZW50IE1lZGlhU3RyZWFtIGFjdGl2ZSBh
dHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTk3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhU3RyZWFtIC5vbmVuZGVkIGF0dHJpYnV0ZSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggLmFj
dGl2ZSBhdHRyaWJ1dGUuCisgICAgICAgIFBhdGNoIHVwZGF0ZXMgdGhlIHRlc3QgY2FzZSB0byB2
ZXJpZnkgdGhlIC5hY3RpdmUgYXR0cmlidXRlLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sOgorCiAy
MDE0LTA0LTIyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBT
a2lwIGZhc3QvZXZlbnRzL2dob3N0bHktbW91c2Vtb3Zlcy1pbi1zdWJmcmFtZS5odG1sIG9uIE1h
Yy9XSzEuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFk
ZC1yZW1vdmUtdHJhY2tzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTY3NTc2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTMsOCArMywxMCBAQCBUZXN0IGFkZGluZyBhbmQgcmVtb3ZpbmcgdHJhY2tzLgogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc3RyZWFtMS5hY3RpdmUgaXMgdHJ1ZQogUEFTUyBz
dHJlYW0xLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIFBBU1Mgc3RyZWFtMS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbTIuYWN0aXZlIGlzIHRydWUKIFBBU1Mg
c3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbTIuZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGggaXMgMQogCkBAIC01MCw2ICs1Miw3IEBAIFBBU1Mgc3RyZWFtMi5l
bmRlZCBpcyB0cnVlCiAqKiogaXQgc2hvdWxkIGJlIGltcG9zc2libGUgdG8gYWRkIGEgdHJhY2sg
YWZ0ZXIgdGhlIHN0cmVhbSBoYXMgZW5kZWQKIFBBU1Mgc3RyZWFtMi5hZGRUcmFjayhhdWRpb1Ry
YWNrKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0
aW9uIDExLgogUEFTUyBzdHJlYW0yLnJlbW92ZVRyYWNrKGF1ZGlvVHJhY2spIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitTdHJlYW0y
IGlzIGluYWN0aXZlLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFk
ZC1yZW1vdmUtdHJhY2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sCShyZXZpc2lvbiAxNjc1
NzYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1v
dmUtdHJhY2tzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE4ICs1MCwzMyBAQAogICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlwiYWRkdHJhY2tcIiBvciBcInJlbW92ZXRyYWNrXCIgZXZl
bnRzIHNob3VsZCBub3QgZmlyZSBhcyBhIHJlc3VsdCBvZiBsb2NhbCBhZGRUcmFjaygpIG9yIHJl
bW92ZVRyYWNrKCkgb3BlcmF0aW9ucy4iKTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAg
ZnVuY3Rpb24gc2hvdWxkRmlyZUFjdGl2ZSgpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiU3Ry
ZWFtMiBpcyBhY3RpdmUuIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEZpcmVJbkFjdGl2ZSgpIHsK
KyAgICAgICAgICAgICAgICBkZWJ1ZygiU3RyZWFtMiBpcyBpbmFjdGl2ZS4iKTsKKyAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZnVu
Y3Rpb24gZ290U3RyZWFtMihzKSB7CiAgICAgICAgICAgICAgICAgc3RyZWFtMiA9IHM7CiAKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMS5hY3RpdmUnLCAndHJ1ZScpOwogICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEn
KTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCcsICcxJyk7CiAKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5hY3RpdmUn
LCAndHJ1ZScpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0yLmdldEF1ZGlvVHJh
Y2tzKCkubGVuZ3RoJywgJzEnKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5n
ZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CiAKICAgICAgICAgICAgICAgICBzdHJlYW0x
Lm9uYWRkdHJhY2sgPSBzaG91bGROb3RGaXJlOwogICAgICAgICAgICAgICAgIHN0cmVhbTEub25y
ZW1vdmV0cmFjayA9IHNob3VsZE5vdEZpcmU7CiAKKyAgICAgICAgICAgICAgICBzdHJlYW0yLm9u
YWN0aXZlID0gc2hvdWxkRmlyZUFjdGl2ZTsKKyAgICAgICAgICAgICAgICBzdHJlYW0yLm9uaW5h
Y3RpdmUgPSBzaG91bGRGaXJlSW5BY3RpdmU7CisKICAgICAgICAgICAgICAgICBhdWRpb1RyYWNr
ID0gc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdOwogICAgICAgICAgICAgICAgIHZpZGVvVHJh
Y2sgPSBzdHJlYW0xLmdldFZpZGVvVHJhY2tzKClbMF07CiAKQEAgLTExOSw4ICsxMzQsNiBAQAog
ICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqIGl0IHNob3VsZCBiZSBpbXBvc3NpYmxlIHRv
IGFkZCBhIHRyYWNrIGFmdGVyIHRoZSBzdHJlYW0gaGFzIGVuZGVkIik7CiAgICAgICAgICAgICAg
ICAgc2hvdWxkVGhyb3coJ3N0cmVhbTIuYWRkVHJhY2soYXVkaW9UcmFjayknLCAnIkVycm9yOiBJ
bnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKICAgICAgICAgICAgICAgICBz
aG91bGRUaHJvdygnc3RyZWFtMi5yZW1vdmVUcmFjayhhdWRpb1RyYWNrKScsICciRXJyb3I6IElu
dmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExIicpOwotCi0gICAgICAgICAgICAgICAg
c2V0VGltZW91dChmaW5pc2hKU1Rlc3QsIDApOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBmdW5jdGlvbiBnb3RTdHJlYW0xKHMpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229952</attachid>
            <date>2014-04-22 21:10:07 -0700</date>
            <delta_ts>2014-04-23 22:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>MediaStream-131973.txt</filename>
            <type>text/plain</type>
            <size>12616</size>
            <attacher name="Praveen Jadhav">praveen.j</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzY5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTIyICBQcmF2ZWVu
IFIgSmFkaGF2ICA8cHJhdmVlbi5qQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gSW1wbGVtZW50IE1lZGlhU3RyZWFtIGFjdGl2ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTk3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhU3RyZWFtIC5hY3RpdmUgYXR0
cmlidXRlIGFyZSBpbnRyb2R1Y2VkIHdoaWNoIHdpbGwgcmVwbGFjZQorICAgICAgICAuZW5kZWQg
YXR0cmlidXRlLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIG5ld2x5IGludHJvZHVjZWQgYXR0
cmlidXRlcy4KKworICAgICAgICBNZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sIGlz
IHVwZGF0ZWQgdG8gaGFuZGxlIHRoaXMgc2NlbmFyaW8uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
OjphY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OnNldEFjdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OnJlbW92ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtOjp0cmFja0RpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6c3RyZWFt
RGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpzdHJlYW1Jc0FjdGl2ZSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJl
YW1Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0RW5k
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzZXRBY3RpdmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphY3RpdmUpOgorCiAyMDE0LTA0LTIy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHBhaW50
IGJvcmRlciBpbWFnZSB3aGVuIHRoZSBib3JkZXIgcmVjdCBpcyBlbXB0eS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCShy
ZXZpc2lvbiAxNjc1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiwxOCBAQCB2b2lkIE1l
ZGlhU3RyZWFtOjpzZXRFbmRlZCgpCiAgICAgbV9wcml2YXRlLT5zZXRFbmRlZCgpOwogfQogCiti
b29sIE1lZGlhU3RyZWFtOjphY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUt
PmFjdGl2ZSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2
ZSkKK3sKKyAgICBpZiAoYWN0aXZlKCkgPT0gaXNBY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX3ByaXZhdGUtPnNldEFjdGl2ZShpc0FjdGl2ZSk7Cit9CisKIFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrPj4gdHJhY2tTZXQ7CkBAIC0xNzIsNiArMTg0LDcgQEAgYm9vbCBNZWRpYVN0cmVh
bTo6YWRkVHJhY2soUGFzc1JlZlB0cjxNZQogICAgIHRyYWNrcy0+YXBwZW5kKHRyYWNrKTsKICAg
ICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CiAgICAgbV9wcml2YXRlLT5hZGRUcmFjaygmdHJh
Y2stPnByaXZhdGVUcmFjaygpKTsKKyAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTIxNCw4ICsyMjcsMTAgQEAgYm9vbCBNZWRpYVN0cmVhbTo6cmVtb3ZlVHJh
Y2soUGFzc1JlZlB0cgogICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVNvdXJjZSh0cmFjay0+c291
cmNlKCkpOwogCiAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKHRoaXMpOwotICAgIGlmICghbV9h
dWRpb1RyYWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgpKQorICAgIGlmICghbV9h
dWRpb1RyYWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgpKSB7CiAgICAgICAgIHNl
dEVuZGVkKCk7CisgICAgICAgIHNldEFjdGl2ZShmYWxzZSk7CisgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0yNjUsNiArMjgwLDkgQEAgdm9pZCBNZWRpYVN0cmVhbTo6dHJhY2tEaWRF
bmQoKQogICAgIH0KIAogICAgIHNldEVuZGVkKCk7CisKKyAgICBpZiAoIW1fYXVkaW9UcmFja3Mu
c2l6ZSgpICYmICFtX3ZpZGVvVHJhY2tzLnNpemUoKSkKKyAgICAgICAgc2V0QWN0aXZlKGZhbHNl
KTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRGlkRW5kKCkKQEAgLTI3NSw2ICsyOTMs
MTcgQEAgdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRGlkRW5kKCkKICAgICBzY2hlZHVsZURpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kZWRFdmVudCwgZmFsc2UsIGZh
bHNlKSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW06OnN0cmVhbUlzQWN0aXZlKGJvb2wgc3RyZWFt
QWN0aXZlKQoreworICAgIGlmIChhY3RpdmUoKSA9PSBzdHJlYW1BY3RpdmUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChzdHJlYW1BY3RpdmUpCisgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudCwgZmFsc2UsIGZhbHNl
KSk7CisgICAgZWxzZQorICAgICAgICBzY2hlZHVsZURpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuaW5hY3RpdmVFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cit9CisKIHZvaWQg
TWVkaWFTdHJlYW06OmNvbnRleHREZXN0cm95ZWQoKQogewogICAgIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCShyZXZpc2lvbiAxNjc1NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDYgKzc1LDEyIEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGFkZHRyYWNrKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKHJlbW92ZXRyYWNrKTsKIAorICAgIGJvb2wgYWN0aXZlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRBY3RpdmUoYm9vbCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGFjdGl2ZSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbmFjdGl2ZSk7
CisKICAgICBNZWRpYVN0cmVhbVByaXZhdGUqIHByaXZhdGVTdHJlYW0oKSBjb25zdCB7IHJldHVy
biBtX3ByaXZhdGUuZ2V0KCk7IH0KIAogICAgIC8vIEV2ZW50VGFyZ2V0CkBAIC0xMDQsNiArMTEw
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQKICAgICB2aXJ0
dWFsIHZvaWQgdHJhY2tEaWRFbmQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQg
c3RyZWFtRGlkRW5kKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHN0cmVhbUlz
QWN0aXZlKGJvb2wpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVT
b3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Kikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbAkocmV2aXNpb24gMTY3NTc2KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDYgKzQ4LDExIEBACiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25hZGR0
cmFjazsKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlbW92ZXRyYWNrOwogCisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYWN0aXZlOworCisgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25hY3RpdmU7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25pbmFjdGl2
ZTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMTY3
NTc2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTYzLDYgKzE2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh2b2x1bWVj
aGFuZ2UpIFwKICAgICBtYWNybyh3YWl0aW5nKSBcCiAgICAgXAorICAgIG1hY3JvKGFjdGl2ZSkg
XAorICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8oYWRkdHJhY2spIFwKICAgICBtYWNy
byhjdWVjaGFuZ2UpIFwKICAgICBtYWNybyhlbnRlcikgXApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwCShyZXZpc2lvbiAxNjc1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5
LDcgQEAgTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoYwogICAgIDogbV9j
bGllbnQoMCkKICAgICAsIG1faWQoaWQpCiAgICAgLCBtX2VuZGVkKGZhbHNlKQorICAgICwgbV9p
c0FjdGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQobV9pZC5sZW5ndGgoKSk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBhdWRpb1NvdXJjZXMuc2l6ZSgpOyBpKyspCkBAIC0xNDMsMTIgKzE0
NCwxNiBAQCBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShjCiAgICAgLy8g
dGhhdCB0aGUgdHJhY2tzIHdlcmUgYWxsIGVuZGVkCiAgICAgaWYgKHByb3ZpZGVkU291cmNlc1Np
emUgPiAwICYmICF0cmFja3NTaXplKQogICAgICAgICBtX2VuZGVkID0gdHJ1ZTsKKworICAgIGlm
IChwcm92aWRlZFNvdXJjZXNTaXplID4gMCAmJiB0cmFja3NTaXplID4gMCkKKyAgICAgICAgbV9p
c0FjdGl2ZSA9IHRydWU7CiB9CiAKIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2
YXRlKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+PiYgYXVkaW9Qcml2YXRlVHJhY2tzLCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPj4mIHZpZGVvUHJpdmF0ZVRyYWNrcykKICAgICA6IG1fY2xpZW50
KDApCiAgICAgLCBtX2lkKGlkKQogICAgICwgbV9lbmRlZChmYWxzZSkKKyAgICAsIG1faXNBY3Rp
dmUoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1faWQubGVuZ3RoKCkpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYXVkaW9Qcml2YXRlVHJhY2tzLnNpemUoKTsgaSsrKQpAQCAtMTYzLDYgKzE2
OCw5IEBAIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGMKICAgICAvLyB0
aGF0IHRoZSB0cmFja3Mgd2VyZSBhbGwgZW5kZWQKICAgICBpZiAocHJvdmlkZWRUcmFja3NTaXpl
ID4gMCAmJiAhdHJhY2tzU2l6ZSkKICAgICAgICAgbV9lbmRlZCA9IHRydWU7CisKKyAgICBpZiAo
cHJvdmlkZWRUcmFja3NTaXplID4gMCAmJiB0cmFja3NTaXplID4gMCkKKyAgICAgICAgbV9pc0Fj
dGl2ZSA9IHRydWU7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzZXRFbmRlZCgpCkBA
IC0xNzMsNiArMTgxLDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzZXRFbmRlZCgpCiAg
ICAgbV9lbmRlZCA9IHRydWU7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzZXRBY3Rp
dmUoYm9vbCBhY3RpdmUpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+
c3RyZWFtSXNBY3RpdmUoYWN0aXZlKTsKKworICAgIG1faXNBY3RpdmUgPSBhY3RpdmU7Cit9CisK
IHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPiBwcnBUcmFjaykKIHsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+IHRyYWNrID0gcHJwVHJhY2s7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAkocmV2aXNpb24g
MTY3NTc2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHN0cmVhbURpZEVuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtSXNBY3RpdmUo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1T
b3VyY2UqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVNvdXJjZShNZWRpYVN0
cmVhbVNvdXJjZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUqKSA9IDA7CkBAIC04OSw2ICs5MCw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRlZDsgfQogICAgIHZvaWQgc2V0RW5kZWQo
KTsKIAorICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQorICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpOworCiAgICAgdm9pZCBhZGRUcmFjayhQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlPik7CiAgICAgdm9pZCByZW1vdmVUcmFjayhQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPik7CiAKQEAgLTEwNyw2ICsxMTEsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX2F1ZGlvUHJp
dmF0ZVRyYWNrczsKICAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4g
bV92aWRlb1ByaXZhdGVUcmFja3M7CiAgICAgYm9vbCBtX2VuZGVkOworICAgIGJvb2wgbV9pc0Fj
dGl2ZTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+PiBN
ZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjc2OTUpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAx
NC0wNC0yMiAgUHJhdmVlbiBSIEphZGhhdiAgPHByYXZlZW4uakBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbTWVkaWFTdHJlYW1dIEltcGxlbWVudCBNZWRpYVN0cmVhbSBhY3RpdmUgYXR0cmlidXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE5NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYVN0
cmVhbSAub25lbmRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIC5hY3RpdmUgYXR0
cmlidXRlLgorICAgICAgICBQYXRjaCB1cGRhdGVzIHRoZSB0ZXN0IGNhc2UgdG8gdmVyaWZ5IHRo
ZSAuYWN0aXZlIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0tYWRkLXJlbW92ZS10cmFja3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbDoKKwogMjAxNC0wNC0y
MiAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBmYXN0
L2V2ZW50cy9naG9zdGx5LW1vdXNlbW92ZXMtaW4tc3ViZnJhbWUuaHRtbCBvbiBNYWMvV0sxLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3Zl
LXRyYWNrcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE2NzU3NikKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0t
YWRkLXJlbW92ZS10cmFja3MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMs
MTAgQEAgVGVzdCBhZGRpbmcgYW5kIHJlbW92aW5nIHRyYWNrcy4KIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCitQQVNTIHN0cmVhbTEuYWN0aXZlIGlzIHRydWUKIFBBU1Mgc3RyZWFtMS5n
ZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbTEuZ2V0VmlkZW9UcmFja3Mo
KS5sZW5ndGggaXMgMQorUEFTUyBzdHJlYW0yLmFjdGl2ZSBpcyB0cnVlCiBQQVNTIHN0cmVhbTIu
Z2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyBzdHJlYW0yLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIGlzIDEKIApAQCAtNTAsNiArNTIsNyBAQCBQQVNTIHN0cmVhbTIuZW5kZWQgaXMg
dHJ1ZQogKioqIGl0IHNob3VsZCBiZSBpbXBvc3NpYmxlIHRvIGFkZCBhIHRyYWNrIGFmdGVyIHRo
ZSBzdHJlYW0gaGFzIGVuZGVkCiBQQVNTIHN0cmVhbTIuYWRkVHJhY2soYXVkaW9UcmFjaykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4K
IFBBU1Mgc3RyZWFtMi5yZW1vdmVUcmFjayhhdWRpb1RyYWNrKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorU3RyZWFtMiBpcyBpbmFj
dGl2ZS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3Zl
LXRyYWNrcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbAkocmV2aXNpb24gMTY3NTc2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNr
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxOCArNTAsMzMgQEAKICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJcImFkZHRyYWNrXCIgb3IgXCJyZW1vdmV0cmFja1wiIGV2ZW50cyBzaG91
bGQgbm90IGZpcmUgYXMgYSByZXN1bHQgb2YgbG9jYWwgYWRkVHJhY2soKSBvciByZW1vdmVUcmFj
aygpIG9wZXJhdGlvbnMuIik7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHNob3VsZEZpcmVBY3RpdmUoKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIlN0cmVhbTIgaXMg
YWN0aXZlLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRGaXJlSW5BY3RpdmUoKSB7CisgICAgICAg
ICAgICAgICAgZGVidWcoIlN0cmVhbTIgaXMgaW5hY3RpdmUuIik7CisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGZ1bmN0aW9uIGdv
dFN0cmVhbTIocykgewogICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBzOwogCisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbTEuYWN0aXZlJywgJ3RydWUnKTsKICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgnc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CiAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAn
MScpOwogCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuYWN0aXZlJywgJ3RydWUn
KTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpLmxl
bmd0aCcsICcxJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0VmlkZW9U
cmFja3MoKS5sZW5ndGgnLCAnMScpOwogCiAgICAgICAgICAgICAgICAgc3RyZWFtMS5vbmFkZHRy
YWNrID0gc2hvdWxkTm90RmlyZTsKICAgICAgICAgICAgICAgICBzdHJlYW0xLm9ucmVtb3ZldHJh
Y2sgPSBzaG91bGROb3RGaXJlOwogCisgICAgICAgICAgICAgICAgc3RyZWFtMi5vbmFjdGl2ZSA9
IHNob3VsZEZpcmVBY3RpdmU7CisgICAgICAgICAgICAgICAgc3RyZWFtMi5vbmluYWN0aXZlID0g
c2hvdWxkRmlyZUluQWN0aXZlOworCiAgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHN0cmVh
bTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKICAgICAgICAgICAgICAgICB2aWRlb1RyYWNrID0gc3Ry
ZWFtMS5nZXRWaWRlb1RyYWNrcygpWzBdOwogCkBAIC0xMTksOCArMTM0LDYgQEAKICAgICAgICAg
ICAgICAgICBkZWJ1ZygiPGJyPioqKiBpdCBzaG91bGQgYmUgaW1wb3NzaWJsZSB0byBhZGQgYSB0
cmFjayBhZnRlciB0aGUgc3RyZWFtIGhhcyBlbmRlZCIpOwogICAgICAgICAgICAgICAgIHNob3Vs
ZFRocm93KCdzdHJlYW0yLmFkZFRyYWNrKGF1ZGlvVHJhY2spJywgJyJFcnJvcjogSW52YWxpZFN0
YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEiJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkVGhy
b3coJ3N0cmVhbTIucmVtb3ZlVHJhY2soYXVkaW9UcmFjayknLCAnIkVycm9yOiBJbnZhbGlkU3Rh
dGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMSInKTsKLQotICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZmluaXNoSlNUZXN0LCAwKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rp
b24gZ290U3RyZWFtMShzKSB7Cg==
</data>
<flag name="review"
          id="254314"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230050</attachid>
            <date>2014-04-23 22:24:11 -0700</date>
            <delta_ts>2014-04-24 06:33:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>MediaStream-131973.txt</filename>
            <type>text/plain</type>
            <size>13975</size>
            <attacher name="Praveen Jadhav">praveen.j</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Nzc0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTIzICBQcmF2ZWVu
IFIgSmFkaGF2ICA8cHJhdmVlbi5qQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gSW1wbGVtZW50IE1lZGlhU3RyZWFtIGFjdGl2ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTk3MworCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBNZWRpYVN0cmVhbSAuYWN0aXZlIGF0dHJp
YnV0ZSBhcmUgaW50cm9kdWNlZCB3aGljaCB3aWxsIHJlcGxhY2UKKyAgICAgICAgLmVuZGVkIGF0
dHJpYnV0ZS4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGF0dHJp
YnV0ZXMuCisKKyAgICAgICAgTWVkaWFTdHJlYW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbCBpcyB1
cGRhdGVkIHRvIGhhbmRsZSB0aGlzIHNjZW5hcmlvLgorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6
YWN0aXZlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6c2V0QWN0aXZl
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6YWRkVHJhY2spOiBQcm9w
YWdhdGVzICdvbmFjdGl2ZScgZXZlbnQgd2hlbiByZXF1aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpyZW1vdmVUcmFjayk6IFByb3BhZ2F0ZXMgJ29uaW5hY3RpdmUnIGV2ZW50
IHdoZW4gcmVxdWlyZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6dHJhY2tEaWRF
bmQpOiBQcm9wYWdhdGVzICdvbmluYWN0aXZlJyBldmVudCB3aGVuIHJlcXVpcmVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OnN0cmVhbURpZEVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbTo6c2V0U3RyZWFtSXNBY3RpdmUpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUpOiBJbml0
aWFsaXplIC5hY3RpdmUgYXR0cmlidXRlCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVBy
aXZhdGU6OnNldEVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6
c2V0QWN0aXZlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmFj
dGl2ZSk6IEFkZGVkLgorCiAyMDE0LTA0LTIzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIGZpeCBDRiBsZWFrcyBmb3VuZCBieSBjb2RlIGluc3BlY3Rp
b24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxNjc3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEy
NiwxOCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzZXRFbmRlZCgpCiAgICAgbV9wcml2YXRlLT5zZXRF
bmRlZCgpOwogfQogCitib29sIE1lZGlhU3RyZWFtOjphY3RpdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmFjdGl2ZSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtOjpzZXRBY3Rp
dmUoYm9vbCBpc0FjdGl2ZSkKK3sKKyAgICBpZiAoYWN0aXZlKCkgPT0gaXNBY3RpdmUpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3ByaXZhdGUtPnNldEFjdGl2ZShpc0FjdGl2ZSk7Cit9CisKIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCiB7CiAgICAgVmVjdG9y
PFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gdHJhY2tTZXQ7CkBAIC0xNzIsNiArMTg0LDcgQEAg
Ym9vbCBNZWRpYVN0cmVhbTo6YWRkVHJhY2soUGFzc1JlZlB0cjxNZQogICAgIHRyYWNrcy0+YXBw
ZW5kKHRyYWNrKTsKICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CiAgICAgbV9wcml2YXRl
LT5hZGRUcmFjaygmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKKyAgICBzZXRBY3RpdmUodHJ1ZSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIxNCw4ICsyMjcsMTAgQEAgYm9vbCBNZWRpYVN0
cmVhbTo6cmVtb3ZlVHJhY2soUGFzc1JlZlB0cgogICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVNv
dXJjZSh0cmFjay0+c291cmNlKCkpOwogCiAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKHRoaXMp
OwotICAgIGlmICghbV9hdWRpb1RyYWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgp
KQotICAgICAgICBzZXRFbmRlZCgpOworICAgIGlmICghbV9hdWRpb1RyYWNrcy5zaXplKCkgJiYg
IW1fdmlkZW9UcmFja3Muc2l6ZSgpKSB7CisgICAgICAgIHNldEVuZGVkKCk7IC8vIEZJWE1FIDog
dG8gYmUgcmVtb3ZlZCBpbiBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMjEwNAorICAgICAgICBzZXRBY3RpdmUoZmFsc2UpOworICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMjY0LDcgKzI3OSwxMCBAQCB2b2lkIE1lZGlhU3RyZWFtOjp0cmFja0Rp
ZEVuZCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2V0RW5kZWQoKTsKKyAg
ICBzZXRFbmRlZCgpOyAvLyBGSVhNRSA6IHRvIGJlIHJlbW92ZWQgaW4gYnVnIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIxMDQKKworICAgIGlmICghbV9hdWRpb1Ry
YWNrcy5zaXplKCkgJiYgIW1fdmlkZW9UcmFja3Muc2l6ZSgpKQorICAgICAgICBzZXRBY3RpdmUo
ZmFsc2UpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpzdHJlYW1EaWRFbmQoKQpAQCAtMjc1LDYg
KzI5MywxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzdHJlYW1EaWRFbmQoKQogICAgIHNjaGVkdWxl
RGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbTo6c2V0U3RyZWFtSXNBY3RpdmUoYm9v
bCBzdHJlYW1BY3RpdmUpCit7CisgICAgaWYgKHN0cmVhbUFjdGl2ZSkKKyAgICAgICAgc2NoZWR1
bGVEaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFjdGl2ZUV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKKyAgICBlbHNlCisgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbmFjdGl2ZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsK
K30KKwogdm9pZCBNZWRpYVN0cmVhbTo6Y29udGV4dERlc3Ryb3llZCgpCiB7CiAgICAgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlzaW9u
IDE2NzcwMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTIgQEAgcHVibGljOgogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYWRkdHJhY2spOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIocmVtb3ZldHJhY2spOwogCisgICAgYm9vbCBhY3RpdmUoKSBjb25z
dDsKKyAgICB2b2lkIHNldEFjdGl2ZShib29sKTsKKworICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoYWN0aXZlKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGluYWN0aXZlKTsKKwogICAgIE1lZGlhU3RyZWFtUHJpdmF0ZSogcHJpdmF0ZVN0cmVhbSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQogCiAgICAgLy8gRXZlbnRUYXJnZXQKQEAg
LTEwNCw2ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBzdHJlYW1EaWRFbmQoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U3RyZWFtSXNBY3RpdmUoYm9vbCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2
b2lkIGFkZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopIG92ZXJyaWRlIGZpbmFsOwog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBv
dmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUqKSBvdmVycmlkZSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsCShyZXZpc2lvbiAxNjc3
MDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMTEgQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmFkZHRyYWNrOwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVtb3Zl
dHJhY2s7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhY3RpdmU7CisKKyAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFjdGl2ZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmluYWN0aXZlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CShyZXZpc2lvbiAxNjc3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjMsNiArMTYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKHZvbHVtZWNoYW5nZSkgXAogICAgIG1hY3JvKHdhaXRpbmcpIFwKICAgICBcCisgICAg
bWFjcm8oYWN0aXZlKSBcCisgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhhZGR0cmFj
aykgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGVudGVyKSBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHAJKHJldmlzaW9uIDE2NzcwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyOSw2ICsxMjksNyBAQCBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0
ZShjCiAgICAgOiBtX2NsaWVudCgwKQogICAgICwgbV9pZChpZCkKICAgICAsIG1fZW5kZWQoZmFs
c2UpCisgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQogewogICAgIEFTU0VSVChtX2lkLmxlbmd0aCgp
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF1ZGlvU291cmNlcy5zaXplKCk7IGkrKykK
QEAgLTE0MCwxNSArMTQxLDIwIEBAIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2
YXRlKGMKICAgICB1bnNpZ25lZCBwcm92aWRlZFNvdXJjZXNTaXplID0gYXVkaW9Tb3VyY2VzLnNp
emUoKSArIHZpZGVvU291cmNlcy5zaXplKCk7CiAgICAgdW5zaWduZWQgdHJhY2tzU2l6ZSA9IG1f
YXVkaW9Qcml2YXRlVHJhY2tzLnNpemUoKSArIG1fdmlkZW9Qcml2YXRlVHJhY2tzLnNpemUoKTsK
ICAgICAvLyBJZiBzb3VyY2VzIHdlcmUgcHJvdmlkZWQgYW5kIG5vIHRyYWNrIHdhcyBhZGRlZCB0
byB0aGUgTWVkaWFTdHJlYW1Qcml2YXRlJ3MgdHJhY2tzLCB0aGlzIG1lYW5zCi0gICAgLy8gdGhh
dCB0aGUgdHJhY2tzIHdlcmUgYWxsIGVuZGVkCisgICAgLy8gdGhhdCB0aGUgdHJhY2tzIHdlcmUg
YWxsIGVuZGVkLgorICAgIC8vIERlcHJlY2F0ZWQuIHRvIGJlIHJlbW92ZWQgaW4gYnVnIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIxMDQKICAgICBpZiAocHJvdmlk
ZWRTb3VyY2VzU2l6ZSA+IDAgJiYgIXRyYWNrc1NpemUpCiAgICAgICAgIG1fZW5kZWQgPSB0cnVl
OworCisgICAgaWYgKHByb3ZpZGVkU291cmNlc1NpemUgPiAwICYmIHRyYWNrc1NpemUgPiAwKQor
ICAgICAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKIH0KIAogTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRp
YVN0cmVhbVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiBhdWRpb1ByaXZhdGVUcmFja3MsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYgdmlkZW9Qcml2YXRlVHJhY2tzKQogICAg
IDogbV9jbGllbnQoMCkKICAgICAsIG1faWQoaWQpCiAgICAgLCBtX2VuZGVkKGZhbHNlKQorICAg
ICwgbV9pc0FjdGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQobV9pZC5sZW5ndGgoKSk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdWRpb1ByaXZhdGVUcmFja3Muc2l6ZSgpOyBpKyspCkBA
IC0xNjEsOCArMTY3LDEyIEBAIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRl
KGMKICAgICB1bnNpZ25lZCB0cmFja3NTaXplID0gbV9hdWRpb1ByaXZhdGVUcmFja3Muc2l6ZSgp
ICsgbV92aWRlb1ByaXZhdGVUcmFja3Muc2l6ZSgpOwogICAgIC8vIElmIHRyYWNrcyB3ZXJlIHBy
b3ZpZGVkIGFuZCBubyBvbmUgd2FzIGFkZGVkIHRvIHRoZSBNZWRpYVN0cmVhbVByaXZhdGUncyB0
cmFja3MsIHRoaXMgbWVhbnMKICAgICAvLyB0aGF0IHRoZSB0cmFja3Mgd2VyZSBhbGwgZW5kZWQK
KyAgICAvLyBEZXByZWNhdGVkLiB0byBiZSByZW1vdmVkIGluIGJ1ZyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMTA0CiAgICAgaWYgKHByb3ZpZGVkVHJhY2tzU2l6
ZSA+IDAgJiYgIXRyYWNrc1NpemUpCiAgICAgICAgIG1fZW5kZWQgPSB0cnVlOworCisgICAgaWYg
KHByb3ZpZGVkVHJhY2tzU2l6ZSA+IDAgJiYgdHJhY2tzU2l6ZSA+IDApCisgICAgICAgIG1faXNB
Y3RpdmUgPSB0cnVlOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0RW5kZWQoKQpA
QCAtMTczLDYgKzE4MywxNiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0RW5kZWQoKQog
ICAgIG1fZW5kZWQgPSB0cnVlOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2V0QWN0
aXZlKGJvb2wgYWN0aXZlKQoreworICAgIGlmIChtX2lzQWN0aXZlICE9IGFjdGl2ZSkgeworICAg
ICAgICBtX2lzQWN0aXZlID0gYWN0aXZlOworCisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5zZXRTdHJlYW1Jc0FjdGl2ZShhY3RpdmUpOworICAgIH0KK30KKwog
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+IHBycFRyYWNrKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gdHJhY2sgPSBwcnBUcmFjazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCShyZXZpc2lvbiAx
Njc3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgc3RyZWFtRGlkRW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdHJlYW1Jc0FjdGl2
ZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVh
bVNvdXJjZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlh
U3RyZWFtU291cmNlKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVUcmFjayhNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSopID0gMDsKQEAgLTg2LDkgKzg3LDEzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFkZFJlbW90ZVNvdXJjZShNZWRpYVN0cmVhbVNvdXJjZSopOwogICAgIHZvaWQgcmVt
b3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKik7CiAKKyAgICAvLyBEZXByZWNhdGVk
LiB0byBiZSByZW1vdmVkIGluIGJ1ZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMyMTA0CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kZWQ7IH0K
ICAgICB2b2lkIHNldEVuZGVkKCk7CiAKKyAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNBY3RpdmU7IH0KKyAgICB2b2lkIHNldEFjdGl2ZShib29sKTsKKwogICAgIHZvaWQgYWRk
VHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4pOwogICAgIHZvaWQgcmVt
b3ZlVHJhY2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4pOwogCkBAIC0xMDYs
NyArMTExLDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+PiBtX2F1ZGlvUHJpdmF0ZVRyYWNrczsKICAgICBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPj4gbV92aWRlb1ByaXZhdGVUcmFja3M7Ci0gICAgYm9vbCBtX2Vu
ZGVkOworICAgIGJvb2wgbV9lbmRlZDsgLy8gRGVwcmVjYXRlZC4gdG8gYmUgcmVtb3ZlZCBpbiBi
dWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjEwNAorICAgIGJv
b2wgbV9pc0FjdGl2ZTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVBy
aXZhdGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjc3
NDgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxNC0wNC0yMyAgUHJhdmVlbiBSIEphZGhhdiAgPHByYXZlZW4uakBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIEltcGxlbWVudCBNZWRpYVN0cmVhbSBhY3RpdmUg
YXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzE5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
TWVkaWFTdHJlYW0gLm9uZW5kZWQgYXR0cmlidXRlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCAuYWN0
aXZlIGF0dHJpYnV0ZS4KKyAgICAgICAgUGF0Y2ggdXBkYXRlcyB0aGUgdGVzdCBjYXNlIHRvIHZl
cmlmeSB0aGUgLmFjdGl2ZSBhdHRyaWJ1dGUuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLmh0bWw6CisKIDIw
MTQtMDQtMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
RWxpbWluYXRlIGludGVybmFscy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Nzcw
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXJlbW92
ZS10cmFja3MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsMTAgQEAgVGVz
dCBhZGRpbmcgYW5kIHJlbW92aW5nIHRyYWNrcy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCitQQVNTIHN0cmVhbTEuYWN0aXZlIGlzIHRydWUKIFBBU1Mgc3RyZWFtMS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgg
aXMgMQorUEFTUyBzdHJlYW0yLmFjdGl2ZSBpcyB0cnVlCiBQQVNTIHN0cmVhbTIuZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
IGlzIDEKIApAQCAtNTAsNiArNTIsNyBAQCBQQVNTIHN0cmVhbTIuZW5kZWQgaXMgdHJ1ZQogKioq
IGl0IHNob3VsZCBiZSBpbXBvc3NpYmxlIHRvIGFkZCBhIHRyYWNrIGFmdGVyIHRoZSBzdHJlYW0g
aGFzIGVuZGVkCiBQQVNTIHN0cmVhbTIuYWRkVHJhY2soYXVkaW9UcmFjaykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KIFBBU1Mgc3Ry
ZWFtMi5yZW1vdmVUcmFjayhhdWRpb1RyYWNrKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFs
aWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorU3RyZWFtMiBpcyBpbmFjdGl2ZS4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tYWRkLXJlbW92ZS10cmFja3MuaHRtbAkocmV2aXNpb24gMTY3NzAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtcmVtb3ZlLXRyYWNrcy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC01MCwxOCArNTAsMzMgQEAKICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJcImFkZHRyYWNrXCIgb3IgXCJyZW1vdmV0cmFja1wiIGV2ZW50cyBzaG91bGQgbm90IGZp
cmUgYXMgYSByZXN1bHQgb2YgbG9jYWwgYWRkVHJhY2soKSBvciByZW1vdmVUcmFjaygpIG9wZXJh
dGlvbnMuIik7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEZp
cmVBY3RpdmUoKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIlN0cmVhbTIgaXMgYWN0aXZlLiIp
OworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBzaG91bGRGaXJlSW5BY3RpdmUoKSB7CisgICAgICAgICAgICAgICAg
ZGVidWcoIlN0cmVhbTIgaXMgaW5hY3RpdmUuIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTIo
cykgewogICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBzOwogCisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoJ3N0cmVhbTEuYWN0aXZlJywgJ3RydWUnKTsKICAgICAgICAgICAgICAgICBzaG91bGRC
ZSgnc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CiAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoJ3N0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwogCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuYWN0aXZlJywgJ3RydWUnKTsKICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcx
Jyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKS5s
ZW5ndGgnLCAnMScpOwogCiAgICAgICAgICAgICAgICAgc3RyZWFtMS5vbmFkZHRyYWNrID0gc2hv
dWxkTm90RmlyZTsKICAgICAgICAgICAgICAgICBzdHJlYW0xLm9ucmVtb3ZldHJhY2sgPSBzaG91
bGROb3RGaXJlOwogCisgICAgICAgICAgICAgICAgc3RyZWFtMi5vbmFjdGl2ZSA9IHNob3VsZEZp
cmVBY3RpdmU7CisgICAgICAgICAgICAgICAgc3RyZWFtMi5vbmluYWN0aXZlID0gc2hvdWxkRmly
ZUluQWN0aXZlOworCiAgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHN0cmVhbTEuZ2V0QXVk
aW9UcmFja3MoKVswXTsKICAgICAgICAgICAgICAgICB2aWRlb1RyYWNrID0gc3RyZWFtMS5nZXRW
aWRlb1RyYWNrcygpWzBdOwogCkBAIC0xMTksOCArMTM0LDYgQEAKICAgICAgICAgICAgICAgICBk
ZWJ1ZygiPGJyPioqKiBpdCBzaG91bGQgYmUgaW1wb3NzaWJsZSB0byBhZGQgYSB0cmFjayBhZnRl
ciB0aGUgc3RyZWFtIGhhcyBlbmRlZCIpOwogICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCdz
dHJlYW0yLmFkZFRyYWNrKGF1ZGlvVHJhY2spJywgJyJFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6
IERPTSBFeGNlcHRpb24gMTEiJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ3N0cmVh
bTIucmVtb3ZlVHJhY2soYXVkaW9UcmFjayknLCAnIkVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxMSInKTsKLQotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZmluaXNo
SlNUZXN0LCAwKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZ290U3Ry
ZWFtMShzKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>