<?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>140622</bug_id>
          
          <creation_ts>2015-01-19 10:23:31 -0800</creation_ts>
          <short_desc>[MSE] Implement Range Removal algorithm.</short_desc>
          <delta_ts>2015-01-23 16:52:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>139813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bartlomiej Gajda">b.gajda</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1062385</commentid>
    <comment_count>0</comment_count>
    <who name="Bartlomiej Gajda">b.gajda</who>
    <bug_when>2015-01-19 10:23:31 -0800</bug_when>
    <thetext>Since specification bug: &quot;Bug 26316 - Changed duration change algorithm to avoid open transition on endOfStream().&quot; (https://www.w3.org/Bugs/Public/show_bug.cgi?id=26316)
was resolved, FIXME introduced by (https://bugs.webkit.org/show_bug.cgi?id=134852) can be dealt with. 
(Also fixing that is prerequisity for correctly handling &apos;ended&apos; state when calling buffered() of a multi trackBuffers Sourcebuffer)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062391</commentid>
    <comment_count>1</comment_count>
      <attachid>244908</attachid>
    <who name="Bartlomiej Gajda">b.gajda</who>
    <bug_when>2015-01-19 10:34:02 -0800</bug_when>
    <thetext>Created attachment 244908
implement range removal algorithm v1

Added algorithm as per spec.

I&apos;ve decided to keep this change here, instead of adding this to my previous patch (139813). as it&apos;s atomic enough to detect early if any additional platform specific test will be broken, 

I have test for this for multi-trackbuffer case, but I&apos;m not sure where should I post it - here or there? (Seems natural for me to put it there)

Also should I add test for removing this fixme? Like, &quot;after eos() if event &apos;sourceopen&apos; then fail.&quot; ? 
I wasn&apos;t sure isn&apos;t this too bug specific to write (would not check anything else; for the second patch I will check whether samples are removed, but that requires 2 trackBuffers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062409</commentid>
    <comment_count>2</comment_count>
      <attachid>244908</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-19 10:52:14 -0800</bug_when>
    <thetext>Comment on attachment 244908
implement range removal algorithm v1

Seems like there could be a test here that calling setDuration() when a SourceBuffer is in the &quot;ended&quot; state does not re-open it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062470</commentid>
    <comment_count>3</comment_count>
      <attachid>244919</attachid>
    <who name="Bartlomiej Gajda">b.gajda</who>
    <bug_when>2015-01-19 12:50:34 -0800</bug_when>
    <thetext>Created attachment 244919
implement range removal algorithm v1+test

Added simple LayoutTest for this (which actually would pass without this patch anyway now, as long as that FIXME is there, but as I said - can&apos;t make failing test for this without multi-trackbuffer support)

As for MediaSource.setDuration(): Unless I misunderstood, point 2 from spec would cancel anything (with InvalidStateErr) while in &apos;ended&apos; state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063810</commentid>
    <comment_count>4</comment_count>
      <attachid>244919</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-23 16:40:18 -0800</bug_when>
    <thetext>Comment on attachment 244919
implement range removal algorithm v1+test

Thanks for adding the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063815</commentid>
    <comment_count>5</comment_count>
      <attachid>244919</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-23 16:52:48 -0800</bug_when>
    <thetext>Comment on attachment 244919
implement range removal algorithm v1+test

Clearing flags on attachment: 244919

Committed r179044: &lt;http://trac.webkit.org/changeset/179044&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063816</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-23 16:52:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244908</attachid>
            <date>2015-01-19 10:34:02 -0800</date>
            <delta_ts>2015-01-19 12:50:34 -0800</delta_ts>
            <desc>implement range removal algorithm v1</desc>
            <filename>patch_ended_fixme.txt</filename>
            <type>text/plain</type>
            <size>9716</size>
            <attacher name="Bartlomiej Gajda">b.gajda</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjZkNDUyLi5kNTliM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTUtMDEtMTkgIEJhcnRsb21pZWogR2FqZGEgIDxiLmdhamRhQHNhbXN1bmcuY29tPgor
CisgICAgICAgIFtNU0VdIEltcGxlbWVudCBSYW5nZSBSZW1vdmFsIGFsZ29yaXRobS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDYyMi4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4dHJhY3Qg
UmFuZ2UgUmVtb3ZhbCBhbGdvcml0aG0gKEVkaXRvcidzIERyYWZ0IHZlcnNpb24sIGJ1ZzoyNjMx
NikgZnJvbSByZW1vdmUoKSwKKyAgICAgICAgdG8gc2VwYXJhdGUgZnVuY3Rpb24gdG8gZGVhbCB3
aXRoIG9sZCBGSVhNRSBzaW5jZSBidWcgaW4gc3BlYyB3YXMgcmVzb2x2ZWQuCisgICAgICAgIFRo
aXMgc2hvdWxkIGJvdGggZ3VhcmFudGVlIGdvb2Qgb3JkZXIgb2YgZXZlbnRzLCBhbmQgcHJldmVu
dCBmcm9tIHN3aXRjaGluZyB0byAnb3Blbicgc3RhdGUKKyAgICAgICAgZHVyaW5nIGVuZCBvZiBz
dHJlYW0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZCwgbXVsdGktdHJhY2sgYmVoYXZp
b3Igd2lsbCBiZSB0ZXN0ZWQgYnkgZnV0dXJlIHBhdGNoLgorCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJj
ZTo6c2V0RHVyYXRpb25JbnRlcm5hbCk6IHVwZGF0ZSB0byB1c2UgcmFuZ2VSZW1vdmFsKCksIG5v
dCByZW1vdmUoKQorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnN0cmVhbUVuZGVkV2l0
aEVycm9yKTogcmVtb3ZlIEZJWE1FLCBicmlnbmluZyBiYWNrIGNvcnJlY3Qgb3JkZXIgb2YgZXZl
bnRzLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlKTogY29tbWVudHMgdXAgdG8gc3Bl
YywgZXh0cmFjdCByYW5nZVJlbW92YWwgYWxnb3JpdGhtLgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyOjpyYW5nZVJlbW92YWwpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
OjpyZW1vdmVUaW1lckZpcmVkKTogY29tbWVudHMgdXAgdG8gc3BlYy4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorCiAyMDE1LTAxLTE5ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlv
dXRdIFRyYWNrcyBzaHJpbmsgc29tZXRpbWVzIHdpdGggaW5kZWZpbml0ZSByZW1haW5pbmcgc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggY2ZiYjExMS4uN2FlNmE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTM3MSw3ICszNzEsNyBAQCB2
b2lkIE1lZGlhU291cmNlOjpzZXREdXJhdGlvbkludGVybmFsKGNvbnN0IE1lZGlhVGltZSYgZHVy
YXRpb24pCiAgICAgLy8gb24gYWxsIG9iamVjdHMgaW4gc291cmNlQnVmZmVycy4KICAgICBpZiAo
b2xkRHVyYXRpb24uaXNWYWxpZCgpICYmIGR1cmF0aW9uIDwgb2xkRHVyYXRpb24pIHsKICAgICAg
ICAgZm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiAqbV9zb3VyY2VCdWZmZXJzKQotICAgICAgICAg
ICAgc291cmNlQnVmZmVyLT5yZW1vdmUoZHVyYXRpb24sIG9sZER1cmF0aW9uLCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci0+cmFuZ2VSZW1vdmFsKGR1cmF0aW9u
LCBvbGREdXJhdGlvbik7CiAgICAgfQogCiAgICAgLy8gNS4gSWYgYSB1c2VyIGFnZW50IGlzIHVu
YWJsZSB0byBwYXJ0aWFsbHkgcmVuZGVyIGF1ZGlvIGZyYW1lcyBvciB0ZXh0IGN1ZXMgdGhhdCBz
dGFydCBiZWZvcmUgYW5kIGVuZCBhZnRlciB0aGUKQEAgLTQ0Nyw2ICs0NDcsMTAgQEAgdm9pZCBN
ZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IoY29uc3QgQXRvbWljU3RyaW5nJiBlcnJv
ciwgRXhjZXB0aW9uQ29kZSYKIAogICAgIC8vIDIuNC43IGh0dHBzOi8vZHZjcy53My5vcmcvaGcv
aHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2Vu
ZC1vZi1zdHJlYW0tYWxnb3JpdGhtCiAKKyAgICAvLyAxLiBDaGFuZ2UgdGhlIHJlYWR5U3RhdGUg
YXR0cmlidXRlIHZhbHVlIHRvICJlbmRlZCIuCisgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlZW5kZWQgYXQgdGhlIE1lZGlhU291cmNlLgor
ICAgIHNldFJlYWR5U3RhdGUoZW5kZWRLZXl3b3JkKCkpOworCiAgICAgLy8gMy4KICAgICBpZiAo
ZXJyb3IuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIOKGsyBJZiBlcnJvciBpcyBub3Qgc2V0LCBp
cyBudWxsLCBvciBpcyBhbiBlbXB0eSBzdHJpbmcKQEAgLTQ2MywxMyArNDY3LDYgQEAgdm9pZCBN
ZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IoY29uc3QgQXRvbWljU3RyaW5nJiBlcnJv
ciwgRXhjZXB0aW9uQ29kZSYKICAgICAgICAgbV9wcml2YXRlLT5tYXJrRW5kT2ZTdHJlYW0oTWVk
aWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yKTsKICAgICB9CiAKLSAgICAvLyBOT1RFOiBEbyBz
dGVwcyAxICYgMiBhZnRlciBzdGVwIDMgKHdpdGggYW4gZW1wdHkgZXJyb3IpIHRvIGF2b2lkIHRo
ZSBNZWRpYVNvdXJjZSdzIHJlYWR5U3RhdGUgYmVpbmcgcmUtb3BlbmVkIGJ5IGEKLSAgICAvLyBy
ZW1vdmUoKSBvcGVyYXRpb24gcmVzdWx0aW5nIGZyb20gYSBkdXJhdGlvbiBjaGFuZ2UuCi0gICAg
Ly8gRklYTUU6IFJlLW51bWJlciBvciB1cGRhdGUgdGhpcyBzZWN0aW9uIG9uY2UgPGh0dHBzOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjYzMTY+IGlzIHJlc29sdmVk
LgotICAgIC8vIDEuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgdG8gImVu
ZGVkIi4KLSAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1l
ZCBzb3VyY2VlbmRlZCBhdCB0aGUgTWVkaWFTb3VyY2UuCi0gICAgc2V0UmVhZHlTdGF0ZShlbmRl
ZEtleXdvcmQoKSk7Ci0KICAgICBpZiAoZXJyb3IgPT0gbmV0d29yaykgewogICAgICAgICAvLyDi
hrMgSWYgZXJyb3IgaXMgc2V0IHRvICJuZXR3b3JrIgogICAgICAgICBBU1NFUlQobV9tZWRpYUVs
ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwCmluZGV4IDg2MWNkMjQuLjU3MDJlYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0zNjAsMzMg
KzM2MCw0OSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBFeGNlcHRpbwogICAgIExPRyhNZWRpYVNvdXJjZSwg
IlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlKCVwKSAtIHN0YXJ0KCVsZiksIGVuZCglbGYpIiwgdGhpcywg
c3RhcnQudG9Eb3VibGUoKSwgZW5kLnRvRG91YmxlKCkpOwogCiAgICAgLy8gU2VjdGlvbiAzLjIg
cmVtb3ZlKCkgbWV0aG9kIHN0ZXBzLgotICAgIC8vIDEuIElmIHN0YXJ0IGlzIG5lZ2F0aXZlIG9y
IGdyZWF0ZXIgdGhhbiBkdXJhdGlvbiwgdGhlbiB0aHJvdyBhbiBJbnZhbGlkQWNjZXNzRXJyb3Ig
ZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAvLyAyLiBJZiBlbmQgaXMgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0LCB0aGVuIHRocm93IGFuIEludmFsaWRBY2Nlc3NFcnJv
ciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmIChzdGFydCA8IE1lZGlh
VGltZTo6emVyb1RpbWUoKSB8fCAobV9zb3VyY2UgJiYgKCFtX3NvdXJjZS0+ZHVyYXRpb24oKS5p
c1ZhbGlkKCkgfHwgc3RhcnQgPiBtX3NvdXJjZS0+ZHVyYXRpb24oKSkpIHx8IGVuZCA8PSBzdGFy
dCkgeworICAgIC8vIDEuIElmIGR1cmF0aW9uIGVxdWFscyBOYU4sIHRoZW4gdGhyb3cgYW4gSW52
YWxpZEFjY2Vzc0Vycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8g
Mi4gSWYgc3RhcnQgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIGR1cmF0aW9uLCB0aGVuIHRo
cm93IGFuIEludmFsaWRBY2Nlc3NFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgorICAgIC8vIDMuIElmIGVuZCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gc3RhcnQsIHRoZW4g
dGhyb3cgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCisKKyAgICAvLyBGSVhNRTogcmVvcmRlci9yZXZpc2l0IHRoaXMgc2VjdGlvbiBvbmNlIDxo
dHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI3ODU3PiBnb3Qg
cmVzb2x2ZWQKKyAgICAvLyBhcyBpdCBzZWVtcyB3cm9uZyB0byBjaGVjayBtZWRpYVNvdXJjZSBk
dXJhdGlvbiBiZWZvcmUgY2hlY2tpbmcgaXNSZW1vdmVkKCkuCisgICAgaWYgKChtX3NvdXJjZSAm
JiBtX3NvdXJjZS0+ZHVyYXRpb24oKS5pc0ludmFsaWQoKSkKKyAgICAgICAgfHwgc3RhcnQgPCBN
ZWRpYVRpbWU6Onplcm9UaW1lKCkgfHwgKG1fc291cmNlICYmIHN0YXJ0ID4gbV9zb3VyY2UtPmR1
cmF0aW9uKCkpCisgICAgICAgIHx8IGVuZCA8PSBzdGFydCkgewogICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIDMuIElmIHRo
aXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1
dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vIDQuIElm
IHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRy
aWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgogICAgIC8vICAg
IEludmFsaWRTdGF0ZUVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAg
Ly8gNC4gSWYgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBh
biBJbnZhbGlkU3RhdGVFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IC8vIDUuIElmIHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgZXF1YWxzIHRydWUsIHRoZW4gdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAg
ICBpZiAoaXNSZW1vdmVkKCkgfHwgbV91cGRhdGluZykgewogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gNS4gSWYgdGhlIHJl
YWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAi
ZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgLy8gNS4xLiBT
ZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRv
ICJvcGVuIgotICAgIC8vIDUuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQg
bmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSAuCisgICAgLy8gNi4g
SWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIGlz
IGluIHRoZSAiZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAg
Ly8gNi4xLiBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEg
c291cmNlIHRvICJvcGVuIgorICAgIC8vIDYuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSAuCiAg
ICAgbV9zb3VyY2UtPm9wZW5JZkluRW5kZWRTdGF0ZSgpOwogCi0gICAgLy8gNi4gU2V0IHRoZSB1
cGRhdGluZyBhdHRyaWJ1dGUgdG8gdHJ1ZS4KKyAgICAvLyA3LiBSdW4gdGhlIHJhbmdlIHJlbW92
YWwgYWxnb3JpdGhtIHdpdGggc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0
aGUgcmVtb3ZhbCByYW5nZS4KKyAgICByYW5nZVJlbW92YWwoc3RhcnQsIGVuZCk7Cit9CisKK3Zv
aWQgU291cmNlQnVmZmVyOjpyYW5nZVJlbW92YWwoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQpCit7CisgICAgLy8gMy41LjcgUmFuZ2UgUmVtb3ZhbAorICAgIC8v
IGh0dHBzOi8vcmF3Z2l0LmNvbS93M2MvbWVkaWEtc291cmNlLzdiYmU0YWEzM2M2MWVjMDI1YmM3
YWNiZDgwMzU0MTEwZjZhMDAwZjkvbWVkaWEtc291cmNlLmh0bWwjc291cmNlYnVmZmVyLXJhbmdl
LXJlbW92YWwKKyAgICAvLyAxLiBMZXQgc3RhcnQgZXF1YWwgdGhlIHN0YXJ0aW5nIHByZXNlbnRh
dGlvbiB0aW1lc3RhbXAgZm9yIHRoZSByZW1vdmFsIHJhbmdlLgorICAgIC8vIDIuIExldCBlbmQg
ZXF1YWwgdGhlIGVuZCBwcmVzZW50YXRpb24gdGltZXN0YW1wIGZvciB0aGUgcmVtb3ZhbCByYW5n
ZS4KKyAgICAvLyAzLiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byB0cnVlLgogICAgIG1f
dXBkYXRpbmcgPSB0cnVlOwogCi0gICAgLy8gNy4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQgdXBkYXRlc3RhcnQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0Lgor
ICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0
ZXN0YXJ0IGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KICAgICBzY2hlZHVsZUV2ZW50KGV2
ZW50TmFtZXMoKS51cGRhdGVzdGFydEV2ZW50KTsKIAotICAgIC8vIDguIFJldHVybiBjb250cm9s
IHRvIHRoZSBjYWxsZXIgYW5kIHJ1biB0aGUgcmVzdCBvZiB0aGUgc3RlcHMgYXN5bmNocm9ub3Vz
bHkuCisgICAgLy8gNS4gUmV0dXJuIGNvbnRyb2wgdG8gdGhlIGNhbGxlciBhbmQgcnVuIHRoZSBy
ZXN0IG9mIHRoZSBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICBtX3BlbmRpbmdSZW1vdmVTdGFy
dCA9IHN0YXJ0OwogICAgIG1fcGVuZGluZ1JlbW92ZUVuZCA9IGVuZDsKICAgICBtX3JlbW92ZVRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKQEAgLTc4OSwyMSArODA1LDIxIEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpyZW1vdmVUaW1lckZpcmVkKCkKICAgICBBU1NFUlQobV9wZW5kaW5nUmVtb3ZlU3RhcnQu
aXNWYWxpZCgpKTsKICAgICBBU1NFUlQobV9wZW5kaW5nUmVtb3ZlU3RhcnQgPCBtX3BlbmRpbmdS
ZW1vdmVFbmQpOwogCi0gICAgLy8gU2VjdGlvbiAzLjIgcmVtb3ZlKCkgbWV0aG9kIHN0ZXBzCi0g
ICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLXJlbW92ZS12
b2lkLWRvdWJsZS1zdGFydC1kb3VibGUtZW5kCisgICAgLy8gU2VjdGlvbiAzLjUuNyBSYW5nZSBS
ZW1vdmFsCisgICAgLy8gaHR0cDovL3czYy5naXRodWIuaW8vbWVkaWEtc291cmNlLyNzb3VyY2Vi
dWZmZXItcmFuZ2UtcmVtb3ZhbAogCi0gICAgLy8gOS4gUnVuIHRoZSBjb2RlZCBmcmFtZSByZW1v
dmFsIGFsZ29yaXRobSB3aXRoIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHN0YXJ0IGFuZCBlbmQgb2Yg
dGhlIHJlbW92YWwgcmFuZ2UuCisgICAgLy8gNi4gUnVuIHRoZSBjb2RlZCBmcmFtZSByZW1vdmFs
IGFsZ29yaXRobSB3aXRoIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhl
IHJlbW92YWwgcmFuZ2UuCiAgICAgcmVtb3ZlQ29kZWRGcmFtZXMobV9wZW5kaW5nUmVtb3ZlU3Rh
cnQsIG1fcGVuZGluZ1JlbW92ZUVuZCk7CiAKLSAgICAvLyAxMC4gU2V0IHRoZSB1cGRhdGluZyBh
dHRyaWJ1dGUgdG8gZmFsc2UuCisgICAgLy8gNy4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUg
dG8gZmFsc2UuCiAgICAgbV91cGRhdGluZyA9IGZhbHNlOwogICAgIG1fcGVuZGluZ1JlbW92ZVN0
YXJ0ID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogICAgIG1fcGVuZGluZ1JlbW92ZUVuZCA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIC8vIDExLiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGUgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2Jq
ZWN0LgorICAgIC8vIDguIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVk
IHVwZGF0ZSBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCiAgICAgc2NoZWR1bGVFdmVudChl
dmVudE5hbWVzKCkudXBkYXRlRXZlbnQpOwogCi0gICAgLy8gMTIuIFF1ZXVlIGEgdGFzayB0byBm
aXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVuZCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBv
YmplY3QuCisgICAgLy8gOS4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFt
ZWQgdXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVlbmRFdmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDRkMzM1ZGMuLjVi
OWY3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEdl
bmVyYXRlVGltZXN0YW1wcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkR2VuZXJhdGVUaW1lc3Rh
bXBzOyB9CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoYm9vbCBmbGFnKSB7
IG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzID0gZmxhZzsgfQogCisgICAgdm9pZCByYW5nZVJl
bW92YWwoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJik7CiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244919</attachid>
            <date>2015-01-19 12:50:34 -0800</date>
            <delta_ts>2015-01-23 16:52:48 -0800</delta_ts>
            <desc>implement range removal algorithm v1+test</desc>
            <filename>patch_rangev2.txt</filename>
            <type>text/plain</type>
            <size>13129</size>
            <attacher name="Bartlomiej Gajda">b.gajda</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNDAwYjAzLi5kZDNiZDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDEt
MTkgIEJhcnRsb21pZWogR2FqZGEgIDxiLmdhamRhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtN
U0VdIEltcGxlbWVudCBSYW5nZSBSZW1vdmFsIGFsZ29yaXRobS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDYyMi4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzaG9ydCB0ZXN0IHRvIGNoZWNr
IHdoZXRoZXIgZW5kT2ZTdHJlYW0gaW5jb3JyZWN0bHkgc3dpdGNoZXMgYmFjaworICAgICAgICB0
byAnb3Blbicgc3RhdGUuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWVuZC1vZi1zdHJlYW0tcmVhZHlTdGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWVuZC1vZi1zdHJlYW0tcmVhZHlTdGF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDE1LTAxLTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHdoZW4gY29tbWl0dGluZyBy
MTc4NjQyIEkgZm9yZ290IHRvIGFkZCB0aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZW5kLW9mLXN0cmVhbS1yZWFkeVN0YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZW5k
LW9mLXN0cmVhbS1yZWFkeVN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMDg4ZDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1lbmQtb2Ytc3RyZWFtLXJlYWR5U3RhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUlVOKHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVP
YmplY3RVUkwoc291cmNlKSkKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0g
c291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKSkKK1JVTihz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhU2VnbWVudCkpCitFVkVOVCh1cGRhdGVlbmQp
CitFWFBFQ1RFRCAoc291cmNlLmR1cmF0aW9uLnRvRml4ZWQoMykgPT0gJzEwJykgT0sKK0VYUEVD
VEVEIChzb3VyY2VCdWZmZXIuYnVmZmVyZWQuZW5kKDApLnRvRml4ZWQoMykgPT0gJzUnKSBPSwor
UlVOKHNvdXJjZS5lbmRPZlN0cmVhbSgpKQorRVhQRUNURUQgKHNvdXJjZS5kdXJhdGlvbi50b0Zp
eGVkKDMpID09ICc1JykgT0sKK0VWRU5UKHVwZGF0ZWVuZCkKK0VORCBPRiBURVNUCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZW5kLW9m
LXN0cmVhbS1yZWFkeVN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLWVuZC1vZi1zdHJlYW0tcmVhZHlTdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMjY4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWVuZC1vZi1zdHJlYW0tcmVhZHlT
dGF0ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+bW9jay1tZWRpYS1zb3VyY2U8L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSJtb2NrLW1lZGlhLXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Zp
ZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHNvdXJjZTsKKyAg
ICB2YXIgc291cmNlQnVmZmVyOworICAgIHZhciBtZWRpYVNlZ21lbnQ7CisKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3Vy
Y2UoKTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1l
bnQoKTsKKworICAgICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgd2Fp
dEZvckV2ZW50T24oc291cmNlLCAnc291cmNlb3BlbicsIHNvdXJjZU9wZW4sIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSkn
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzb3VyY2VPcGVuKCkgeworICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1t
b2NrIiknKTsKKyAgICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRlZW5k
JywgdXBkYXRlRW5kMSwgZmFsc2UsIHRydWUpOworICAgICAgICBtZWRpYVNlZ21lbnQgPSBjb25j
YXRlbmF0ZVNhbXBsZXMoWworICAgICAgICAgICAgbWFrZUFJbml0KDEwLCBbbWFrZUFUcmFjaygx
LCAnbW9jaycsIFRSQUNLX0tJTkQuVklERU8pXSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgw
LCAwLCA1LCAxLCBTQU1QTEVfRkxBRy5TWU5DLCAwKSwKKyAgICAgICAgXSk7CisgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYVNlZ21lbnQpJyk7CisKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB1cGRhdGVFbmQxKCkgeworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJj
ZS5kdXJhdGlvbi50b0ZpeGVkKDMpJywgMTApOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJj
ZUJ1ZmZlci5idWZmZXJlZC5lbmQoMCkudG9GaXhlZCgzKScsIDUpOworCisgICAgICAgIHdhaXRG
b3JFdmVudE9uKHNvdXJjZSwgJ3NvdXJjZW9wZW4nLCBmdW5jdGlvbigpIHsgZmFpbFRlc3QoIlNo
b3VsZCBub3QgdHJhbnNpdCB0byAnb3Blbicgc3RhdGUgZHVyaW5nIGVuZE9mU3RyZWFtKCkuIikg
fSwgZmFsc2UsIHRydWUpOworICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1
cGRhdGVlbmQnLCBlbmRUZXN0LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHJ1bignc291cmNlLmVu
ZE9mU3RyZWFtKCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2UuZHVyYXRpb24udG9G
aXhlZCgzKScsIDUpOworICAgIH0KKworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgIDx2aWRlbz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDlmNmQ0NTIuLjVkOTc3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBA
QAorMjAxNS0wMS0xOSAgQmFydGxvbWllaiBHYWpkYSAgPGIuZ2FqZGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW01TRV0gSW1wbGVtZW50IFJhbmdlIFJlbW92YWwgYWxnb3JpdGhtLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjIyLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZXh0cmFjdCBS
YW5nZSBSZW1vdmFsIGFsZ29yaXRobSAoRWRpdG9yJ3MgRHJhZnQgdmVyc2lvbiwgYnVnOjI2MzE2
KSBmcm9tIHJlbW92ZSgpLAorICAgICAgICB0byBzZXBhcmF0ZSBmdW5jdGlvbiB0byBkZWFsIHdp
dGggb2xkIEZJWE1FIHNpbmNlIGJ1ZyBpbiBzcGVjIHdhcyByZXNvbHZlZC4KKyAgICAgICAgVGhp
cyBzaG91bGQgYm90aCBndWFyYW50ZWUgZ29vZCBvcmRlciBvZiBldmVudHMsIGFuZCBwcmV2ZW50
IGZyb20gc3dpdGNoaW5nIHRvICdvcGVuJyBzdGF0ZQorICAgICAgICBkdXJpbmcgZW5kIG9mIHN0
cmVhbS4KKworICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWVu
ZC1vZi1zdHJlYW0tcmVhZHlTdGF0ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpzZXRE
dXJhdGlvbkludGVybmFsKTogdXBkYXRlIHRvIHVzZSByYW5nZVJlbW92YWwoKSwgbm90IHJlbW92
ZSgpCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3Ip
OiByZW1vdmUgRklYTUUsIGJyaWduaW5nIGJhY2sgY29ycmVjdCBvcmRlciBvZiBldmVudHMuCisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZW1vdmUpOiBjb21tZW50cyB1cCB0byBzcGVjLCBleHRy
YWN0IHJhbmdlUmVtb3ZhbCBhbGdvcml0aG0uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnJhbmdlUmVtb3ZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlbW92
ZVRpbWVyRmlyZWQpOiBjb21tZW50cyB1cCB0byBzcGVjLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisKIDIwMTUtMDEtMTkgIFNlcmdpbyBWaWxsYXIgU2Vu
aW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gVHJh
Y2tzIHNocmluayBzb21ldGltZXMgd2l0aCBpbmRlZmluaXRlIHJlbWFpbmluZyBzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApp
bmRleCBjZmJiMTExLi43YWU2YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgTWVk
aWFTb3VyY2U6OnNldER1cmF0aW9uSW50ZXJuYWwoY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbikK
ICAgICAvLyBvbiBhbGwgb2JqZWN0cyBpbiBzb3VyY2VCdWZmZXJzLgogICAgIGlmIChvbGREdXJh
dGlvbi5pc1ZhbGlkKCkgJiYgZHVyYXRpb24gPCBvbGREdXJhdGlvbikgewogICAgICAgICBmb3Ig
KGF1dG8mIHNvdXJjZUJ1ZmZlciA6ICptX3NvdXJjZUJ1ZmZlcnMpCi0gICAgICAgICAgICBzb3Vy
Y2VCdWZmZXItPnJlbW92ZShkdXJhdGlvbiwgb2xkRHVyYXRpb24sIElHTk9SRV9FWENFUFRJT04p
OworICAgICAgICAgICAgc291cmNlQnVmZmVyLT5yYW5nZVJlbW92YWwoZHVyYXRpb24sIG9sZER1
cmF0aW9uKTsKICAgICB9CiAKICAgICAvLyA1LiBJZiBhIHVzZXIgYWdlbnQgaXMgdW5hYmxlIHRv
IHBhcnRpYWxseSByZW5kZXIgYXVkaW8gZnJhbWVzIG9yIHRleHQgY3VlcyB0aGF0IHN0YXJ0IGJl
Zm9yZSBhbmQgZW5kIGFmdGVyIHRoZQpAQCAtNDQ3LDYgKzQ0NywxMCBAQCB2b2lkIE1lZGlhU291
cmNlOjpzdHJlYW1FbmRlZFdpdGhFcnJvcihjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNl
cHRpb25Db2RlJgogCiAgICAgLy8gMi40LjcgaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1l
ZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZW5kLW9mLXN0
cmVhbS1hbGdvcml0aG0KIAorICAgIC8vIDEuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgdmFsdWUgdG8gImVuZGVkIi4KKyAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNp
bXBsZSBldmVudCBuYW1lZCBzb3VyY2VlbmRlZCBhdCB0aGUgTWVkaWFTb3VyY2UuCisgICAgc2V0
UmVhZHlTdGF0ZShlbmRlZEtleXdvcmQoKSk7CisKICAgICAvLyAzLgogICAgIGlmIChlcnJvci5p
c0VtcHR5KCkpIHsKICAgICAgICAgLy8g4oazIElmIGVycm9yIGlzIG5vdCBzZXQsIGlzIG51bGws
IG9yIGlzIGFuIGVtcHR5IHN0cmluZwpAQCAtNDYzLDEzICs0NjcsNiBAQCB2b2lkIE1lZGlhU291
cmNlOjpzdHJlYW1FbmRlZFdpdGhFcnJvcihjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNl
cHRpb25Db2RlJgogICAgICAgICBtX3ByaXZhdGUtPm1hcmtFbmRPZlN0cmVhbShNZWRpYVNvdXJj
ZVByaXZhdGU6OkVvc05vRXJyb3IpOwogICAgIH0KIAotICAgIC8vIE5PVEU6IERvIHN0ZXBzIDEg
JiAyIGFmdGVyIHN0ZXAgMyAod2l0aCBhbiBlbXB0eSBlcnJvcikgdG8gYXZvaWQgdGhlIE1lZGlh
U291cmNlJ3MgcmVhZHlTdGF0ZSBiZWluZyByZS1vcGVuZWQgYnkgYQotICAgIC8vIHJlbW92ZSgp
IG9wZXJhdGlvbiByZXN1bHRpbmcgZnJvbSBhIGR1cmF0aW9uIGNoYW5nZS4KLSAgICAvLyBGSVhN
RTogUmUtbnVtYmVyIG9yIHVwZGF0ZSB0aGlzIHNlY3Rpb24gb25jZSA8aHR0cHM6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNjMxNj4gaXMgcmVzb2x2ZWQuCi0gICAg
Ly8gMS4gQ2hhbmdlIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgot
ICAgIC8vIDIuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHNvdXJj
ZWVuZGVkIGF0IHRoZSBNZWRpYVNvdXJjZS4KLSAgICBzZXRSZWFkeVN0YXRlKGVuZGVkS2V5d29y
ZCgpKTsKLQogICAgIGlmIChlcnJvciA9PSBuZXR3b3JrKSB7CiAgICAgICAgIC8vIOKGsyBJZiBl
cnJvciBpcyBzZXQgdG8gIm5ldHdvcmsiCiAgICAgICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHAKaW5kZXggODYxY2QyNC4uNTcwMmVhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM2MCwzMyArMzYwLDQ5
IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIEV4Y2VwdGlvCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNl
QnVmZmVyOjpyZW1vdmUoJXApIC0gc3RhcnQoJWxmKSwgZW5kKCVsZikiLCB0aGlzLCBzdGFydC50
b0RvdWJsZSgpLCBlbmQudG9Eb3VibGUoKSk7CiAKICAgICAvLyBTZWN0aW9uIDMuMiByZW1vdmUo
KSBtZXRob2Qgc3RlcHMuCi0gICAgLy8gMS4gSWYgc3RhcnQgaXMgbmVnYXRpdmUgb3IgZ3JlYXRl
ciB0aGFuIGR1cmF0aW9uLCB0aGVuIHRocm93IGFuIEludmFsaWRBY2Nlc3NFcnJvciBleGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIC8vIDIuIElmIGVuZCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gc3RhcnQsIHRoZW4gdGhyb3cgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKHN0YXJ0IDwgTWVkaWFUaW1lOjp6
ZXJvVGltZSgpIHx8IChtX3NvdXJjZSAmJiAoIW1fc291cmNlLT5kdXJhdGlvbigpLmlzVmFsaWQo
KSB8fCBzdGFydCA+IG1fc291cmNlLT5kdXJhdGlvbigpKSkgfHwgZW5kIDw9IHN0YXJ0KSB7Cisg
ICAgLy8gMS4gSWYgZHVyYXRpb24gZXF1YWxzIE5hTiwgdGhlbiB0aHJvdyBhbiBJbnZhbGlkQWNj
ZXNzRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAyLiBJZiBz
dGFydCBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gZHVyYXRpb24sIHRoZW4gdGhyb3cgYW4g
SW52YWxpZEFjY2Vzc0Vycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
Ly8gMy4gSWYgZW5kIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBzdGFydCwgdGhlbiB0aHJvdyBh
biBJbnZhbGlkQWNjZXNzRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKwor
ICAgIC8vIEZJWE1FOiByZW9yZGVyL3JldmlzaXQgdGhpcyBzZWN0aW9uIG9uY2UgPGh0dHBzOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NTc+IGdvdCByZXNvbHZl
ZAorICAgIC8vIGFzIGl0IHNlZW1zIHdyb25nIHRvIGNoZWNrIG1lZGlhU291cmNlIGR1cmF0aW9u
IGJlZm9yZSBjaGVja2luZyBpc1JlbW92ZWQoKS4KKyAgICBpZiAoKG1fc291cmNlICYmIG1fc291
cmNlLT5kdXJhdGlvbigpLmlzSW52YWxpZCgpKQorICAgICAgICB8fCBzdGFydCA8IE1lZGlhVGlt
ZTo6emVyb1RpbWUoKSB8fCAobV9zb3VyY2UgJiYgc3RhcnQgPiBtX3NvdXJjZS0+ZHVyYXRpb24o
KSkKKyAgICAgICAgfHwgZW5kIDw9IHN0YXJ0KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gMy4gSWYgdGhpcyBvYmpl
Y3QgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0
aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0aGVuIHRocm93IGFuCisgICAgLy8gNC4gSWYgdGhpcyBv
YmplY3QgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBv
ZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0aGVuIHRocm93IGFuCiAgICAgLy8gICAgSW52YWxp
ZFN0YXRlRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAvLyA0LiBJ
ZiB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVuIHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gNS4g
SWYgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGlmIChp
c1JlbW92ZWQoKSB8fCBtX3VwZGF0aW5nKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyA1LiBJZiB0aGUgcmVhZHlTdGF0
ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIg
c3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAvLyA1LjEuIFNldCB0aGUg
cmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdG8gIm9wZW4i
Ci0gICAgLy8gNS4yLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBz
b3VyY2VvcGVuIGF0IHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIC4KKyAgICAvLyA2LiBJZiB0aGUg
cmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhl
ICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyA2LjEu
IFNldCB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2Ug
dG8gIm9wZW4iCisgICAgLy8gNi4yLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVu
dCBuYW1lZCBzb3VyY2VvcGVuIGF0IHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIC4KICAgICBtX3Nv
dXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CiAKLSAgICAvLyA2LiBTZXQgdGhlIHVwZGF0aW5n
IGF0dHJpYnV0ZSB0byB0cnVlLgorICAgIC8vIDcuIFJ1biB0aGUgcmFuZ2UgcmVtb3ZhbCBhbGdv
cml0aG0gd2l0aCBzdGFydCBhbmQgZW5kIGFzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSByZW1v
dmFsIHJhbmdlLgorICAgIHJhbmdlUmVtb3ZhbChzdGFydCwgZW5kKTsKK30KKwordm9pZCBTb3Vy
Y2VCdWZmZXI6OnJhbmdlUmVtb3ZhbChjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRp
YVRpbWUmIGVuZCkKK3sKKyAgICAvLyAzLjUuNyBSYW5nZSBSZW1vdmFsCisgICAgLy8gaHR0cHM6
Ly9yYXdnaXQuY29tL3czYy9tZWRpYS1zb3VyY2UvN2JiZTRhYTMzYzYxZWMwMjViYzdhY2JkODAz
NTQxMTBmNmEwMDBmOS9tZWRpYS1zb3VyY2UuaHRtbCNzb3VyY2VidWZmZXItcmFuZ2UtcmVtb3Zh
bAorICAgIC8vIDEuIExldCBzdGFydCBlcXVhbCB0aGUgc3RhcnRpbmcgcHJlc2VudGF0aW9uIHRp
bWVzdGFtcCBmb3IgdGhlIHJlbW92YWwgcmFuZ2UuCisgICAgLy8gMi4gTGV0IGVuZCBlcXVhbCB0
aGUgZW5kIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAgZm9yIHRoZSByZW1vdmFsIHJhbmdlLgorICAg
IC8vIDMuIFNldCB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIHRvIHRydWUuCiAgICAgbV91cGRhdGlu
ZyA9IHRydWU7CiAKLSAgICAvLyA3LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVu
dCBuYW1lZCB1cGRhdGVzdGFydCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgLy8g
NC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlc3RhcnQg
YXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgogICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLnVwZGF0ZXN0YXJ0RXZlbnQpOwogCi0gICAgLy8gOC4gUmV0dXJuIGNvbnRyb2wgdG8gdGhl
IGNhbGxlciBhbmQgcnVuIHRoZSByZXN0IG9mIHRoZSBzdGVwcyBhc3luY2hyb25vdXNseS4KKyAg
ICAvLyA1LiBSZXR1cm4gY29udHJvbCB0byB0aGUgY2FsbGVyIGFuZCBydW4gdGhlIHJlc3Qgb2Yg
dGhlIHN0ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgIG1fcGVuZGluZ1JlbW92ZVN0YXJ0ID0gc3Rh
cnQ7CiAgICAgbV9wZW5kaW5nUmVtb3ZlRW5kID0gZW5kOwogICAgIG1fcmVtb3ZlVGltZXIuc3Rh
cnRPbmVTaG90KDApOwpAQCAtNzg5LDIxICs4MDUsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnJl
bW92ZVRpbWVyRmlyZWQoKQogICAgIEFTU0VSVChtX3BlbmRpbmdSZW1vdmVTdGFydC5pc1ZhbGlk
KCkpOwogICAgIEFTU0VSVChtX3BlbmRpbmdSZW1vdmVTdGFydCA8IG1fcGVuZGluZ1JlbW92ZUVu
ZCk7CiAKLSAgICAvLyBTZWN0aW9uIDMuMiByZW1vdmUoKSBtZXRob2Qgc3RlcHMKLSAgICAvLyBo
dHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXItcmVtb3ZlLXZvaWQtZG91
YmxlLXN0YXJ0LWRvdWJsZS1lbmQKKyAgICAvLyBTZWN0aW9uIDMuNS43IFJhbmdlIFJlbW92YWwK
KyAgICAvLyBodHRwOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZlci1y
YW5nZS1yZW1vdmFsCiAKLSAgICAvLyA5LiBSdW4gdGhlIGNvZGVkIGZyYW1lIHJlbW92YWwgYWxn
b3JpdGhtIHdpdGggc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgcmVt
b3ZhbCByYW5nZS4KKyAgICAvLyA2LiBSdW4gdGhlIGNvZGVkIGZyYW1lIHJlbW92YWwgYWxnb3Jp
dGhtIHdpdGggc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgcmVtb3Zh
bCByYW5nZS4KICAgICByZW1vdmVDb2RlZEZyYW1lcyhtX3BlbmRpbmdSZW1vdmVTdGFydCwgbV9w
ZW5kaW5nUmVtb3ZlRW5kKTsKIAotICAgIC8vIDEwLiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0
ZSB0byBmYWxzZS4KKyAgICAvLyA3LiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byBmYWxz
ZS4KICAgICBtX3VwZGF0aW5nID0gZmFsc2U7CiAgICAgbV9wZW5kaW5nUmVtb3ZlU3RhcnQgPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CiAgICAgbV9wZW5kaW5nUmVtb3ZlRW5kID0gTWVkaWFU
aW1lOjppbnZhbGlkVGltZSgpOwogCi0gICAgLy8gMTEuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
c2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZSBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisg
ICAgLy8gOC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRl
IGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFt
ZXMoKS51cGRhdGVFdmVudCk7CiAKLSAgICAvLyAxMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBz
aW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4K
KyAgICAvLyA5LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRh
dGVlbmQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgogICAgIHNjaGVkdWxlRXZlbnQoZXZl
bnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggNGQzMzVkYy4uNWI5ZjcwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCkBAIC0xMjYsNiArMTI2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVU
aW1lc3RhbXBzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHM7IH0K
ICAgICB2b2lkIHNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sIGZsYWcpIHsgbV9zaG91
bGRHZW5lcmF0ZVRpbWVzdGFtcHMgPSBmbGFnOyB9CiAKKyAgICB2b2lkIHJhbmdlUmVtb3ZhbChj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKTsKIHByb3RlY3RlZDoKICAgICAvLyBF
dmVudFRhcmdldCBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBv
dmVycmlkZSB7IHJlZigpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>