<?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>86350</bug_id>
          
          <creation_ts>2012-05-14 03:51:34 -0700</creation_ts>
          <short_desc>[Refactoring] Get rid of ContentDistribution::Item</short_desc>
          <delta_ts>2012-05-14 23:29:48 -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>DOM</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>
          <dependson>86064</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622795</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-14 03:51:34 -0700</bug_when>
    <thetext>This is followup of Bug 86064. 
A dual-link list ContentDistribution::Item has several flaw. And the class itself should be abandoned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623552</commentid>
    <comment_count>1</comment_count>
      <attachid>141837</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-14 18:50:20 -0700</bug_when>
    <thetext>Created attachment 141837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623553</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-14 18:51:30 -0700</bug_when>
    <thetext>Hi Dimitri, could you take a look?
This simplification makes content related code much easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623577</commentid>
    <comment_count>3</comment_count>
      <attachid>141837</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-14 19:51:58 -0700</bug_when>
    <thetext>Comment on attachment 141837
Patch

beautiful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623637</commentid>
    <comment_count>4</comment_count>
      <attachid>141837</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-14 21:58:58 -0700</bug_when>
    <thetext>Comment on attachment 141837
Patch

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623683</commentid>
    <comment_count>5</comment_count>
      <attachid>141837</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 23:29:43 -0700</bug_when>
    <thetext>Comment on attachment 141837
Patch

Clearing flags on attachment: 141837

Committed r117033: &lt;http://trac.webkit.org/changeset/117033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623684</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 23:29:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141837</attachid>
            <date>2012-05-14 18:50:20 -0700</date>
            <delta_ts>2012-05-14 23:29:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86350-20120515105019.patch</filename>
            <type>text/plain</type>
            <size>18862</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjIwNzI4ZTIxYjNlMjlj
