<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>325012</bug_id>
          
          <creation_ts>2013-09-17 17:38:17 +0000</creation_ts>
          <short_desc>Playlist reordering works only in one direction</short_desc>
          <delta_ts>2014-03-06 14:20:36 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>Unmaintained</classification>
          <product>plasma-mediacenter</product>
          <component>Playlist</component>
          <version>1.1.0</version>
          <rep_platform>unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Shantanu Tushar">shantanu</reporter>
          <assigned_to name="Sinny Kumari">ksinny</assigned_to>
          
          
          <cf_commitlink>http://commits.kde.org/plasma-mediacenter/86f20ec9a746efb0add1de56e44bc5064de45a53</cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1397802</commentid>
    <comment_count>0</comment_count>
    <who name="Shantanu Tushar">shantanu</who>
    <bug_when>2013-09-17 17:38:17 +0000</bug_when>
    <thetext>Playlist reordering works only if you press-n-hold, drag and drop a media item downwards. If you do so upwards, the order remains the same.

Reproducible: Always

Steps to Reproduce:
1. Add more than 2 songs to playlist

song1
song2
song3

2. Drag song1 below song2

Actual Results:  
song1 remains in its original position

Expected Results:  
song1 should go below song2 and the order should become

song2
song1
song3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398223</commentid>
    <comment_count>1</comment_count>
      <attachid>82410</attachid>
    <who name="kaushik varanasi">expendablesbin</who>
    <bug_when>2013-09-19 15:31:10 +0000</bug_when>
    <thetext>Created attachment 82410
this is a patch to the /plasma-media-center/libs/mediacenter/playlistmodel.cpp

the drag and drop feature worked only in one direction. I fixed the bug.
now the drag and drop feature is complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398225</commentid>
    <comment_count>2</comment_count>
    <who name="Shantanu Tushar">shantanu</who>
    <bug_when>2013-09-19 15:34:51 +0000</bug_when>
    <thetext>Thanks for the patch. However, in the following code-

 void PlaylistModel::moveItem(int firstIndex, int secondIndex)
 {
+	beginResetModel();
     d-&gt;musicList.move(firstIndex,secondIndex);
+    endResetModel();
     emit dataChanged(createIndex(firstIndex, 0), createIndex(secondIndex, 0));
 }

the call to d-&gt;musicList.move is there to avoid calling beginResetModel() and endResetModel(). This is because reset&apos;ing a model is expensive, and instead we should only call move.

My guess is that during upwards, the move() method works fine, but dataChanged() is somehow not working. Try to figure out why (maybe look at the values passed to dataChanged and whats the difference between upwards and downwards).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398227</commentid>
    <comment_count>3</comment_count>
      <attachid>82411</attachid>
    <who name="kaushik varanasi">expendablesbin</who>
    <bug_when>2013-09-19 15:37:32 +0000</bug_when>
    <thetext>Created attachment 82411
playlistmodel.cpp

in case my patch dosnt work, replace the /plasma-media-center/libs/mediacenter/playlistmodel.cpp file with this.


PS: as i said i am very new to open source so please excuse my amature behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399033</commentid>
    <comment_count>4</comment_count>
    <who name="Shantanu Tushar">shantanu</who>
    <bug_when>2013-09-23 15:28:26 +0000</bug_when>
    <thetext>Hey kaushik,
So as I mentioned, don&apos;t use reset and instead use dataChanged (as its already there). I think the problem is that lets say you pass firstIndex, secondIndex to dataChanged, it works only if firstIndex &lt; secondIndex. I suspect that when reordering upwards, firstIndex becomes greater than secondIndex and hence the problem. Try putting a if condition when this happens and in that case reverse the order of firstIndex and secondIndex when calling dataChanged.

If it works, instead of adding a patch here, create a new review request at http://git.reviewboard.kde.org/ and upload your patch there. Add &quot;plasma&quot; in the group and publish your review. Then we can take a look at your patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434150</commentid>
    <comment_count>5</comment_count>
    <who name="Shantanu Tushar">shantanu</who>
    <bug_when>2014-03-06 14:20:36 +0000</bug_when>
    <thetext>Git commit 86f20ec9a746efb0add1de56e44bc5064de45a53 by Shantanu Tushar.
