<?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>133365</bug_id>
          
          <creation_ts>2014-05-28 17:05:29 -0700</creation_ts>
          <short_desc>Captions during HLS playback flash/are difficult to read</short_desc>
          <delta_ts>2014-05-28 20:22:52 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>132715</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philipj</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012320</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-28 17:05:29 -0700</bug_when>
    <thetext>Playing certain HLS media with captions results in &quot;flashing&quot; cues, which are difficult to read.

This is happening for two reasons:

1. HLS streams may send multiple copies of the same cue, with small differences in time values. For example, a closed caption encoding device on a live video feed might inject track cues at roughly 24 fps, with multiple cues containing the same text content, but having different start and end times. This results in cues with a &apos;duration&apos; on the order of hundredths of a second, which are too quick to read.
2. A bug I introduced in &lt;http://trac.webkit.org/changeset/166180&gt; caused us to miss some non-WebVTT cues. This would happen when WebKit improperly decided a new cue matched an existing cue. These missing cues contributed to the &quot;flashing&quot; behavior.

This bug corrects both of these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012321</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-28 17:06:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/16584132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012324</commentid>
    <comment_count>2</comment_count>
      <attachid>232223</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-28 17:16:33 -0700</bug_when>
    <thetext>Created attachment 232223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012341</commentid>
    <comment_count>3</comment_count>
      <attachid>232223</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-28 18:47:30 -0700</bug_when>
    <thetext>Comment on attachment 232223
Patch

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

Thanks!

&gt; Source/WebCore/html/track/DataCue.cpp:-131
&gt; -    if (cue.cueType() != TextTrackCue::Data)
&gt; -        return false;
&gt; -

Is it necessary to remove this? If so, how can it be safe given that we call toDataCue() below (which will ASSERT if passed a non-datacue)?

&gt; Source/WebCore/html/track/TextTrackCue.cpp:242
&gt; +bool TextTrackCue::isStartOfCue(const TextTrackCue&amp; cue) const

I am not wild about this name because I didn&apos;t know what it was supposed to check until I found it and read the code. How about something like &quot;isCueExtension&quot;, or &quot;extendsCue&quot;? Or something else...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012344</commentid>
    <comment_count>4</comment_count>
      <attachid>232223</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-28 20:07:15 -0700</bug_when>
    <thetext>Comment on attachment 232223
Patch

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

&gt;&gt; Source/WebCore/html/track/DataCue.cpp:-131
&gt;&gt; -
&gt; 
&gt; Is it necessary to remove this? If so, how can it be safe given that we call toDataCue() below (which will ASSERT if passed a non-datacue)?

It&apos;s still part of the &quot;isEqual&quot; method (see below), but I&apos;ll add it back here so we can avoid ASSERTing.

&gt;&gt; Source/WebCore/html/track/TextTrackCue.cpp:242
&gt;&gt; +bool TextTrackCue::isStartOfCue(const TextTrackCue&amp; cue) const
&gt; 
&gt; I am not wild about this name because I didn&apos;t know what it was supposed to check until I found it and read the code. How about something like &quot;isCueExtension&quot;, or &quot;extendsCue&quot;? Or something else...

I&apos;ll use &quot;doesExtendCue&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012349</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-28 20:22:52 -0700</bug_when>
    <thetext>Committed r169440: &lt;http://trac.webkit.org/changeset/169440&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232223</attachid>
            <date>2014-05-28 17:16:33 -0700</date>
            <delta_ts>2014-05-28 20:07:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133365-20140528171609.patch</filename>
            <type>text/plain</type>
            <size>13722</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTQzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA1LTI4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENhcHRpb25zIGR1cmluZyBI