M2NmYTUzNGMwNzYwODhkMjEwZDczZTg1OC4uOTk4ZDI2YmZjM2U1MjE3NTcwMWFiMmQ1MjY1MjZl
MzBkY2ZiZTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA1LTE0ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtSZWZhY3RvcmluZ10g
R2V0IHJpZCBvZiBDb250ZW50RGlzdHJpYnV0aW9uOjpJdGVtCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM1MAorCisgICAgICAgIFRoaXMgY2hhbmdl
IHJlcGxhY2VzIHRoZSBsaW5rZWQgbGlzdCBvbiBDb250ZW50RGlzdHJpYnV0aW9uIHdpdGggYSBW
ZWN0b3IuCisgICAgICAgIFdlIG5vIGxvbmdlciBsaW5rIGl0ZW0gY2xhc3MgQ29udGVudERpc3Ry
aWJ1dGlvbjo6SXRlbS4KKyAgICAgICAgVGhpcyBzaW1wbGlmaWNhdGlvbiBhbHNvIGFsbG93cyBD
b250ZW50RGlzdHJpYnV0aW9uIHRvIGdvLgorICAgICAgICBDb250ZW50RGlzdHJpYnV0aW9uIGlz
IG5vdyBqdXN0IGEgdHlwZWRlZiBvZiBWZWN0b3I8UmVmUHRyPE5vZGU+ID4uCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAqIGRv
bS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgorICAg
ICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6bGFzdFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRE
aXN0cmlidXRvcjo6ZGlzdHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGlzdHJp
YnV0b3I6OmNsZWFyRGlzdHJpYnV0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREaXN0
cmlidXRvcjo6ZmluZEluc2VydGlvblBvaW50Rm9yKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9D
b250ZW50RGlzdHJpYnV0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVu
dERpc3RyaWJ1dG9yKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6SW5zZXJ0aW9uUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmF0dGFjaERpc3RyaWJ1dGVkTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6YXNzaWduU2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6bmV4dFRvKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OnByZXZpb3VzVG8pOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6IEFkZGVkIGEgc2V0IG9mIGRlbGVnYXRl
IG1ldGhvZCB0byBtX2Rpc3RyaWJ1dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Okluc2VydGlvblBv
aW50OjpoYXNEaXN0cmlidXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6
OmluZGV4T2YpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OnNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmF0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydGlvblBvaW50OjpmaXJzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6
bGFzdCk6CisgICAgICAgIChJbnNlcnRpb25Qb2ludCk6CisKIDIwMTItMDUtMTQgIEFsZXhhbmRy
ZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUHJldmVu
dCBLZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQgZnJvbSBicmVha2luZyBvbiBuZXh0IE5ESyByb2xs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCmlu
ZGV4IDA5YjkzNzZiNWQwODNjMmU1NWM2OTFkYTUzNjI2ZjBlMWUwOTgzNzEuLjIzNTY4M2ZlZGY4
Y2M2OWU1OTg5ZjQxYzYzNzFlOTk4MDg3YWZkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCkBAIC0xMTMsOCArMTEzLDggQEAgTm9kZSog
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZU5vZGUoY29uc3QgTm9kZSogbm9kZSwg
VHJhdmVyc2FsRGlyZWN0aW8KIHsKICAgICBBU1NFUlQobm9kZSk7CiAgICAgaWYgKGlzSW5zZXJ0
aW9uUG9pbnQobm9kZSkpIHsKLSAgICAgICAgY29uc3QgQ29udGVudERpc3RyaWJ1dGlvbiogZGlz
dHJpYnV0aW9uID0gdG9JbnNlcnRpb25Qb2ludChub2RlKS0+ZGlzdHJpYnV0aW9uKCk7Ci0gICAg
ICAgIGlmIChOb2RlKiBuZXh0ID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3
YXJkID8gZGlzdHJpYnV0aW9uLT5maXJzdE5vZGUoKSA6IGRpc3RyaWJ1dGlvbi0+bGFzdE5vZGUo
KSkpCisgICAgICAgIGNvbnN0IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IHRvSW5z
ZXJ0aW9uUG9pbnQobm9kZSk7CisgICAgICAgIGlmIChOb2RlKiBuZXh0ID0gKGRpcmVjdGlvbiA9
PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gaW5zZXJ0aW9uUG9pbnQtPmZpcnN0KCkgOiBp
bnNlcnRpb25Qb2ludC0+bGFzdCgpKSkKICAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUo
bmV4dCwgZGlyZWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGlnaHRDaGlsZHJlbihu
b2RlLCBkaXJlY3Rpb24pOwogICAgIH0KQEAgLTE0MSwxMiArMTQxLDEyIEBAIE5vZGUqIENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2lu
dChjb25zdCBOb2RlCiAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93T2ZQYXJlbnQo
bm9kZSk7CiAgICAgaWYgKCFzaGFkb3cpCiAgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJ
bkN1cnJlbnRUcmVlKG5vZGUsIGRpcmVjdGlvbik7Ci0gICAgQ29udGVudERpc3RyaWJ1dGlvbjo6
SXRlbSogaXRlbSA9IHNoYWRvdy0+ZGlzdHJpYnV0aW9uSXRlbUZvcihub2RlKTsKLSAgICBpZiAo
IWl0ZW0pCisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gc2hhZG93LT5pbnNl
cnRpb25Qb2ludEZvcihub2RlKTsKKyAgICBpZiAoIWluc2VydGlvblBvaW50KQogICAgICAgICBy
ZXR1cm4gdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOwotICAg
IGlmIChDb250ZW50RGlzdHJpYnV0aW9uOjpJdGVtKiBuZXh0SXRlbSA9IChkaXJlY3Rpb24gPT0g
VHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IGl0ZW0tPm5leHQoKSA6IGl0ZW0tPnByZXZpb3Vz
KCkpKQotICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKG5leHRJdGVtLT5ub2RlKCksIGRpcmVj
dGlvbik7Ci0gICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQo
aXRlbS0+aW5zZXJ0aW9uUG9pbnQoKSwgZGlyZWN0aW9uKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9
IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IGluc2VydGlvblBvaW50
LT5uZXh0VG8obm9kZSkgOiBpbnNlcnRpb25Qb2ludC0+cHJldmlvdXNUbyhub2RlKSkpCisgICAg
ICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dCwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gdHJh
dmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2ludCwgZGlyZWN0
aW9uKTsKIH0KIAogTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxp
bmdJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5kZXggZmY4NTE5ODRkNGEz
MjBiMDFmMWYxZWQ0ZGQxNjRhMzY2N2FjZTkxMC4uNzNhYWRlYWE1OTRiNDQxMjM0NDk4OWMwMjMw
OGNhOGVjNDdkMjI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFk
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcApAQCAtMTY3
LDExICsxNjcsNiBAQCBJbnNlcnRpb25Qb2ludCogRWxlbWVudFNoYWRvdzo6aW5zZXJ0aW9uUG9p
bnRGb3IoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKICAgICByZXR1cm4gZGlzdHJpYnV0b3IoKS5m
aW5kSW5zZXJ0aW9uUG9pbnRGb3Iobm9kZSk7CiB9CiAKLUNvbnRlbnREaXN0cmlidXRpb246Okl0
ZW0qIEVsZW1lbnRTaGFkb3c6OmRpc3RyaWJ1dGlvbkl0ZW1Gb3IoY29uc3QgTm9kZSogbm9kZSkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9kaXN0cmlidXRvci5maW5kRm9yKG5vZGUpOwotfQotCiB2
b2lkIEVsZW1lbnRTaGFkb3c6OnJlYXR0YWNoKCkKIHsKICAgICBkZXRhY2goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFNoYWRvdy5oCmluZGV4IGQ0ZDdkNDMwY2I3YTQzMzUzYTVlZmVjYzc1MDY2NThh
Yzg1MGIwNTAuLmU2Zjg2MGI2ZDBmNzE4MGIyNmYyMjMyNjFjNmUxMGY2OTY2ZWVhYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICBJbnNlcnRpb25Qb2ludCogaW5zZXJ0
aW9uUG9pbnRGb3IoY29uc3QgTm9kZSopIGNvbnN0OwotICAgIENvbnRlbnREaXN0cmlidXRpb246
Okl0ZW0qIGRpc3RyaWJ1dGlvbkl0ZW1Gb3IoY29uc3QgTm9kZSopIGNvbnN0OwogCiAgICAgQ29u
dGVudERpc3RyaWJ1dG9yJiBkaXN0cmlidXRvcigpOwogICAgIGNvbnN0IENvbnRlbnREaXN0cmli
dXRvciYgZGlzdHJpYnV0b3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IDNkOThhNmY2YTVlYjdmMWE1ZGFmZDk0Y2U2Zjk4MDk0NjZj
NGVjZDMuLmIzYjEyMTkzYzdlOWFhNGYyZWYyNjYwYWNjYzc5NmVjMjRmMTQxOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTQyLDEyICsxNDIs
MTIgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlbGVh
c2VTdHlsZSgpCiAKIHN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZklu
c2VydGlvblBvaW50KEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7Ci0g
ICAgQ29udGVudERpc3RyaWJ1dGlvbjo6SXRlbSogY3VycmVudEl0ZW0gPSBwYXJlbnQtPmRpc3Ry
aWJ1dGlvbigpLT5maW5kKGN1cnJlbnQpOwotICAgIGlmICghY3VycmVudEl0ZW0pCisgICAgc2l6
ZV90IHN0YXJ0ID0gcGFyZW50LT5pbmRleE9mKGN1cnJlbnQpOworICAgIGlmIChub3RGb3VuZCA9
PSBzdGFydCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBmb3IgKENvbnRlbnREaXN0cmlidXRp
b246Okl0ZW0qIGl0ZW0gPSBjdXJyZW50SXRlbS0+bmV4dCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+
bmV4dCgpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaXRlbS0+bm9k
ZSgpLT5yZW5kZXJlcigpKQorICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydCArIDE7IGkgPCBwYXJl
bnQtPnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
cGFyZW50LT5hdChpKS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsK
ICAgICB9CiAKQEAgLTE1OCwxMCArMTU4LDEwIEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludChJbnNlcnRpb25Qb2ludCogcGFyCiB7
CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXIgPSAwOwogCi0gICAgZm9yIChDb250ZW50
RGlzdHJpYnV0aW9uOjpJdGVtKiBpdGVtID0gcGFyZW50LT5kaXN0cmlidXRpb24oKS0+Zmlyc3Qo
KTsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQoKSkgewotICAgICAgICBpZiAoaXRlbS0+bm9kZSgp
ID09IGN1cnJlbnQpCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJlbnQtPnNpemUoKTsg
KytpKSB7CisgICAgICAgIGlmIChwYXJlbnQtPmF0KGkpID09IGN1cnJlbnQpCiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBpdGVtLT5ub2Rl
KCktPnJlbmRlcmVyKCkpCisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcGFy
ZW50LT5hdChpKS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIGxhc3RSZW5kZXJlciA9IHJlbmRl
cmVyOwogICAgIH0KIApAQCAtMTcwLDEzICsxNzAsMTAgQEAgc3RhdGljIGlubGluZSBSZW5kZXJP
YmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZkluc2VydGlvblBvaW50KEluc2VydGlvblBvaW50KiBw
YXIKIAogc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZkluc2VydGlv
blBvaW50KEluc2VydGlvblBvaW50KiBwYXJlbnQpCiB7Ci0gICAgaWYgKHBhcmVudC0+aGFzRGlz
dHJpYnV0aW9uKCkpIHsKLSAgICAgICAgZm9yIChDb250ZW50RGlzdHJpYnV0aW9uOjpJdGVtKiBp
dGVtID0gcGFyZW50LT5kaXN0cmlidXRpb24oKS0+Zmlyc3QoKTsgaXRlbTsgaXRlbSA9IGl0ZW0t
Pm5leHQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBpdGVt
LT5ub2RlKCktPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwot
ICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7CisgICAgc2l6ZV90IHNpemUgPSBwYXJlbnQt
PnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAg
ICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHBhcmVudC0+YXQoaSktPnJlbmRlcmVyKCkp
CisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CiAgICAgfQogCiAgICAgcmV0dXJuIGZpcnN0
UmVuZGVyZXJPZihwYXJlbnQtPmZpcnN0Q2hpbGQoKSk7CkBAIC0xODQsMTMgKzE4MSwxMCBAQCBz
dGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQo
SW5zZXJ0aW9uUG9pbnQqIHBhcmVudAogCiBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFz
dFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludChJbnNlcnRpb25Qb2ludCogcGFyZW50KQogewotICAg
IGlmIChwYXJlbnQtPmhhc0Rpc3RyaWJ1dGlvbigpKSB7Ci0gICAgICAgIGZvciAoQ29udGVudERp
c3RyaWJ1dGlvbjo6SXRlbSogaXRlbSA9IHBhcmVudC0+ZGlzdHJpYnV0aW9uKCktPmxhc3QoKTsg
aXRlbTsgaXRlbSA9IGl0ZW0tPnByZXZpb3VzKCkpIHsKLSAgICAgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gaXRlbS0+bm9kZSgpLT5yZW5kZXJlcigpKQotICAgICAgICAgICAg
ICAgIHJldHVybiByZW5kZXJlcjsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAwOworICAg
IHNpemVfdCBzaXplID0gcGFyZW50LT5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwYXJl
bnQtPmF0KHNpemUgLSAxIC0gaSktPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1cm4gcmVu
ZGVyZXI7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RSZW5kZXJlck9mKHBhcmVudC0+bGFzdENo
aWxkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERp
c3RyaWJ1dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnREaXN0cmli
dXRvci5jcHAKaW5kZXggMzcyMGEwM2ViZWQzZDEwNWVmOTJmMzA1NGUyYTc4MDg5ZTQ1YTEwYy4u
YWM1ZGJmNjhkNjBkNDZhZGJjMjQ1N2U0ZjgzZGI4ODVkODc2NGRiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCkBAIC0zNCw2MyAr
MzQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvbnRlbnREaXN0cmlidXRpb246OkNv
bnRlbnREaXN0cmlidXRpb24oKQotewotfQotCi1Db250ZW50RGlzdHJpYnV0aW9uOjp+Q29udGVu
dERpc3RyaWJ1dGlvbigpCi17Ci0gICAgQVNTRVJUKGlzRW1wdHkoKSk7Ci19Ci0KLUNvbnRlbnRE
aXN0cmlidXRpb246Okl0ZW0qIENvbnRlbnREaXN0cmlidXRpb246OmZpbmQoTm9kZSogbm9kZSkg
Y29uc3QKLXsKLSAgICBmb3IgKENvbnRlbnREaXN0cmlidXRpb246Okl0ZW0qIGl0ZW0gPSBmaXJz
dCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChub2RlID09IGl0
ZW0tPm5vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiBpdGVtOwotICAgIH0KLSAgICAKLSAgICBy
ZXR1cm4gMDsKLX0KLQotdm9pZCBDb250ZW50RGlzdHJpYnV0aW9uOjpjbGVhcigpCi17Ci0gICAg
aWYgKGlzRW1wdHkoKSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q29udGVudERpc3RyaWJ1dGlvbjo6SXRlbT4gaXRlbSA9
IG1fZmlyc3Q7Ci0gICAgd2hpbGUgKGl0ZW0pIHsKLSAgICAgICAgQVNTRVJUKCFpdGVtLT5wcmV2
aW91cygpKTsKLSAgICAgICAgUmVmUHRyPENvbnRlbnREaXN0cmlidXRpb246Okl0ZW0+IG5leHRJ
dGVtID0gaXRlbS0+bV9uZXh0OwotICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIoKTsKLSAgICAg
ICAgaWYgKG5leHRJdGVtKQotICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIo
KTsKLSAgICAgICAgaXRlbSA9IG5leHRJdGVtOwotICAgIH0KLQotICAgIG1fZmlyc3QuY2xlYXIo
KTsKLSAgICBtX2xhc3QuY2xlYXIoKTsKLX0KLQotdm9pZCBDb250ZW50RGlzdHJpYnV0aW9uOjph
cHBlbmQoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQotewotICAg
IFJlZlB0cjxJdGVtPiBjaGlsZCA9IEl0ZW06OmNyZWF0ZShpbnNlcnRpb25Qb2ludCwgbm9kZSk7
Ci0KLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbV9sYXN0KTsKLSAgICAg
ICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgQVNTRVJUKCFtX2xhc3QtPm5leHQoKSk7Ci0gICAgQVNTRVJUKCFjaGlsZC0+cHJldmlvdXMo
KSk7Ci0gICAgbV9sYXN0LT5tX25leHQgPSBjaGlsZDsKLSAgICBjaGlsZC0+bV9wcmV2aW91cyA9
IG1fbGFzdDsKLSAgICBtX2xhc3QgPSBtX2xhc3QtPm5leHQoKTsKLX0KLQogQ29udGVudERpc3Ry
aWJ1dG9yOjpDb250ZW50RGlzdHJpYnV0b3IoKQogICAgIDogbV9waGFzZShQcmV2ZW50ZWQpCiB7
CkBAIC0xMTUsMzAgKzU4LDIyIEBAIHZvaWQgQ29udGVudERpc3RyaWJ1dG9yOjpkaXN0cmlidXRl
KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgQ29udGVudERpc3RyCiAgICAgICAgIGlm
ICghcXVlcnkubWF0Y2hlcyhjaGlsZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBkaXN0cmlidXRpb24tPmFwcGVuZChpbnNlcnRpb25Qb2ludCwgY2hpbGQpOwotICAgICAgICBt
X25vZGVUb0luc2VydGlvblBvaW50LmFkZChkaXN0cmlidXRpb24tPmxhc3QoKSk7CisgICAgICAg
IGRpc3RyaWJ1dGlvbi0+YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgbV9ub2RlVG9JbnNlcnRpb25Q
b2ludC5hZGQoY2hpbGQsIGluc2VydGlvblBvaW50KTsKICAgICAgICAgbV9wb29sW2ldID0gMDsK
ICAgICB9CiB9CiAKIHZvaWQgQ29udGVudERpc3RyaWJ1dG9yOjpjbGVhckRpc3RyaWJ1dGlvbihD
b250ZW50RGlzdHJpYnV0aW9uKiBsaXN0KQogewotICAgIGZvciAoQ29udGVudERpc3RyaWJ1dGlv
bjo6SXRlbSogaXRlbSA9IGxpc3QtPmZpcnN0KCk7IGl0ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KCkp
Ci0gICAgICAgIG1fbm9kZVRvSW5zZXJ0aW9uUG9pbnQucmVtb3ZlKGl0ZW0pOwotCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LT5zaXplKCk7ICsraSkKKyAgICAgICAgbV9ub2RlVG9J
bnNlcnRpb25Qb2ludC5yZW1vdmUobGlzdC0+YXQoaSkuZ2V0KCkpOwogICAgIGxpc3QtPmNsZWFy
KCk7CiB9CiAKLUNvbnRlbnREaXN0cmlidXRpb246Okl0ZW0qIENvbnRlbnREaXN0cmlidXRvcjo6
ZmluZEZvcihjb25zdCBOb2RlKiBrZXkpIGNvbnN0Ci17Ci0gICAgSW52ZXJ0ZWRUYWJsZTo6aXRl
cmF0b3IgZm91bmQgPSBtX25vZGVUb0luc2VydGlvblBvaW50LmZpbmQ8Y29uc3QgTm9kZSosIFRy
YW5zbGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZvdW5kICE9IG1fbm9kZVRvSW5zZXJ0aW9uUG9p
bnQuZW5kKCkgPyAqZm91bmQgOiAwOwotfQotCiBJbnNlcnRpb25Qb2ludCogQ29udGVudERpc3Ry
aWJ1dG9yOjpmaW5kSW5zZXJ0aW9uUG9pbnRGb3IoY29uc3QgTm9kZSoga2V5KSBjb25zdAogewot
ICAgIEludmVydGVkVGFibGU6Oml0ZXJhdG9yIGZvdW5kID0gbV9ub2RlVG9JbnNlcnRpb25Qb2lu
dC5maW5kPGNvbnN0IE5vZGUqLCBUcmFuc2xhdG9yPihrZXkpOwotICAgIHJldHVybiBmb3VuZCAh
PSBtX25vZGVUb0luc2VydGlvblBvaW50LmVuZCgpID8gKCpmb3VuZCktPmluc2VydGlvblBvaW50
KCkgOiAwOworICAgIHJldHVybiBtX25vZGVUb0luc2VydGlvblBvaW50LmdldChrZXkpOwogfQog
CiB2b2lkIENvbnRlbnREaXN0cmlidXRvcjo6d2lsbERpc3RyaWJ1dGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaAppbmRleCBhZDVkOGI2NGFi
YWMyYzIyNGM3NDQ2NDUwNzBlODM2ODI5ZjBmYzgwLi5kNDQzNzcyYTdiYmU5Yzk1MDZiZjU1YmUw
N2YxYjViYjcyOWQwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9D
b250ZW50RGlzdHJpYnV0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250
ZW50RGlzdHJpYnV0b3IuaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBDb250ZW50RGlzdHJp
YnV0b3JfaAogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQzLDUxICs0Myw3IEBAIGNsYXNzIElu
c2VydGlvblBvaW50OwogY2xhc3MgTm9kZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiAKLWNsYXNzIENv
bnRlbnREaXN0cmlidXRpb24gewotcHVibGljOgotICAgIC8vIFRPRE86IFRoZSBjbGFzcyBzaG91
bGQgYmUgcmVkdWNlZCBpbnRvIHNpbXBsZSBOb2RlKiB3aGljaCBpcyBrZXB0IGluIGEgdmVjdG9y
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzNTAKLSAgICBjbGFz
cyBJdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8SXRlbT4gewotICAgIHB1YmxpYzoKLSAgICAgICAg
ZnJpZW5kIGNsYXNzIENvbnRlbnREaXN0cmlidXRpb247Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9p
bnQqIGluc2VydGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNlcnRpb25Qb2ludDsgfQot
ICAgICAgICBOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlLmdldCgpOyB9Ci0gICAg
ICAgIEl0ZW0qIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICAgICAg
SXRlbSogcHJldmlvdXMoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzLmdldCgpOyB9Ci0KLSAg
ICBwcml2YXRlOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJdGVtPiBjcmVhdGUoSW5zZXJ0
aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKSB7ICByZXR1cm4gYWRvcHRSZWYo
bmV3IEl0ZW0oaW5zZXJ0aW9uUG9pbnQsIG5vZGUpKTsgfQotCi0gICAgICAgIEl0ZW0oSW5zZXJ0
aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQotICAgICAgICAgICAgOiBtX2lu
c2VydGlvblBvaW50KGluc2VydGlvblBvaW50KQotICAgICAgICAgICAgLCBtX25vZGUobm9kZSkK
LSAgICAgICAgeyB9Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7
Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7Ci0gICAgICAgIFJlZlB0cjxJdGVtPiBtX25l
eHQ7Ci0gICAgICAgIFJlZlB0cjxJdGVtPiBtX3ByZXZpb3VzOwotICAgIH07Ci0gICAgCi0gICAg
Q29udGVudERpc3RyaWJ1dGlvbigpOwotICAgIH5Db250ZW50RGlzdHJpYnV0aW9uKCk7Ci0KLSAg
ICBJdGVtKiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7IH0KLSAgICBJdGVt
KiBsYXN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0LmdldCgpOyB9Ci0gICAgTm9kZSogZmlyc3RO
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdCA/IG1fZmlyc3QtPm5vZGUoKSA6IDA7IH0KLSAg
ICBOb2RlKiBsYXN0Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QgPyBtX2xhc3QtPm5vZGUo
KSA6IDA7IH0KLSAgICAKLSAgICBJdGVtKiBmaW5kKE5vZGUqKSBjb25zdDsKLSAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9maXJzdDsgfQotCi0gICAgdm9pZCBjbGVhcigpOwot
ICAgIHZvaWQgYXBwZW5kKEluc2VydGlvblBvaW50KiwgTm9kZSopOwotCi1wcml2YXRlOgotCi0g
ICAgUmVmUHRyPEl0ZW0+IG1fZmlyc3Q7Ci0gICAgUmVmUHRyPEl0ZW0+IG1fbGFzdDsKLX07Cit0
eXBlZGVmIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBDb250ZW50RGlzdHJpYnV0aW9uOwogCiBjbGFz
cyBDb250ZW50RGlzdHJpYnV0b3IgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRE
aXN0cmlidXRvcik7CkBAIC05Nyw3ICs1Myw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzdHJp
YnV0ZShJbnNlcnRpb25Qb2ludCosIENvbnRlbnREaXN0cmlidXRpb24qKTsKICAgICB2b2lkIGNs
ZWFyRGlzdHJpYnV0aW9uKENvbnRlbnREaXN0cmlidXRpb24qKTsKLSAgICBDb250ZW50RGlzdHJp
YnV0aW9uOjpJdGVtKiBmaW5kRm9yKGNvbnN0IE5vZGUqIGtleSkgY29uc3Q7CiAgICAgSW5zZXJ0
aW9uUG9pbnQqIGZpbmRJbnNlcnRpb25Qb2ludEZvcihjb25zdCBOb2RlKiBrZXkpIGNvbnN0Owog
CiAgICAgdm9pZCB3aWxsRGlzdHJpYnV0ZSgpOwpAQCAtMTA4LDIxICs2Myw2IEBAIHB1YmxpYzoK
ICAgICBib29sIHBvb2xJc1JlYWR5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgc3RydWN0IFRy
YW5zbGF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgTm9kZSoga2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChrZXkpOyB9
Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENvbnRlbnREaXN0cmlidXRpb246Okl0
ZW0qIGl0ZW0sIGNvbnN0IE5vZGUqIG5vZGUpIHsgcmV0dXJuIGl0ZW0tPm5vZGUoKSA9PSBub2Rl
OyB9Ci0gICAgfTsKLQotICAgIHN0cnVjdCBIYXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goQ29udGVudERpc3RyaWJ1dGlvbjo6SXRlbSoga2V5KSB7IHJldHVybiBQdHJIYXNoPGNv
bnN0IE5vZGUqPjo6aGFzaChrZXktPm5vZGUoKSk7IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoQ29udGVudERpc3RyaWJ1dGlvbjo6SXRlbSogYSwgQ29udGVudERpc3RyaWJ1dGlvbjo6SXRl
bSogYikgeyByZXR1cm4gYS0+bm9kZSgpID09IGItPm5vZGUoKTsgfQotICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwotICAgIH07
Ci0KLSAgICAvLyBVc2VkIGFzIGEgdGFibGUgZnJvbSBOb2RlIHRvIEluc2VyZXRpb25Qb2ludAot
ICAgIHR5cGVkZWYgSGFzaFNldDxDb250ZW50RGlzdHJpYnV0aW9uOjpJdGVtKiwgSGFzaD4gSW52
ZXJ0ZWRUYWJsZTsKLQogICAgIGVudW0gRGlzdHJpYnV0aW9uUGhhc2UgewogICAgICAgICBQcmV2
ZW50ZWQsCiAgICAgICAgIFN0YXJ0ZWQsCkBAIC0xMzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAg
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG1fcG9vbDsKICAgICBEaXN0cmlidXRpb25QaGFzZSBt
X3BoYXNlOwotICAgIEludmVydGVkVGFibGUgbV9ub2RlVG9JbnNlcnRpb25Qb2ludDsKKyAgICBI
YXNoTWFwPGNvbnN0IE5vZGUqLCBJbnNlcnRpb25Qb2ludCo+IG1fbm9kZVRvSW5zZXJ0aW9uUG9p
bnQ7CiB9OwogCiBpbmxpbmUgYm9vbCBDb250ZW50RGlzdHJpYnV0b3I6OmluRGlzdHJpYnV0aW9u
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlv
blBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNw
cAppbmRleCA3MjNiNDU5OTBjZjI5NWUzMjQyMDg1YjVlMzAzZWEzM2VlMWFjOTk3Li41NmMzNDRk
ZDUyMzdlZDQ4YjFmYzM0ZGQ4MjAwNjkyMmE5NDdjNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCkBAIC0zOCw3ICszOCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogSW5zZXJ0aW9uUG9pbnQ6Okluc2VydGlvblBvaW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9kaXN0cmlidXRpb24oKQogewogfQogCkBAIC0x
MzgsOCArMTM3LDggQEAgaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmNsZWFyRGlzdHJpYnV0
aW9uKEVsZW1lbnRTaGFkb3cqIHNoYWRvdykKIAogaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6
OmF0dGFjaERpc3RyaWJ1dGVkTm9kZSgpCiB7Ci0gICAgZm9yIChDb250ZW50RGlzdHJpYnV0aW9u
OjpJdGVtKiBpdGVtID0gbV9kaXN0cmlidXRpb24uZmlyc3QoKTsgaXRlbTsgaXRlbSA9IGl0ZW0t
Pm5leHQoKSkKLSAgICAgICAgaXRlbS0+bm9kZSgpLT5hdHRhY2goKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fZGlzdHJpYnV0aW9uLnNpemUoKTsgKytpKQorICAgICAgICBtX2Rpc3Ry
aWJ1dGlvbi5hdChpKS0+YXR0YWNoKCk7CiB9CiAKIGlubGluZSB2b2lkIEluc2VydGlvblBvaW50
Ojphc3NpZ25TaGFkb3dSb290KFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QpCkBAIC0xNDcsNyArMTQ2
LDcgQEAgaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmFzc2lnblNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogc2hhZG93Um9vdCkKICAgICBzaGFkb3dSb290LT5zZXRBc3NpZ25lZFRvKHRoaXMpOwog
ICAgIG1fZGlzdHJpYnV0aW9uLmNsZWFyKCk7CiAgICAgZm9yIChOb2RlKiBub2RlID0gc2hhZG93
Um9vdC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAg
ICAgICAgbV9kaXN0cmlidXRpb24uYXBwZW5kKHRoaXMsIG5vZGUpOworICAgICAgICBtX2Rpc3Ry
aWJ1dGlvbi5hcHBlbmQobm9kZSk7CiB9CiAKIGlubGluZSB2b2lkIEluc2VydGlvblBvaW50Ojpj
bGVhckFzc2lnbm1lbnQoU2hhZG93Um9vdCogc2hhZG93Um9vdCkKQEAgLTE1Niw0ICsxNTUsMjEg
QEAgaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmNsZWFyQXNzaWdubWVudChTaGFkb3dSb290
KiBzaGFkb3dSb290KQogICAgIG1fZGlzdHJpYnV0aW9uLmNsZWFyKCk7CiB9CiAKK05vZGUqIElu
c2VydGlvblBvaW50OjpuZXh0VG8oY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBzaXpl
X3QgaW5kZXggPSBtX2Rpc3RyaWJ1dGlvbi5maW5kKG5vZGUpOworICAgIGlmIChpbmRleCA9PSBu
b3RGb3VuZCB8fCBpbmRleCArIDEgPT0gbV9kaXN0cmlidXRpb24uc2l6ZSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbV9kaXN0cmlidXRpb24uYXQoaW5kZXggKyAxKS5nZXQoKTsK
K30KKworTm9kZSogSW5zZXJ0aW9uUG9pbnQ6OnByZXZpb3VzVG8oY29uc3QgTm9kZSogbm9kZSkg
Y29uc3QKK3sKKyAgICBzaXplX3QgaW5kZXggPSBtX2Rpc3RyaWJ1dGlvbi5maW5kKG5vZGUpOwor
ICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCB8fCAhaW5kZXgpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBtX2Rpc3RyaWJ1dGlvbi5hdChpbmRleCAtIDEpLmdldCgpOworfQorCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRp
b25Qb2ludC5oCmluZGV4IDdkMWRkMTI4NTI3NmJmNGNjNDI3NGZiNzAwM2Y5MTliMjk2ODllYmIu
LmFjOGM3NmNhYTExM2Q2MGFkMzU4ZjNkMzRjM2NiYjU4NDU2ODI3NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtNDIsOCArNDIsNyBAQCBjbGFz
cyBJbnNlcnRpb25Qb2ludCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SW5zZXJ0aW9uUG9pbnQoKTsKIAotICAgIGNvbnN0IENvbnRlbnREaXN0cmlidXRpb24q
IGRpc3RyaWJ1dGlvbigpIGNvbnN0IHsgcmV0dXJuICZtX2Rpc3RyaWJ1dGlvbjsgfQotICAgIGJv
b2wgaGFzRGlzdHJpYnV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kaXN0cmlidXRpb24uZmlyc3Qo
KTsgfQorICAgIGJvb2wgaGFzRGlzdHJpYnV0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fZGlzdHJp
YnV0aW9uLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNTaGFkb3dCb3VuZGFyeSgpIGNvbnN0Owog
ICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKIApAQCAtNTcsNiArNTYsMTQgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydGlvblBvaW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIFNoYWRvd1Jvb3QqIGFzc2lnbmVkRnJvbSgpIGNvbnN0OwogCisgICAg
c2l6ZV90IGluZGV4T2YoTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gbV9kaXN0cmlidXRpb24u
ZmluZChub2RlKTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kaXN0cmli
dXRpb24uc2l6ZSgpOyB9CisgICAgTm9kZSogYXQoc2l6ZV90IGluZGV4KSAgY29uc3QgeyByZXR1
cm4gbV9kaXN0cmlidXRpb24uYXQoaW5kZXgpLmdldCgpOyB9CisgICAgTm9kZSogZmlyc3QoKSBj
b25zdCB7IHJldHVybiBtX2Rpc3RyaWJ1dGlvbi5pc0VtcHR5KCkgPyAwIDogbV9kaXN0cmlidXRp
b24uZmlyc3QoKS5nZXQoKTsgfQorICAgIE5vZGUqIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2Rp
c3RyaWJ1dGlvbi5pc0VtcHR5KCkgPyAwIDogbV9kaXN0cmlidXRpb24ubGFzdCgpLmdldCgpOyB9
CisgICAgTm9kZSogbmV4dFRvKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBOb2RlKiBwcmV2aW91
c1RvKGNvbnN0IE5vZGUqKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEluc2VydGlvblBvaW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgT1ZFUlJJREU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>