Committed on 06/03/2014 at 14:18.
Pushed by shantanu into branch &apos;master&apos;.

Make playlist reordering work both the ways.

Patch by Ashish Madeti &lt;ashishmadeti@gmail.com&gt;
Welcome to KDE :)
REVIEW: 116626

M  +5    -1    libs/mediacenter/playlistmodel.cpp

http://commits.kde.org/plasma-mediacenter/86f20ec9a746efb0add1de56e44bc5064de45a53</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82410</attachid>
            <date>2013-09-19 15:31:10 +0000</date>
            <delta_ts>2013-09-19 15:31:10 +0000</delta_ts>
            <desc>this is a patch to the /plasma-media-center/libs/mediacenter/playlistmodel.cpp</desc>
            <filename>playlistModel.patch</filename>
            <type>text/plain</type>
            <size>947</size>
            <attacher name="kaushik varanasi">expendablesbin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2xpYnMvbWVkaWFjZW50ZXIvcGxheWxpc3Rtb2RlbC5jcHAgYi9saWJzL21l
ZGlhY2VudGVyL3BsYXlsaXN0bW9kZWwuY3BwCmluZGV4IDQ0MTcyNmEuLjZhNWIzOWUgMTAwNjQ0
Ci0tLSBhL2xpYnMvbWVkaWFjZW50ZXIvcGxheWxpc3Rtb2RlbC5jcHAKKysrIGIvbGlicy9tZWRp
YWNlbnRlci9wbGF5bGlzdG1vZGVsLmNwcApAQCAtMTA4LDcgKzEwOCw5IEBAIHZvaWQgUGxheWxp
c3RNb2RlbDo6cmVtb3ZlRnJvbVBsYXlsaXN0KGNvbnN0IGludCYgaW5kZXgpCiAKIHZvaWQgUGxh
eWxpc3RNb2RlbDo6bW92ZUl0ZW0oaW50IGZpcnN0SW5kZXgsIGludCBzZWNvbmRJbmRleCkKIHsK
KwliZWdpblJlc2V0TW9kZWwoKTsKICAgICBkLT5tdXNpY0xpc3QubW92ZShmaXJzdEluZGV4LHNl
Y29uZEluZGV4KTsKKyAgICBlbmRSZXNldE1vZGVsKCk7CiAgICAgZW1pdCBkYXRhQ2hhbmdlZChj
cmVhdGVJbmRleChmaXJzdEluZGV4LCAwKSwgY3JlYXRlSW5kZXgoc2Vjb25kSW5kZXgsIDApKTsK
IH0KIApkaWZmIC0tZ2l0IGEvbWVkaWFlbGVtZW50cy9wb3B1cG1lbnUvUG9wdXBNZW51LnFtbCBi
L21lZGlhZWxlbWVudHMvcG9wdXBtZW51L1BvcHVwTWVudS5xbWwKaW5kZXggNmE4MzJmNy4uZWY5
ZjQ2NyAxMDA2NDQKLS0tIGEvbWVkaWFlbGVtZW50cy9wb3B1cG1lbnUvUG9wdXBNZW51LnFtbAor
KysgYi9tZWRpYWVsZW1lbnRzL3BvcHVwbWVudS9Qb3B1cE1lbnUucW1sCkBAIC0yNSw3ICsyNSw3
IEBAIFJlY3RhbmdsZSB7CiAgICAgcHJvcGVydHkgYWxpYXMgbW9kZWw6IHJvb3RMaXN0Vmlldy5t
b2RlbAogICAgIHNpZ25hbCBwb3B1cE1lbnVJdGVtQ2xpY2tlZChpbnQgaW5kZXgpCiAKLSAgICBv
cGFjaXR5OiAwLjgKKyAgICBvcGFjaXR5OiAwCiAgICAgejogMgogICAgIGNvbG9yOiB0aGVtZS5i
YWNrZ3JvdW5kQ29sb3IKICAgICB2aXNpYmxlOiBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>82411</attachid>
            <date>2013-09-19 15:37:32 +0000</date>
            <delta_ts>2013-09-19 15:37:32 +0000</delta_ts>
            <desc>playlistmodel.cpp</desc>
            <filename>playlistmodel.cpp</filename>
            <type>text/plain</type>
            <size>7785</size>
            <attacher name="kaushik varanasi">expendablesbin</attacher>
            
              <data encoding="base64">LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAgQ29weXJpZ2h0IDIwMTIgYnkgU2lubnkg