TFMgcGxheWJhY2sgZmxhc2gvYXJlIGRpZmZpY3VsdCB0byByZWFkaWx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzNjUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzE2NTg0MTMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvcnJlY3QgdHdvIHByb2JsZW1zOgorICAgICAgICAxLiBBZGQgbmV3IGxv
Z2ljIHRvIGhhbmRsZSBjdWVzIHRoYXQgYXJlIGlkZW50aWNhbCB0byBleGlzdGluZyBjdWVzLCBl
eGNlcHQKKyAgICAgICAgICAgdGhhdCB0aGV5IGNvdmVyIGEgc2xpZ2h0bHkgbGF0ZXIgbW9tZW50
IGluIHBsYXliYWNrLiBGb3IgZXhhbXBsZSwgYSBjdWUKKyAgICAgICAgICAgZW5jb2RpbmcgZGV2
aWNlIG1pZ2h0IGVtaXQgYSBjdWUgYXQgMjQgZnBzLCB3aXRoIG1hbnkgb2YgdGhlIGN1ZXMgY29u
dGFpbmluZworICAgICAgICAgICB0aGUgc2FtZSBjb250ZW50IGJ1dCBjb3ZlcmluZyBvbmx5IDEv
MjR0aCBvZiBhIHNlY29uZC4KKyAgICAgICAgICAgCisgICAgICAgICAgIFJhdGhlciB0aGFuIGhp
ZGluZyBhbmQgZGlzcGxheWluZyBvdXIgY3VlcyBhdCB0aGUgY3VlIGVuY29kaW5nIHJhdGUsIHdl
IHNob3VsZAorICAgICAgICAgICBzaW1wbHkgY29udGludWUgdG8gZGlzcGxheSB0aGUgc2FtZSBj
dWUgYXMgbG9uZyBhcyB0aGUgY29udGVudCBpcyB1bmNoYW5nZWQuCisgICAgICAgIDIuIFRoZSBj
dWUgImlzRXF1YWwiIGxvZ2ljIGZvciBUZXh0VHJhY2tDdWVHZW5lcmljIGltcHJvcGVybHkgc2hv
cnQtY2lyY3VpdGVkIHRoZQorICAgICAgICAgICBWVFRDdWUgaXNFcXVhbCBsb2dpYy4gVGhpcyB3
YXMgZG9uZSB0byBhdm9pZCBhIGZhbHNlIGZhaWx1cmUgZHVlIHRvIHRoZSBjdWUKKyAgICAgICAg
ICAgdHlwZSBiZWluZyAnZ2VuZXJpYycgcmF0aGVyIHRoYW4gJ3Z0dCcsIGJ1dCBpbmNvcnJlY3Rs
eSB0cmVhdGVkIGN1ZXMgd2l0aAorICAgICAgICAgICBub24tbWF0Y2hpbmcgdGV4dCBhcyBlcXVh
bC4KKworICAgICAgICAqIGh0bWwvdHJhY2svRGF0YUN1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhQ3VlOjpjdWVDb250ZW50c01hdGNoKTogTW92ZSBjdWUgY29tcGFyaXNvbiBjb2RlIHRv
IG5ldyBtZXRob2QgdGhhdAorICAgICAgICBkb2Vzbid0IGNoZWNrIHRoYXQgdGhlICd0eXBlJyBv
ZiB0aGUgY3VlIGlzIGlkZW50aWNhbC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFDdWU6OmlzRXF1
YWwpOiBNb2RpZmllZCB0byB1c2UgbmV3ICdjdWVDb250ZW50c01hdGNoJyBtZXRob2QuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRhQ3VlOjppc1N0YXJ0T2ZDdWUpOiBDb25maXJtcyBjdWVzIG1hdGNo
IGV4Y2VwdCBmb3Igc3RhcnQgYW5kIGVuZCB0aW1lcy4KKyAgICAgICAgKiBodG1sL3RyYWNrL0Rh
dGFDdWUuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6Omhhc0N1ZSk6IE1vZGlmeSB0byBjaGVjayBpZiBhIG5ldyBjdWUg
aXMgc2ltcGx5IGEgY29udGludWF0aW9uCisgICAgICAgIG9mIGFuIGV4aXN0aW5nIGN1ZS4KKyAg
ICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0VHJhY2tDdWU6OmN1ZUNvbnRlbnRzTWF0Y2gpOiBOZXcgbWV0aG9kIGNvbnRhaW5pbmcgdGhl
IGVxdWFsaXR5IGNvZGUKKyAgICAgICAgdGhhdCB1c2VkIHRvIGxpdmUgaW4gJ2lzRXF1YWwnLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppc0VxdWFsKTogTW9kaWZpZWQgdG8gdXNl
IG5ldyAnY3VlQ29udGVudHNNYXRjaCcgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrQ3VlOjppc1N0YXJ0T2ZDdWUpOiBDb25maXJtcyBjdWVzIG1hdGNoIGV4Y2VwdCBmb3Igc3Rh
cnQgYW5kCisgICAgICAgIGVuZCB0aW1lcy4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVHZW5lcmljOjpjdWVDb250ZW50c01hdGNoKTog
TmV3IG1ldGhvZCBjb250YWluaW5nIHRoZSBlcXVhbGl0eQorICAgICAgICBjb2RlIHRoYXQgdXNl
ZCB0byBsaXZlIGluICdpc0VxdWFsJy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUdl
bmVyaWM6OmlzRXF1YWwpOiBNb2RpZmllZCB0byB1c2UgbmV3ICdjdWVDb250ZW50c01hdGNoJyBt
ZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVHZW5lcmljOjppc1N0YXJ0T2ZD
dWUpOiBDb25maXJtcyBjdWVzIG1hdGNoIGV4Y2VwdCBmb3Igc3RhcnQgYW5kCisgICAgICAgIGVu
ZCB0aW1lcy4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuaDoKKyAg
ICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6
OmN1ZUNvbnRlbnRzTWF0Y2gpOiBOZXcgbWV0aG9kIGNvbnRhaW5pbmcgdGhlIGVxdWFsaXR5IGNv
ZGUgdGhhdAorICAgICAgICB1c2VkIHRvIGxpdmUgaW4gJ2lzRXF1YWwnLgorICAgICAgICAoV2Vi
Q29yZTo6VlRUQ3VlOjppc0VxdWFsKTogTW9kaWZpZWQgdG8gdXNlIG5ldyAnY3VlQ29udGVudHNN
YXRjaCcgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjppc1N0YXJ0T2ZDdWUpOiBD
b25maXJtcyBjdWVzIG1hdGNoIGV4Y2VwdCBmb3Igc3RhcnQgYW5kIGVuZCB0aW1lcy4KKyAgICAg
ICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5oOgorCiAyMDE0LTA1LTI4ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2hvb3BzLCB1cGRhdGUgYmluZGluZ3MgdGVzdHMg
cmVzdWx0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svRGF0YUN1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmNwcAkocmV2aXNp
b24gMTY5MzgyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTIxLDE0ICsxMjEsOCBAQCBjb25zdCBEYXRhQ3VlKiB0b0RhdGFDdWUo
Y29uc3QgVGV4dFRyYWNrCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IERhdGFDdWUqPihj
dWUpOwogfQogCi1ib29sIERhdGFDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiBjdWUs
IFRleHRUcmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRjaCkgY29uc3QKK2Jvb2wgRGF0YUN1ZTo6
Y3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKIHsKLSAgICBp
ZiAoIVRleHRUcmFja0N1ZTo6aXNFcXVhbChjdWUsIG1hdGNoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKGN1ZS5jdWVUeXBlKCkgIT0gVGV4dFRyYWNrQ3VlOjpEYXRhKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBjb25zdCBEYXRhQ3VlKiBkYXRhQ3VlID0gdG9EYXRh
Q3VlKCZjdWUpOwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gb3RoZXJEYXRhID0gZGF0YUN1ZS0+
ZGF0YSgpOwogICAgIGlmICgob3RoZXJEYXRhICYmICFtX2RhdGEpIHx8ICghb3RoZXJEYXRhICYm
IG1fZGF0YSkpCkBAIC0xNTYsNiArMTUwLDI1IEBAIGJvb2wgRGF0YUN1ZTo6aXNFcXVhbChjb25z
dCBUZXh0VHJhY2tDdWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRhQ3VlOjppc0Vx
dWFsKGNvbnN0IFRleHRUcmFja0N1ZSYgY3VlLCBUZXh0VHJhY2tDdWU6OkN1ZU1hdGNoUnVsZXMg
bWF0Y2gpIGNvbnN0Cit7CisgICAgaWYgKCFUZXh0VHJhY2tDdWU6OmlzRXF1YWwoY3VlLCBtYXRj
aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjdWUuY3VlVHlwZSgpICE9IFRl
eHRUcmFja0N1ZTo6RGF0YSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGN1
ZUNvbnRlbnRzTWF0Y2goY3VlKTsKK30KKworYm9vbCBEYXRhQ3VlOjppc1N0YXJ0T2ZDdWUoY29u
c3QgVGV4dFRyYWNrQ3VlJiBjdWUpIGNvbnN0Cit7CisgICAgaWYgKCFjdWVDb250ZW50c01hdGNo
KGN1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBUZXh0VHJhY2tDdWU6
OmlzU3RhcnRPZkN1ZShjdWUpOworfQorCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiBKU0M6
OkpTVmFsdWUgRGF0YUN1ZTo6dmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0RhdGFDdWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0RhdGFDdWUuaAkocmV2aXNpb24gMTY5MzgyKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDYgKzkwLDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChj
b25zdCBUZXh0VHJhY2tDdWUmLCBDdWVNYXRjaFJ1bGVzKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgY3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTdGFydE9mQ3VlKGNvbnN0IFRleHRUcmFja0N1
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgRGF0YUN1ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBBcnJheUJ1ZmZlciosIGNv
bnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAJKHJldmlzaW9uIDE2OTM4MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTE5LDEzICs1MTksMTkg
QEAgYm9vbCBUZXh0VHJhY2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUqIGN1ZQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgICAgICBleGlzdGluZ0N1ZSA9IG1f
Y3Vlcy0+aXRlbShzZWFyY2hTdGFydCAtIDEpOwotICAgICAgICAgICAgICAgIGlmICghZXhpc3Rp
bmdDdWUgfHwgY3VlLT5zdGFydFRpbWUoKSA+IChleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkgKyBz
dGFydFRpbWVWYXJpYW5jZSgpKSkKKyAgICAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nQ3VlKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgICAgICBpZiAo
IWV4aXN0aW5nQ3VlLT5pc0VxdWFsKCpjdWUsIG1hdGNoKSkKLSAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ3VlLT5pc1N0YXJ0T2ZDdWUoKmN1ZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdDdWUtPnNldEVuZFRpbWUoY3VlLT5lbmRUaW1l
KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY3VlLT5zdGFydFRpbWUo
KSA+IChleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkgKyBzdGFydFRpbWVWYXJpYW5jZSgpKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgaWYgKGV4
aXN0aW5nQ3VlLT5pc0VxdWFsKCpjdWUsIG1hdGNoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCShyZXZpc2lvbiAxNjkzODIp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwMiw2ICsyMDIsMTcgQEAgYm9vbCBUZXh0VHJhY2tDdWU6OmlzT3JkZXJlZEJl
Zm9yZShjb25zdAogICAgIHJldHVybiBzdGFydFRpbWUoKSA8IG90aGVyLT5zdGFydFRpbWUoKSB8
fCAoc3RhcnRUaW1lKCkgPT0gb3RoZXItPnN0YXJ0VGltZSgpICYmIGVuZFRpbWUoKSA+IG90aGVy
LT5lbmRUaW1lKCkpOwogfQogCitib29sIFRleHRUcmFja0N1ZTo6Y3VlQ29udGVudHNNYXRjaChj
b25zdCBUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKK3sKKyAgICBpZiAoY3VlVHlwZSgpICE9IGN1
ZS5jdWVUeXBlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpZCgpICE9IGN1
ZS5pZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBUZXh0VHJhY2tDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiBjdWUsIFRleHRU
cmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRjaCkgY29uc3QKIHsKICAgICBpZiAoY3VlVHlwZSgp
ICE9IGN1ZS5jdWVUeXBlKCkpCkBAIC0yMTEsNyArMjIyLDcgQEAgYm9vbCBUZXh0VHJhY2tDdWU6
OmlzRXF1YWwoY29uc3QgVGV4dFRyYQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFo
YXNFcXVpdmFsZW50U3RhcnRUaW1lKGN1ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoaWQoKSAhPSBjdWUuaWQoKSkKKyAgICBpZiAoIWN1ZUNvbnRlbnRzTWF0Y2goY3VlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0yMjgsNiArMjM5LDE3
IEBAIGJvb2wgVGV4dFRyYWNrQ3VlOjpoYXNFcXVpdmFsZW50U3RhcnRUaW0KICAgICByZXR1cm4g
c3RkOjphYnMoc3RkOjphYnMoc3RhcnRUaW1lKCkpIC0gc3RkOjphYnMoY3VlLnN0YXJ0VGltZSgp
KSkgPD0gc3RhcnRUaW1lVmFyaWFuY2U7CiB9CiAKK2Jvb2wgVGV4dFRyYWNrQ3VlOjppc1N0YXJ0
T2ZDdWUoY29uc3QgVGV4dFRyYWNrQ3VlJiBjdWUpIGNvbnN0Cit7CisgICAgaWYgKCFjdWVDb250
ZW50c01hdGNoKGN1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChlbmRUaW1l
KCkgIT0gY3VlLnN0YXJ0VGltZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAg
cmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgJKHJldmlzaW9uIDE2OTM4
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgICAgICBJZ25vcmVEdXJhdGlvbiwK
ICAgICB9OwogICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFRleHRUcmFja0N1ZSYsIEN1
ZU1hdGNoUnVsZXMpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjdWVDb250ZW50c01hdGNoKGNv
bnN0IFRleHRUcmFja0N1ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1N0YXJ0T2ZDdWUo
Y29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CiAKICAgICB2b2lkIHdpbGxDaGFuZ2UoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE2OTM4MikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTE1MCwxNyArMTUwLDE0IEBAIHZvaWQgVGV4dFRyYWNrQ3VlR2VuZXJpYzo6c2V0
Rm9udFNpemUoaW4KIAogICAgIExPRyhNZWRpYSwgIlRleHRUcmFja0N1ZUdlbmVyaWM6OnNldEZv
bnRTaXplIC0gc2V0dGluZyBjdWUgZm9udCBzaXplIHRvICVsaSIsIGxyb3VuZChzaXplKSk7CiB9
Ci0gICAgCi1ib29sIFRleHRUcmFja0N1ZUdlbmVyaWM6OmlzRXF1YWwoY29uc3QgVGV4dFRyYWNr
Q3VlJiBjdWUsIFRleHRUcmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRjaCkgY29uc3QKLXsKLSAg
ICAvLyBEbyBub3QgY2FsbCB0aGUgcGFyZW50IGNsYXNzIGlzRXF1YWwgaGVyZSwgYmVjYXVzZSB3
ZSBhcmUgbm90IGN1ZVR5cGUoKSA9PSBWVFRDdWUsCi0gICAgLy8gYW5kIHdpbGwgZmFpbCB0aGF0
IGVxdWFsaXR5IHRlc3QuCi0gICAgaWYgKCFUZXh0VHJhY2tDdWU6OmlzRXF1YWwoY3VlLCBtYXRj
aCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjdWUuY3VlVHlwZSgpICE9IFRl
eHRUcmFja0N1ZTo6R2VuZXJpYykKK2Jvb2wgVGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3VlQ29udGVu
dHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKK3sKKyAgICAvLyBEbyBjYWxs
IHRoZSBwYXJlbnQgY2xhc3MgY3VlQ29udGVudHNNYXRjaCBoZXJlLCBiZWNhdXNlIHdlIHdhbnQg
dG8gY29uZmlybQorICAgIC8vIHRoZSBjb250ZW50IG9mIHRoZSB0d28gY3VlcyBhcmUgaWRlbnRp
Y2FsIChldmVuIHRob3VnaCB0aGUgdHlwZXMgYXJlIG5vdCB0aGUgc2FtZSkuCisgICAgaWYgKCFW
VFRDdWU6OmN1ZUNvbnRlbnRzTWF0Y2goY3VlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisg
ICAgCiAgICAgY29uc3QgVGV4dFRyYWNrQ3VlR2VuZXJpYyogb3RoZXIgPSBzdGF0aWNfY2FzdDxj
b25zdCBUZXh0VHJhY2tDdWVHZW5lcmljKj4oJmN1ZSk7CiAKICAgICBpZiAobV9iYXNlRm9udFNp
emVSZWxhdGl2ZVRvVmlkZW9IZWlnaHQgIT0gb3RoZXItPmJhc2VGb250U2l6ZVJlbGF0aXZlVG9W
aWRlb0hlaWdodCgpKQpAQCAtMTc3LDYgKzE3NCwyOCBAQCBib29sIFRleHRUcmFja0N1ZUdlbmVy
aWM6OmlzRXF1YWwoY29uc3QgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVGV4dFRyYWNr
Q3VlR2VuZXJpYzo6aXNFcXVhbChjb25zdCBUZXh0VHJhY2tDdWUmIGN1ZSwgVGV4dFRyYWNrQ3Vl
OjpDdWVNYXRjaFJ1bGVzIG1hdGNoKSBjb25zdAoreworICAgIC8vIERvIG5vdCBjYWxsIHRoZSBw
YXJlbnQgY2xhc3MgaXNFcXVhbCBoZXJlLCBiZWNhdXNlIHdlIGFyZSBub3QgY3VlVHlwZSgpID09
IFZUVEN1ZSwKKyAgICAvLyBhbmQgd2lsbCBmYWlsIHRoYXQgZXF1YWxpdHkgdGVzdC4KKyAgICBp
ZiAoIVRleHRUcmFja0N1ZTo6aXNFcXVhbChjdWUsIG1hdGNoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKGN1ZS5jdWVUeXBlKCkgIT0gVGV4dFRyYWNrQ3VlOjpHZW5lcmljKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gY3VlQ29udGVudHNNYXRjaChjdWUp
OworfQorCisgICAgCitib29sIFRleHRUcmFja0N1ZUdlbmVyaWM6OmlzU3RhcnRPZkN1ZShjb25z
dCBUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKK3sKKyAgICBpZiAoIWN1ZUNvbnRlbnRzTWF0Y2go
Y3VlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBWVFRDdWU6Omlz
U3RhcnRPZkN1ZShjdWUpOworfQorCiBib29sIFRleHRUcmFja0N1ZUdlbmVyaWM6OmlzT3JkZXJl
ZEJlZm9yZShjb25zdCBUZXh0VHJhY2tDdWUqIHRoYXQpIGNvbnN0CiB7CiAgICAgaWYgKFZUVEN1
ZTo6aXNPcmRlcmVkQmVmb3JlKHRoYXQpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgJKHJldmlzaW9uIDE2OTM4MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9udFNpemUoaW50
LCBjb25zdCBJbnRTaXplJiwgYm9vbCBpbXBvcnRhbnQpIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCBib29sIGlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hSdWxlcykgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGN1ZUNvbnRlbnRzTWF0Y2goY29uc3QgVGV4dFRy
YWNrQ3VlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzU3RhcnRPZkN1ZShj
b25zdCBUZXh0VHJhY2tDdWUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgVGV4dFRy
YWNrQ3VlOjpDdWVUeXBlIGN1ZVR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBUZXh0VHJh
Y2tDdWU6OkdlbmVyaWM7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cAkocmV2aXNpb24gMTY5MzgyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYyLDE0ICsxMDYyLDggQEAgc3RkOjpwYWlyPGRvdWJs
ZSwgZG91YmxlPiBWVFRDdWU6OmdldENTUwogICAgIHJldHVybiBtX2Rpc3BsYXlQb3NpdGlvbjsK
IH0KIAotYm9vbCBWVFRDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiBjdWUsIFRleHRU
cmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRjaCkgY29uc3QKK2Jvb2wgVlRUQ3VlOjpjdWVDb250
ZW50c01hdGNoKGNvbnN0IFRleHRUcmFja0N1ZSYgY3VlKSBjb25zdAogewotICAgIGlmICghVGV4
dFRyYWNrQ3VlOjppc0VxdWFsKGN1ZSwgbWF0Y2gpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoY3VlLmN1ZVR5cGUoKSAhPSBXZWJWVFQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQogICAgIGNvbnN0IFZUVEN1ZSogdnR0Q3VlID0gdG9WVFRDdWUoJmN1ZSk7CiAgICAgaWYgKHRl
eHQoKSAhPSB2dHRDdWUtPnRleHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTA4Nyw2
ICsxMDgxLDI1IEBAIGJvb2wgVlRUQ3VlOjppc0VxdWFsKGNvbnN0IFRleHRUcmFja0N1ZSYKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBWVFRDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYWNr
Q3VlJiBjdWUsIFRleHRUcmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRjaCkgY29uc3QKK3sKKyAg
ICBpZiAoIVRleHRUcmFja0N1ZTo6aXNFcXVhbChjdWUsIG1hdGNoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKGN1ZS5jdWVUeXBlKCkgIT0gV2ViVlRUKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gY3VlQ29udGVudHNNYXRjaChjdWUpOworfQorCitib29s
IFZUVEN1ZTo6aXNTdGFydE9mQ3VlKGNvbnN0IFRleHRUcmFja0N1ZSYgY3VlKSBjb25zdAorewor
ICAgIGlmICghY3VlQ29udGVudHNNYXRjaChjdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIFRleHRUcmFja0N1ZTo6aXNTdGFydE9mQ3VlKGN1ZSk7Cit9CisgICAg
CiB2b2lkIFZUVEN1ZTo6c2V0Rm9udFNpemUoaW50IGZvbnRTaXplLCBjb25zdCBJbnRTaXplJiwg
Ym9vbCBpbXBvcnRhbnQpCiB7CiAgICAgaWYgKCFoYXNEaXNwbGF5VHJlZSgpIHx8ICFmb250U2l6
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaAkocmV2aXNpb24gMTY5MzgyKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTU0LDYgKzE1NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9udFNpemUoaW50
LCBjb25zdCBJbnRTaXplJiwgYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgdmlydHVhbCBib29sIGlz
RXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hSdWxlcykgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGN1ZUNvbnRlbnRzTWF0Y2goY29uc3QgVGV4dFRyYWNrQ3VlJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzU3RhcnRPZkN1ZShjb25zdCBUZXh0
VHJhY2tDdWUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgQ3VlVHlwZSBjdWVUeXBl
KCkgY29uc3QgeyByZXR1cm4gV2ViVlRUOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
</data>
<flag name="review"
          id="256714"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>