S3VtYXJpIDxrc2lubnlAZ21haWwuY29tPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgog
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoKICogICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAgICAgICAgICAgICAqCiAq
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYyAgICAgICAgICAgICAgICAgICAgKgogKiAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgICAgICAgICAgICAgICoKICog
ICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4gICAgICAgICAgICAqCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCAgICAgICAgICAgICAgICoKICogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAgICAgICAgICAgICAqCiAqICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUgICAgICAgICAgICAgKgogKiAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqCiAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgKgogKiAgIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnkuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n
bnUub3JnL2xpY2Vuc2VzLz4uICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2luY2x1
ZGUgInBsYXlsaXN0bW9kZWwuaCIKI2luY2x1ZGUgInBsYXlsaXN0aXRlbS5oIgoKI2luY2x1ZGUg
PEtEZWJ1Zz4KI2luY2x1ZGUgPEtERS9LU3RhbmRhcmREaXJzPgojaW5jbHVkZSA8S0RFL0tDbWRM
aW5lQXJncz4KCiNpbmNsdWRlIDxRdENvcmUvUURpcj4KI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5n
TGlzdD4KI2luY2x1ZGUgPFF0Q29yZS9RRGF0ZVRpbWU+CiNpbmNsdWRlIDxRdENvcmUvUUNvcmVB
cHBsaWNhdGlvbj4KI2luY2x1ZGUgPFF0WG1sL1FEb21Eb2N1bWVudD4KCmNsYXNzIFBsYXlsaXN0
TW9kZWw6OlByaXZhdGUKewpwdWJsaWM6CiAgICBRTGlzdDxQbGF5bGlzdEl0ZW0qPiBtdXNpY0xp
c3Q7CiAgICBpbnQgY3VycmVudEluZGV4OwogICAgUUZpbGUgZmlsZTsKICAgIGJvb2wgcmFuZG9t
Owp9OwoKUGxheWxpc3RNb2RlbDo6UGxheWxpc3RNb2RlbChRT2JqZWN0KiBwYXJlbnQpOgogICAg
UUFic3RyYWN0TGlzdE1vZGVsKHBhcmVudCksCiAgICBkKG5ldyBQcml2YXRlKQp7CiAgICBsb2Fk
RnJvbUZpbGUocGxheWxpc3RGaWxlUGF0aCgpKTsKCiAgICBkLT5jdXJyZW50SW5kZXggPSAtMTsK
ICAgIHNldFJvbGVOYW1lcyhNZWRpYUNlbnRlcjo6YXBwZW5kQWRkaXRpb25hbE1lZGlhUm9sZXMo
cm9sZU5hbWVzKCkpKTsKCiAgICBRSGFzaDxpbnQsIFFCeXRlQXJyYXk+IG5ld1JvbGVzKHJvbGVO
YW1lcygpKTsKICAgIG5ld1JvbGVzW01lZGlhTGVuZ3RoUm9sZV0gPSAibWVkaWFMZW5ndGgiOwog
ICAgbmV3Um9sZXNbTWVkaWFBcnRpc3RSb2xlXSA9ICJtZWRpYUFydGlzdCI7CiAgICBuZXdSb2xl
c1tPcmlnaW5hbEluZGV4Um9sZV0gPSAib3JpZ2luYWxJbmRleCI7CiAgICBzZXRSb2xlTmFtZXMo
bmV3Um9sZXMpOwoKICAgIHFzcmFuZChRRGF0ZVRpbWU6OmN1cnJlbnRNU2Vjc1NpbmNlRXBvY2go
KSk7CgogICAgY29ubmVjdChRQ29yZUFwcGxpY2F0aW9uOjppbnN0YW5jZSgpLCBTSUdOQUwoYWJv
dXRUb1F1aXQoKSksIFNMT1Qoc2F2ZVBsYXlsaXN0KCkpKTsKfQoKUGxheWxpc3RNb2RlbDo6flBs
YXlsaXN0TW9kZWwoKQp7CiAgICBzYXZlUGxheWxpc3QoKTsKfQoKUVZhcmlhbnQgUGxheWxpc3RN
b2RlbDo6ZGF0YShjb25zdCBRTW9kZWxJbmRleCYgaW5kZXgsIGludCByb2xlKSBjb25zdAp7CiAg
ICBzd2l0Y2gocm9sZSkgewogICAgY2FzZSBRdDo6RGlzcGxheVJvbGU6CiAgICAgICAgcmV0dXJu
IGQtPm11c2ljTGlzdC5hdChpbmRleC5yb3coKSktPm1lZGlhTmFtZSgpOwogICAgY2FzZSBNZWRp
YUNlbnRlcjo6TWVkaWFVcmxSb2xlOgogICAgICAgIHJldHVybiBkLT5tdXNpY0xpc3QuYXQoaW5k
ZXgucm93KCkpLT5tZWRpYVVybCgpOwogICAgY2FzZSBQbGF5bGlzdE1vZGVsOjpNZWRpYUFydGlz
dFJvbGU6CiAgICAgICAgcmV0dXJuIGQtPm11c2ljTGlzdC5hdChpbmRleC5yb3coKSktPm1lZGlh
QXJ0aXN0KCk7CiAgICBjYXNlIFBsYXlsaXN0TW9kZWw6Ok1lZGlhTGVuZ3RoUm9sZToKICAgICAg
ICByZXR1cm4gZC0+bXVzaWNMaXN0LmF0KGluZGV4LnJvdygpKS0+bWVkaWFMZW5ndGgoKTsKICAg
IGNhc2UgUGxheWxpc3RNb2RlbDo6T3JpZ2luYWxJbmRleFJvbGU6CiAgICAgICAgcmV0dXJuIGlu
ZGV4LnJvdygpOwogICAgfQogICAgcmV0dXJuIFFWYXJpYW50KCk7Cn0KCmludCBQbGF5bGlzdE1v
ZGVsOjpyb3dDb3VudChjb25zdCBRTW9kZWxJbmRleCYgcGFyZW50KSBjb25zdAp7CiAgICByZXR1
cm4gZC0+bXVzaWNMaXN0LmNvdW50KCk7Cn0KCnZvaWQgUGxheWxpc3RNb2RlbDo6YWRkVG9QbGF5
bGlzdChjb25zdCBRU3RyaW5nJiB1cmwpCnsKICAgIGNvbnN0IGludCBuID0gcm93Q291bnQoKTsK
ICAgIGJlZ2luSW5zZXJ0Um93cyhRTW9kZWxJbmRleCgpLCBuLCBuKTsKCiAgICBQbGF5bGlzdEl0
ZW0gKml0ZW0gPSBuZXcgUGxheWxpc3RJdGVtKHVybCwgdGhpcyk7CiAgICBjb25uZWN0KGl0ZW0s
IFNJR05BTCh1cGRhdGVkKCkpLCBTTE9UKHBsYXlsaXN0SXRlbVVwZGF0ZWQoKSkpOwogICAgZC0+
bXVzaWNMaXN0LmFwcGVuZChpdGVtKTsKCiAgICBlbmRJbnNlcnRSb3dzKCk7Cn0KCnZvaWQgUGxh
eWxpc3RNb2RlbDo6cmVtb3ZlRnJvbVBsYXlsaXN0KGNvbnN0IGludCYgaW5kZXgpCnsKICAgIGJl
Z2luUmVzZXRNb2RlbCgpOwogICAgZC0+bXVzaWNMaXN0LnRha2VBdChpbmRleCktPmRlbGV0ZUxh
dGVyKCk7CiAgICBpZiAoaW5kZXggPD0gZC0+Y3VycmVudEluZGV4KSB7CiAgICAgICAgZC0+Y3Vy
cmVudEluZGV4IC09IDE7CiAgICB9CiAgICBlbmRSZXNldE1vZGVsKCk7Cn0KCnZvaWQgUGxheWxp
c3RNb2RlbDo6bW92ZUl0ZW0oaW50IGZpcnN0SW5kZXgsIGludCBzZWNvbmRJbmRleCkKewoJYmVn
aW5SZXNldE1vZGVsKCk7CiAgICBkLT5tdXNpY0xpc3QubW92ZShmaXJzdEluZGV4LHNlY29uZElu
ZGV4KTsKICAgIGVuZFJlc2V0TW9kZWwoKTsKICAgIGVtaXQgZGF0YUNoYW5nZWQoY3JlYXRlSW5k
ZXgoZmlyc3RJbmRleCwgMCksIGNyZWF0ZUluZGV4KHNlY29uZEluZGV4LCAwKSk7Cn0KClFTdHJp
bmcgUGxheWxpc3RNb2RlbDo6Z2V0TmV4dFVybCgpCnsKICAgIGlmIChkLT5jdXJyZW50SW5kZXgg
PT0gZC0+bXVzaWNMaXN0LmNvdW50KCkgLSAxKSB7CiAgICAgICAgc2V0Q3VycmVudEluZGV4KDAp
OwogICAgfSBlbHNlIHsKICAgICAgICBzZXRDdXJyZW50SW5kZXgoZC0+Y3VycmVudEluZGV4ICsg
MSk7CiAgICB9CiAgICByZXR1cm4gZC0+bXVzaWNMaXN0LmF0KGQtPmN1cnJlbnRJbmRleCktPm1l
ZGlhVXJsKCk7Cn0KClFTdHJpbmcgUGxheWxpc3RNb2RlbDo6Z2V0UHJldmlvdXNVcmwoKQp7CiAg
ICBpZiAoZC0+Y3VycmVudEluZGV4ID09IDApIHsKICAgICAgICBzZXRDdXJyZW50SW5kZXgoZC0+
bXVzaWNMaXN0LmNvdW50KCkgLSAxKTsKICAgIH0gZWxzZSB7CiAgICAgICAgc2V0Q3VycmVudElu
ZGV4KGQtPmN1cnJlbnRJbmRleCAtIDEpOwogICAgfQogICAgcmV0dXJuIGQtPm11c2ljTGlzdC5h
dChkLT5jdXJyZW50SW5kZXgpLT5tZWRpYVVybCgpOwp9CgpRU3RyaW5nIFBsYXlsaXN0TW9kZWw6
OmdldFVybG9mRmlyc3RJbmRleCgpCnsKICAgIHJldHVybiBkLT5tdXNpY0xpc3QuaXNFbXB0eSgp
ID8gUVN0cmluZygpIDogZC0+bXVzaWNMaXN0LmF0KDApLT5tZWRpYVVybCgpOwp9Cgp2b2lkIFBs
YXlsaXN0TW9kZWw6OmNsZWFyUGxheWxpc3QoKQp7CiAgICBiZWdpblJlc2V0TW9kZWwoKTsKCiAg
ICBRX0ZPUkVBQ0goUGxheWxpc3RJdGVtICppdGVtLCBkLT5tdXNpY0xpc3QpIHsKICAgICAgICBp
dGVtLT5kZWxldGVMYXRlcigpOwogICAgfQoKICAgIGQtPm11c2ljTGlzdC5jbGVhcigpOwogICAg
ZC0+Y3VycmVudEluZGV4ID0gLTE7CgogICAgZW5kUmVzZXRNb2RlbCgpOwp9CgppbnQgUGxheWxp
c3RNb2RlbDo6Y3VycmVudEluZGV4KCkgY29uc3QKewogICAgcmV0dXJuIGQtPmN1cnJlbnRJbmRl
eDsKfQoKdm9pZCBQbGF5bGlzdE1vZGVsOjpzZXRDdXJyZW50SW5kZXgoaW50IGluZGV4KQp7CiAg
ICBkLT5jdXJyZW50SW5kZXggPSBpbmRleDsKICAgIGVtaXQgY3VycmVudEluZGV4Q2hhbmdlZCgp
Owp9Cgp2b2lkIFBsYXlsaXN0TW9kZWw6OnNodWZmbGUoKQp7CiAgICBpZiggZC0+bXVzaWNMaXN0
LmlzRW1wdHkoKSkKICAgICAgICByZXR1cm47CiAgICBRTGlzdDxQbGF5bGlzdEl0ZW0qPiBtdXNp
Y0xpc3RTaHVmZmxlOwogICAgaWYoIGQtPmN1cnJlbnRJbmRleCA9PSAtMSApCiAgICAgICAgZC0+
Y3VycmVudEluZGV4ID0gMDsKICAgIG11c2ljTGlzdFNodWZmbGUuYXBwZW5kKGQtPm11c2ljTGlz
dC50YWtlQXQoZC0+Y3VycmVudEluZGV4KSk7CiAgICB3aGlsZSggIWQtPm11c2ljTGlzdC5pc0Vt
cHR5KCkgKSB7CiAgICAgICAgbXVzaWNMaXN0U2h1ZmZsZS5hcHBlbmQoZC0+bXVzaWNMaXN0LnRh
a2VBdChxcmFuZCgpICUgZC0+bXVzaWNMaXN0LnNpemUoKSkpOwogICAgfQoKICAgIGJlZ2luUmVz
ZXRNb2RlbCgpOwogICAgZC0+bXVzaWNMaXN0ID0gbXVzaWNMaXN0U2h1ZmZsZTsKICAgIGVuZFJl
c2V0TW9kZWwoKTsKICAgIHNldEN1cnJlbnRJbmRleCgwKTsKfQoKCnZvaWQgUGxheWxpc3RNb2Rl
bDo6cGxheWxpc3RJdGVtVXBkYXRlZCgpCnsKICAgIFBsYXlsaXN0SXRlbSAqaXRlbSA9IHFvYmpl
Y3RfY2FzdDxQbGF5bGlzdEl0ZW0qPihzZW5kZXIoKSk7CgogICAgaW50IGkgPSBkLT5tdXNpY0xp
c3QuaW5kZXhPZihpdGVtKTsKICAgIGVtaXQgZGF0YUNoYW5nZWQoY3JlYXRlSW5kZXgoaSwgMCks
IGNyZWF0ZUluZGV4KGksIDApKTsKfQoKUVN0cmluZyBQbGF5bGlzdE1vZGVsOjpwbGF5bGlzdEZp
bGVQYXRoKCkgY29uc3QKewogICAgUVN0cmluZyBkaXJQYXRoID0gS0dsb2JhbDo6ZGlycygpLT5z
YXZlTG9jYXRpb24oImRhdGEiKSArIEtDbWRMaW5lQXJnczo6YXBwTmFtZSgpOwogICAgUURpcigp
Lm1rZGlyKGRpclBhdGgpOwogICAgcmV0dXJuIGRpclBhdGggKyAiL3BsYXlsaXN0IjsKfQoKdm9p
ZCBQbGF5bGlzdE1vZGVsOjpsb2FkRnJvbUZpbGUoY29uc3QgUVN0cmluZyYgcGF0aCkKewogICAg
aWYgKFFGaWxlOjpleGlzdHMocGF0aCkpIHsKICAgICAgICBRRmlsZSBmaWxlKHBhdGgpOwogICAg
ICAgIGlmIChmaWxlLm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSkpIHsKICAgICAgICAgICAgUURv
bURvY3VtZW50IGRvYzsKICAgICAgICAgICAgZG9jLnNldENvbnRlbnQoZmlsZS5yZWFkQWxsKCkp
OwogICAgICAgICAgICBmaWxlLmNsb3NlKCk7CgogICAgICAgICAgICBRRG9tTm9kZUxpc3QgaXRl
bUxpc3QgPSBkb2MuZWxlbWVudHNCeVRhZ05hbWUoIml0ZW0iKTsKICAgICAgICAgICAgZm9yIChp
bnQgaT0wOyBpPGl0ZW1MaXN0LmNvdW50KCk7IGkrKykgewogICAgICAgICAgICAgICAgUURvbU5v
ZGUgbm9kZSA9IGl0ZW1MaXN0LmF0KGkpOwogICAgICAgICAgICAgICAgaWYgKG5vZGUuaXNOdWxs
KCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyB1cmwgPSBub2RlLnRv
RWxlbWVudCgpLmF0dHJpYnV0ZSgidXJsIik7CiAgICAgICAgICAgICAgICBpZiAodXJsLmlzRW1w
dHkoKSkgY29udGludWU7CgogICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBuYW1lID0gbm9k
ZS50b0VsZW1lbnQoKS5hdHRyaWJ1dGUoIm5hbWUiLCB1cmwpOwogICAgICAgICAgICAgICAgY29u
c3QgUVN0cmluZyBhcnRpc3QgPSBub2RlLnRvRWxlbWVudCgpLmF0dHJpYnV0ZSgiYXJ0aXN0Iiwg
UGxheWxpc3RJdGVtOjpkZWZhdWx0QXJ0aXN0KTsKICAgICAgICAgICAgICAgIGNvbnN0IGludCBs
ZW5ndGggPSBub2RlLnRvRWxlbWVudCgpLmF0dHJpYnV0ZSgibGVuZ3RoIiwgUVN0cmluZzo6bnVt
YmVyKFBsYXlsaXN0SXRlbTo6ZGVmYXVsdExlbmd0aCkpLnRvSW50KCk7CgogICAgICAgICAgICAg
ICAgUGxheWxpc3RJdGVtICppdGVtID0gbmV3IFBsYXlsaXN0SXRlbSh1cmwsIG5hbWUsIGFydGlz
dCwgbGVuZ3RoLCB0aGlzKTsKICAgICAgICAgICAgICAgIGNvbm5lY3QoaXRlbSwgU0lHTkFMKHVw
ZGF0ZWQoKSksIFNMT1QocGxheWxpc3RJdGVtVXBkYXRlZCgpKSk7CiAgICAgICAgICAgICAgICBk
LT5tdXNpY0xpc3QuYXBwZW5kKGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9
Cgp2b2lkIFBsYXlsaXN0TW9kZWw6OnNhdmVUb0ZpbGUoY29uc3QgUVN0cmluZyYgcGF0aCkKewog
ICAgUUZpbGUgZmlsZShwYXRoKTsKICAgIGlmIChmaWxlLm9wZW4oUUlPRGV2aWNlOjpXcml0ZU9u
bHkpKSB7CiAgICAgICAgUURvbURvY3VtZW50IGRvYzsKICAgICAgICBRRG9tRWxlbWVudCBwbGF5
bGlzdCA9IGRvYy5jcmVhdGVFbGVtZW50KCJwbGF5bGlzdCIpOwoKICAgICAgICBRX0ZPUkVBQ0gg
KGNvbnN0IFBsYXlsaXN0SXRlbSAqaXRlbSwgZC0+bXVzaWNMaXN0KSB7CiAgICAgICAgICAgIFFE
b21FbGVtZW50IGVsZW1lbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgiaXRlbSIpOwogICAgICAgICAg
ICBlbGVtZW50LnNldEF0dHJpYnV0ZSgidXJsIiwgaXRlbS0+bWVkaWFVcmwoKSk7CiAgICAgICAg
ICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJuYW1lIiwgaXRlbS0+bWVkaWFOYW1lKCkpOwogICAg
ICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJ0aXN0IiwgaXRlbS0+bWVkaWFBcnRpc3Qo
KSk7CiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJsZW5ndGgiLCBpdGVtLT5tZWRp
YUxlbmd0aCgpKTsKICAgICAgICAgICAgcGxheWxpc3QuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAg
ICAgICAgfQoKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocGxheWxpc3QpOwogICAgICAgIFFUZXh0
U3RyZWFtIHMoJmZpbGUpOwogICAgICAgIGRvYy5zYXZlKHMsIDApOwogICAgICAgIGZpbGUuY2xv
c2UoKTsKICAgIH0KfQoKdm9pZCBQbGF5bGlzdE1vZGVsOjpzYXZlUGxheWxpc3QoKQp7CiAgICBz
YXZlVG9GaWxlKHBsYXlsaXN0RmlsZVBhdGgoKSk7Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>