<?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>6994</bug_id>
          
          <creation_ts>2006-01-31 23:43:00 -0800</creation_ts>
          <short_desc>Move name and parent from Frame to FrameTreeNode</short_desc>
          <delta_ts>2006-02-02 00:07:34 -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>Frames</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30920</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-31 23:43:00 -0800</bug_when>
    <thetext>Move name and parent from Frame to FrameTreeNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30979</commentid>
    <comment_count>1</comment_count>
      <attachid>6192</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-01 09:40:01 -0800</bug_when>
    <thetext>Created attachment 6192
move more to frame tree node</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30996</commentid>
    <comment_count>2</comment_count>
      <attachid>6192</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-01 13:42:01 -0800</bug_when>
    <thetext>Comment on attachment 6192
move more to frame tree node

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6192</attachid>
            <date>2006-02-01 09:40:01 -0800</date>
            <delta_ts>2006-02-01 13:42:01 -0800</delta_ts>
            <desc>move more to frame tree node</desc>
            <filename>more-to-frame-tree-node.patch.txt</filename>
            <type>text/plain</type>
            <size>26017</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Eb2N1bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3ht
bC9Eb2N1bWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjUxMikKKysrIGtodG1sL3htbC9Eb2N1bWVu
dEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU3LDcgKzIzNTcsNyBAQCBFbGVtZW50SW1w
bCAqRG9jdW1lbnRJbXBsOjpvd25lckVsZW1lbnQoCiAgICAgRnJhbWUgKmNoaWxkUGFydCA9IGNo
aWxkVmlldy0+ZnJhbWUoKTsKICAgICBpZiAoIWNoaWxkUGFydCkKICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgRnJhbWUgKnBhcmVudCA9IGNoaWxkUGFydC0+cGFyZW50RnJhbWUoKTsKKyAgICBGcmFt
ZSAqcGFyZW50ID0gY2hpbGRQYXJ0LT50cmVlTm9kZSgpLT5wYXJlbnQoKTsKICAgICBpZiAoIXBh
cmVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQ2hpbGRGcmFtZSAqY2hpbGRGcmFtZSA9IHBh
cmVudC0+Y2hpbGRGcmFtZShjaGlsZFBhcnQpOwpAQCAtMjkyNSw3ICsyOTI1LDcgQEAgRG9jdW1l
bnRJbXBsICpEb2N1bWVudEltcGw6OnBhcmVudERvY3VtZQogICAgIEZyYW1lICpjaGlsZFBhcnQg
PSBmcmFtZSgpOwogICAgIGlmICghY2hpbGRQYXJ0KQogICAgICAgICByZXR1cm4gMDsKLSAgICBG
cmFtZSAqcGFyZW50ID0gY2hpbGRQYXJ0LT5wYXJlbnRGcmFtZSgpOworICAgIEZyYW1lICpwYXJl
bnQgPSBjaGlsZFBhcnQtPnRyZWVOb2RlKCktPnBhcmVudCgpOwogICAgIGlmICghcGFyZW50KQog
ICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcGFyZW50LT5kb2N1bWVudCgpOwpJbmRleDog
a2h0bWwvaHRtbC9odG1sX2hlYWRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0
bWxfaGVhZGltcGwuY3BwCShyZXZpc2lvbiAxMjUxMikKKysrIGtodG1sL2h0bWwvaHRtbF9oZWFk
aW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJkb21f
bm9kZS5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVRyZWVOb2RlLmgi
CiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCiAKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0
LmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnRJbXBsOjpwcm9jZXNz
KCkKICAgICBGcmFtZSAqZnJhbWUgPSBnZXREb2N1bWVudCgpLT5mcmFtZSgpOwogCiAgICAgLy8g
SUUgZXh0ZW5zaW9uOiBsb2NhdGlvbiBvZiBzbWFsbCBpY29uIGZvciBsb2NhdGlvbmJhciAvIGJv
b2ttYXJrcwotICAgIGlmIChmcmFtZSAmJiBtX2lzSWNvbiAmJiAhbV91cmwuaXNFbXB0eSgpICYm
ICFmcmFtZS0+cGFyZW50RnJhbWUoKSkgeworICAgIGlmIChmcmFtZSAmJiBtX2lzSWNvbiAmJiAh
bV91cmwuaXNFbXB0eSgpICYmICFmcmFtZS0+dHJlZU5vZGUoKS0+cGFyZW50KCkpIHsKICAgICAg
ICAgaWYgKCF0eXBlLmlzRW1wdHkoKSkgLy8gTW96aWxsYSBleHRlbnNpb24gdG8gSUUgZXh0ZW5z
aW9uOiBpY29uIHNwZWNpZmllZCB3aXRoIHR5cGUKICAgICAgICAgICAgIGZyYW1lLT5icm93c2Vy
RXh0ZW5zaW9uKCktPnNldFR5cGVkSWNvblVSTChLVVJMKG1fdXJsLnFzdHJpbmcoKSksIHR5cGUp
OwogICAgICAgICBlbHNlIApJbmRleDoga2h0bWwvaHRtbC9odG1sX2Jhc2VpbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBraHRtbC9odG1sL2h0bWxfYmFzZWltcGwuY3BwCShyZXZpc2lvbiAxMjUxMikK
KysrIGtodG1sL2h0bWwvaHRtbF9iYXNlaW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKIAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVUcmVlTm9kZS5oIgogCiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9m
cmFtZXMuaCIKICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgpAQCAtMzExLDcgKzMx
Miw3IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudEltcGw6OmlzVVJMQWxsb3dlZCgKICAgICAvLyBX
ZSBhbGxvdyBvbmUgbGV2ZWwgb2Ygc2VsZi1yZWZlcmVuY2UgYmVjYXVzZSBzb21lIHNpdGVzIGRl
cGVuZCBvbiB0aGF0LgogICAgIC8vIEJ1dCB3ZSBkb24ndCBhbGxvdyBtb3JlIHRoYW4gb25lLgog
ICAgIGJvb2wgZm91bmRTZWxmUmVmZXJlbmNlID0gZmFsc2U7Ci0gICAgZm9yIChGcmFtZSAqZnJh
bWUgPSB3LT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+cGFyZW50RnJhbWUoKSkgewor
ICAgIGZvciAoRnJhbWUgKmZyYW1lID0gdy0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWVOb2RlKCktPnBhcmVudCgpKSB7CiAgICAgICAgIEtVUkwgZnJhbWVVUkwgPSBmcmFtZS0+
dXJsKCk7CiAgICAgICAgIGZyYW1lVVJMLnNldFJlZihRU3RyaW5nOjpudWxsKTsKICAgICAgICAg
aWYgKGZyYW1lVVJMID09IG5ld1VSTCkgewpJbmRleDoga2h0bWwvZWNtYS9ranNfd2luZG93LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxMjUx
MikKKysrIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYg
KzU4LDcgQEAKICNpbmNsdWRlIDxranMvY29sbGVjdG9yLmg+CiAjaW5jbHVkZSA8a2xvY2FsZS5o
PgogI2luY2x1ZGUgPHF0aW1lci5oPgorI2luY2x1ZGUgIkZyYW1lVHJlZU5vZGUuaCIKIAogI2lm
IEtIVE1MX1hTTFQKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCkBAIC02ODksNyArNjkwLDcg
QEAgSlNWYWx1ZSAqV2luZG93OjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdAogICAgIGNhc2UgX0xv
Y2F0aW9uOgogICAgICAgcmV0dXJuIGxvY2F0aW9uKCk7CiAgICAgY2FzZSBOYW1lOgotICAgICAg
cmV0dXJuIGpzU3RyaW5nKG1fZnJhbWUtPm5hbWUoKSk7CisgICAgICByZXR1cm4ganNTdHJpbmco
bV9mcmFtZS0+dHJlZU5vZGUoKS0+bmFtZSgpKTsKICAgICBjYXNlIF9OYXZpZ2F0b3I6CiAgICAg
Y2FzZSBDbGllbnRJbmZvcm1hdGlvbjogewogICAgICAgLy8gU3RvcmUgdGhlIG5hdmlnYXRvciBp
biB0aGUgb2JqZWN0IHNvIHdlIGdldCB0aGUgc2FtZSBvbmUgZWFjaCB0aW1lLgpAQCAtNzMxLDcg
KzczMiw3IEBAIEpTVmFsdWUgKldpbmRvdzo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3QKICAgICAg
IHVwZGF0ZUxheW91dCgpOwogICAgICAgcmV0dXJuIGpzTnVtYmVyKG1fZnJhbWUtPnZpZXcoKS0+
Y29udGVudHNZKCkpOwogICAgIGNhc2UgUGFyZW50OgotICAgICAgcmV0dXJuIHJldHJpZXZlKG1f
ZnJhbWUtPnBhcmVudEZyYW1lKCkgPyBtX2ZyYW1lLT5wYXJlbnRGcmFtZSgpIDogKEZyYW1lKilt
X2ZyYW1lKTsKKyAgICAgIHJldHVybiByZXRyaWV2ZShtX2ZyYW1lLT50cmVlTm9kZSgpLT5wYXJl
bnQoKSA/IG1fZnJhbWUtPnRyZWVOb2RlKCktPnBhcmVudCgpIDogKEZyYW1lKiltX2ZyYW1lKTsK
ICAgICBjYXNlIFBlcnNvbmFsYmFyOgogICAgICAgcmV0dXJuIHBlcnNvbmFsYmFyKGV4ZWMpOwog
ICAgIGNhc2UgU2NyZWVuTGVmdDoKQEAgLTc2OSw4ICs3NzAsOCBAQCBKU1ZhbHVlICpXaW5kb3c6
OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0CiAgICAgICByZXR1cm4gcmV0cmlldmUobV9mcmFtZSk7
CiAgICAgY2FzZSBUb3A6IHsKICAgICAgIEZyYW1lICpwID0gbV9mcmFtZTsKLSAgICAgIHdoaWxl
IChwLT5wYXJlbnRGcmFtZSgpKQotICAgICAgICBwID0gcC0+cGFyZW50RnJhbWUoKTsKKyAgICAg
IHdoaWxlIChwLT50cmVlTm9kZSgpLT5wYXJlbnQoKSkKKyAgICAgICAgcCA9IHAtPnRyZWVOb2Rl
KCktPnBhcmVudCgpOwogICAgICAgcmV0dXJuIHJldHJpZXZlKHApOwogICAgIH0KICAgICBjYXNl
IF9TY3JlZW46CkBAIC0xMTYwLDcgKzExNjEsNyBAQCB2b2lkIFdpbmRvdzo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgCiAgICAgICByZXR1cm47CiAgICAgY2FzZSBOYW1lOgogICAgICAgaWYg
KGlzU2FmZVNjcmlwdChleGVjKSkKLSAgICAgICAgbV9mcmFtZS0+c2V0TmFtZSggdmFsdWUtPnRv
U3RyaW5nKGV4ZWMpLnFzdHJpbmcoKSApOworICAgICAgICBtX2ZyYW1lLT50cmVlTm9kZSgpLT5z
ZXROYW1lKHZhbHVlLT50b1N0cmluZyhleGVjKS5xc3RyaW5nKCkpOwogICAgICAgcmV0dXJuOwog
ICAgIGRlZmF1bHQ6CiAgICAgICBicmVhazsKQEAgLTEyMjEsOSArMTIyMiw5IEBAIGJvb2wgV2lu
ZG93Ojppc1NhZmVTY3JpcHQoY29uc3QgU2NyaXB0SW4KICAgICAvLyBvciBvcGVuZXIsIGFsbG93
IGFjY2VzcyBmcm9tIGFueSBkb2N1bWVudCBpbiB0aGUgc2FtZSBkb21haW4gYXMKICAgICAvLyB0
aGUgcGFyZW50IG9yIG9wZW5lci4KICAgICBpZiAoc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh0
YXJnZXRQYXJ0LT51cmwoKSkpIHsKLSAgICAgICAgRnJhbWUgKmFuY2VzdG9yUGFydCA9IHRhcmdl
dFBhcnQtPm9wZW5lcigpID8gdGFyZ2V0UGFydC0+b3BlbmVyKCkgOiB0YXJnZXRQYXJ0LT5wYXJl
bnRGcmFtZSgpOworICAgICAgICBGcmFtZSAqYW5jZXN0b3JQYXJ0ID0gdGFyZ2V0UGFydC0+b3Bl
bmVyKCkgPyB0YXJnZXRQYXJ0LT5vcGVuZXIoKSA6IHRhcmdldFBhcnQtPnRyZWVOb2RlKCktPnBh
cmVudCgpOwogICAgICAgICB3aGlsZSAoYW5jZXN0b3JQYXJ0ICYmIHNob3VsZExvYWRBc0VtcHR5
RG9jdW1lbnQoYW5jZXN0b3JQYXJ0LT51cmwoKSkpIHsKLSAgICAgICAgICAgIGFuY2VzdG9yUGFy
dCA9IGFuY2VzdG9yUGFydC0+cGFyZW50RnJhbWUoKTsKKyAgICAgICAgICAgIGFuY2VzdG9yUGFy
dCA9IGFuY2VzdG9yUGFydC0+dHJlZU5vZGUoKS0+cGFyZW50KCk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoYW5jZXN0b3JQYXJ0KQpAQCAtMTI4Niw5ICsxMjg3LDkgQEAgYm9vbCBXaW5kb3c6
OmlzU2FmZVNjcmlwdChFeGVjU3RhdGUgKmV4ZQogICAvLyBvciBvcGVuZXIsIGFsbG93IGFjY2Vz
cyBmcm9tIGFueSBkb2N1bWVudCBpbiB0aGUgc2FtZSBkb21haW4gYXMKICAgLy8gdGhlIHBhcmVu
dCBvciBvcGVuZXIuCiAgIGlmIChzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KG1fZnJhbWUtPnVy
bCgpKSkgewotICAgIEZyYW1lICphbmNlc3RvclBhcnQgPSBtX2ZyYW1lLT5vcGVuZXIoKSA/IG1f
ZnJhbWUtPm9wZW5lcigpIDogbV9mcmFtZS0+cGFyZW50RnJhbWUoKTsKKyAgICBGcmFtZSAqYW5j
ZXN0b3JQYXJ0ID0gbV9mcmFtZS0+b3BlbmVyKCkgPyBtX2ZyYW1lLT5vcGVuZXIoKSA6IG1fZnJh
bWUtPnRyZWVOb2RlKCktPnBhcmVudCgpOwogICAgIHdoaWxlIChhbmNlc3RvclBhcnQgJiYgc2hv
dWxkTG9hZEFzRW1wdHlEb2N1bWVudChhbmNlc3RvclBhcnQtPnVybCgpKSkgewotICAgICAgYW5j
ZXN0b3JQYXJ0ID0gYW5jZXN0b3JQYXJ0LT5wYXJlbnRGcmFtZSgpOworICAgICAgYW5jZXN0b3JQ
YXJ0ID0gYW5jZXN0b3JQYXJ0LT50cmVlTm9kZSgpLT5wYXJlbnQoKTsKICAgICB9CiAgICAgCiAg
ICAgaWYgKGFuY2VzdG9yUGFydCkKQEAgLTE1ODUsOCArMTU4Niw4IEBAIEpTVmFsdWUgKldpbmRv
d0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWMKICAgICAgIFVSTEFyZ3MgdWFyZ3M7CiAgICAgICB1
YXJncy5mcmFtZU5hbWUgPSBmcmFtZU5hbWU7CiAgICAgICBpZiAodWFyZ3MuZnJhbWVOYW1lID09
ICJfdG9wIikgewotICAgICAgICAgIHdoaWxlIChmcmFtZS0+cGFyZW50RnJhbWUoKSkKLSAgICAg
ICAgICAgICAgZnJhbWUgPSBmcmFtZS0+cGFyZW50RnJhbWUoKTsKKyAgICAgICAgICB3aGlsZSAo
ZnJhbWUtPnRyZWVOb2RlKCktPnBhcmVudCgpKQorICAgICAgICAgICAgICBmcmFtZSA9IGZyYW1l
LT50cmVlTm9kZSgpLT5wYXJlbnQoKTsKICAgICAgICAgICAKICAgICAgICAgICBjb25zdCBXaW5k
b3cqIHdpbmRvdyA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJhbWUpOwogICAgICAgICAgIGlm
ICghdXJsLnVybCgpLnN0YXJ0c1dpdGgoImphdmFzY3JpcHQ6IiwgZmFsc2UpIHx8ICh3aW5kb3cg
JiYgd2luZG93LT5pc1NhZmVTY3JpcHQoZXhlYykpKSB7CkBAIC0xNTk2LDggKzE1OTcsOCBAQCBK
U1ZhbHVlICpXaW5kb3dGdW5jOjpjYWxsQXNGdW5jdGlvbihFeGVjCiAgICAgICAgICAgcmV0dXJu
IFdpbmRvdzo6cmV0cmlldmUoZnJhbWUpOwogICAgICAgfQogICAgICAgaWYgKHVhcmdzLmZyYW1l
TmFtZSA9PSAiX3BhcmVudCIpIHsKLSAgICAgICAgICBpZiAoZnJhbWUtPnBhcmVudEZyYW1lKCkp
Ci0gICAgICAgICAgICAgIGZyYW1lID0gZnJhbWUtPnBhcmVudEZyYW1lKCk7CisgICAgICAgICAg
aWYgKGZyYW1lLT50cmVlTm9kZSgpLT5wYXJlbnQoKSkKKyAgICAgICAgICAgICAgZnJhbWUgPSBm
cmFtZS0+dHJlZU5vZGUoKS0+cGFyZW50KCk7CiAgICAgICAgICAgCiAgICAgICAgICAgY29uc3Qg
V2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KGZyYW1lKTsKICAgICAgICAg
ICBpZiAoIXVybC51cmwoKS5zdGFydHNXaXRoKCJqYXZhc2NyaXB0OiIsIGZhbHNlKSB8fCAod2lu
ZG93ICYmIHdpbmRvdy0+aXNTYWZlU2NyaXB0KGV4ZWMpKSkgewpJbmRleDogYmluZGluZ3Mvb2Jq
Yy9ET01JbnRlcm5hbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9vYmpjL0RPTUludGVybmFs
Lm1tCShyZXZpc2lvbiAxMjUxMikKKysrIGJpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsOCBAQCBET01TdHJpbmdJbXBsOjpvcGVyYXRvciBO
U1N0cmluZyAqKCkgY29uCiAKIERPTVN0cmluZzo6RE9NU3RyaW5nKE5TU3RyaW5nICpzdHIpCiB7
Ci0gICAgQVNTRVJUKHN0cik7CisgICAgaWYgKCFzdHIpCisgICAgICAgIHJldHVybjsKIAogICAg
IENGSW5kZXggc2l6ZSA9IENGU3RyaW5nR2V0TGVuZ3RoKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZTdHJp
bmdSZWY+KHN0cikpOwogICAgIGlmIChzaXplID09IDApCkluZGV4OiByZW5kZXJpbmcvcmVuZGVy
X2ZyYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3BwCShy
ZXZpc2lvbiAxMjUxMikKKysrIHJlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVRyZWVOb2RlLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiaHRtbC9odG1sX2Jhc2VpbXBsLmgiCiAjaW5jbHVkZSAiaHRt
bC9odG1sX29iamVjdGltcGwuaCIKQEAgLTc0MCw3ICs3NDEsNyBAQCBzdGF0aWMgYm9vbCBpc1VS
TEFsbG93ZWQoRE9NOjpEb2N1bWVudEltCiAgICAgLy8gV2UgYWxsb3cgb25lIGxldmVsIG9mIHNl
bGYtcmVmZXJlbmNlIGJlY2F1c2Ugc29tZSBzaXRlcyBkZXBlbmQgb24gdGhhdC4KICAgICAvLyBC
dXQgd2UgZG9uJ3QgYWxsb3cgbW9yZSB0aGFuIG9uZS4KICAgICBib29sIGZvdW5kU2VsZlJlZmVy
ZW5jZSA9IGZhbHNlOwotICAgIGZvciAoRnJhbWUgKmZyYW1lID0gZG9jLT5mcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+cGFyZW50RnJhbWUoKSkgeworICAgIGZvciAoRnJhbWUgKmZyYW1l
ID0gZG9jLT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZU5vZGUoKS0+cGFyZW50
KCkpIHsKICAgICAgICAgS1VSTCBmcmFtZVVSTCA9IGZyYW1lLT51cmwoKTsKICAgICAgICAgZnJh
bWVVUkwuc2V0UmVmKFFTdHJpbmc6Om51bGwpOwogICAgICAgICBpZiAoZnJhbWVVUkwgPT0gbmV3
VVJMKSB7CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lv
biAxMjUxMykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDY2IEBACiAy
MDA2LTAxLTMxICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBNb3ZlIG5hbWUgYW5kIHBh
cmVudCBmcm9tIEZyYW1lIHRvIEZyYW1lVHJlZU5vZGUKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk0CisKKyAgICAgICAgKiBicmlkZ2Uv
bWFjL0Jyb3dzZXJFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpCcm93c2VyRXh0
ZW5zaW9uTWFjOjpjcmVhdGVOZXdXaW5kb3cpOgorICAgICAgICAqIGJyaWRnZS9tYWMvTWFjRnJh
bWUuaDoKKyAgICAgICAgKiBicmlkZ2UvbWFjL01hY0ZyYW1lLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWFjRnJhbWU6OmdlbmVyYXRlRnJhbWVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0Zy
YW1lOjpzdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpmcmFtZURldGFjaGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0ZyYW1lOjpuZXh0S2V5Vmlld0luRnJhbWVIaWVyYXJj
aHkpOgorICAgICAgICAoV2ViQ29yZTo6TWFjRnJhbWU6OmNyZWF0ZUVtcHR5RG9jdW1lbnQpOgor
ICAgICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tOgorICAgICAgICAoLVtX
ZWJDb3JlRnJhbWVCcmlkZ2Ugc2V0UGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlRnJhbWVC
cmlkZ2UgcGFyZW50XSk6CisgICAgICAgICgtW1dlYkNvcmVGcmFtZUJyaWRnZSBzZXROYW1lOl0p
OgorICAgICAgICAoLVtXZWJDb3JlRnJhbWVCcmlkZ2UgbmFtZV0pOgorICAgICAgICAqIGtodG1s
L2VjbWEva2pzX3dpbmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvdzo6Z2V0VmFsdWVQcm9w
ZXJ0eSk6CisgICAgICAgIChLSlM6OldpbmRvdzo6cHV0KToKKyAgICAgICAgKEtKUzo6V2luZG93
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAoS0pTOjpXaW5kb3dGdW5jOjpjYWxsQXNGdW5jdGlv
bik6CisgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Jhc2VpbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRJbXBsOjppc1VSTEFsbG93ZWQpOgorICAgICAgICAqIGto
dG1sL2h0bWwvaHRtbF9oZWFkaW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0Vs
ZW1lbnRJbXBsOjpwcm9jZXNzKToKKyAgICAgICAgKiBraHRtbC94bWwvRG9jdW1lbnRJbXBsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50SW1wbDo6b3duZXJFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50SW1wbDo6cGFyZW50RG9jdW1lbnQpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmNoZWNrQ29tcGxldGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpyZWRpcmVjdGlvblRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnJlcXVlc3RGcmFtZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWU6OnNsb3RDaGlsZENvbXBsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5j
cmVtZW50RnJhbWVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGVjcmVtZW50RnJh
bWVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dG9wTGV2ZWxGcmFtZUNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVs
bHlTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aGFuZGxlRmFsbGJhY2tDb250
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjp1c2VyR2VzdHVyZUhpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OmNhbkNhY2hlUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6dXBkYXRlUG9saWN5QmFzZVVSTCk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVByaXZhdGU6
OkZyYW1lUHJpdmF0ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVRyZWVOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVHJlZU5vZGU6OnNldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVl
Tm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlTm9kZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlTm9kZTo6RnJhbWVUcmVlTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVRyZWVOb2RlOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJl
ZU5vZGU6OnBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWVOb2RlOjpzZXRQYXJl
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzVVJMQWxsb3dlZCk6CisKKzIwMDYtMDEtMzEgIE1hY2llaiBTdGFjaG93aWFrICA8
bWpzQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KIAogICAgICAgICAt
IGZpeGVkIFJFR1JFU1NJT046IGFzc2VydGlvbiBmYWlsdXJlIG1vdXNpbmcgb3ZlciBESFRNTCBt
ZW51cyBhdCB3d3cud29ybGRvZndhcmNyYWZ0LmNvbQpJbmRleDogYnJpZGdlL21hYy9NYWNGcmFt
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvTWFjRnJhbWUuaAkocmV2aXNpb24gMTI1MTIp
CisrKyBicmlkZ2UvbWFjL01hY0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwOCw3ICszMDgs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZWRPbmxvYWRFdmVudHMoKTsKIAog
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgUVN0cmluZyBnZW5lcmF0ZUZyYW1lTmFtZSgpOworICAg
IHZpcnR1YWwgRE9NU3RyaW5nIGdlbmVyYXRlRnJhbWVOYW1lKCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRSZWRpcmVjdGlvblRpbWVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWRpcmVj
dGlvblRpbWVyKCk7CkluZGV4OiBicmlkZ2UvbWFjL01hY0ZyYW1lLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGJyaWRnZS9tYWMvTWFjRnJhbWUubW0JKHJldmlzaW9uIDEyNTEyKQorKysgYnJpZGdlL21hYy9N
YWNGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTgwLDEwICsxODAsMTAgQEAgdm9pZCBNYWNG
cmFtZTo6ZnJlZUNsaXBib2FyZCgpCiAgICAgfQogfQogCi1RU3RyaW5nIE1hY0ZyYW1lOjpnZW5l
cmF0ZUZyYW1lTmFtZSgpCitET01TdHJpbmcgTWFjRnJhbWU6OmdlbmVyYXRlRnJhbWVOYW1lKCkK
IHsKICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKLSAgICByZXR1cm4gUVN0cmluZzo6ZnJvbU5T
U3RyaW5nKFtfYnJpZGdlIGdlbmVyYXRlRnJhbWVOYW1lXSk7CisgICAgcmV0dXJuIFtfYnJpZGdl
IGdlbmVyYXRlRnJhbWVOYW1lXTsKICAgICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIFFTdHJpbmcoKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE1hY0ZyYW1lOjpzdWJt
aXRGb3JtKGNvbnN0IEtVUkwgJnVyCiAgICAgV2ViQ29yZUZyYW1lQnJpZGdlICp0YXJnZXQgPSBh
cmdzLmZyYW1lTmFtZS5pc0VtcHR5KCkgPyBfYnJpZGdlIDogW19icmlkZ2UgZmluZEZyYW1lTmFt
ZWQ6YXJncy5mcmFtZU5hbWUuZ2V0TlNTdHJpbmcoKV07CiAgICAgRnJhbWUgKnRhcmdldFBhcnQg
PSBbdGFyZ2V0IHBhcnRdOwogICAgIGJvb2wgd2lsbFJlcGxhY2VUaGlzRnJhbWUgPSBmYWxzZTsK
LSAgICBmb3IgKEZyYW1lICpwID0gdGhpczsgcDsgcCA9IHAtPnBhcmVudEZyYW1lKCkpIHsKKyAg
ICBmb3IgKEZyYW1lICpwID0gdGhpczsgcDsgcCA9IHAtPnRyZWVOb2RlKCktPnBhcmVudCgpKSB7
CiAgICAgICAgIGlmIChwID09IHRhcmdldFBhcnQpIHsKICAgICAgICAgICAgIHdpbGxSZXBsYWNl
VGhpc0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY4LDcgKzU2OCw3IEBA
IHZvaWQgRnJhbWU6OmZyYW1lRGV0YWNoZWQoKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBhIHZpcnR1YWwgZnVuY3Rpb24sIHdpdGggdGhlIHNlY29uZCBwYXJ0IGluIE1hY0ZyYW1lLCBh
bmQgdGhlIGZpcnN0CiAgICAgLy8gcGFydCBpbiBGcmFtZSwgc28gaXQgd29ya3MgZm9yIEtIVE1M
IHRvby4KIAotICAgIEZyYW1lICpwYXJlbnQgPSBwYXJlbnRGcmFtZSgpOworICAgIEZyYW1lICpw
YXJlbnQgPSB0cmVlTm9kZSgpLT5wYXJlbnQoKTsKICAgICBpZiAocGFyZW50KSB7CiAgICAgICAg
IEZyYW1lTGlzdCYgcGFyZW50RnJhbWVzID0gcGFyZW50LT5kLT5tX2ZyYW1lczsKICAgICAgICAg
RnJhbWVJdCBlbmQgPSBwYXJlbnRGcmFtZXMuZW5kKCk7CkBAIC05OTksNyArOTk5LDcgQEAgTlNW
aWV3ICpNYWNGcmFtZTo6bmV4dEtleVZpZXdJbkZyYW1lSGllcgogewogICAgIE5TVmlldyAqbmV4
dCA9IG5leHRLZXlWaWV3SW5GcmFtZShub2RlLCBkaXJlY3Rpb24pOwogICAgIGlmICghbmV4dCkg
ewotICAgICAgICBNYWNGcmFtZSAqcGFyZW50ID0gTWFjKHBhcmVudEZyYW1lKCkpOworICAgICAg
ICBNYWNGcmFtZSAqcGFyZW50ID0gTWFjKHRyZWVOb2RlKCktPnBhcmVudCgpKTsKICAgICAgICAg
aWYgKHBhcmVudCkgewogICAgICAgICAgICAgbmV4dCA9IHBhcmVudC0+bmV4dEtleVZpZXdJbkZy
YW1lSGllcmFyY2h5KHBhcmVudC0+Y2hpbGRGcmFtZSh0aGlzKS0+bV9yZW5kZXJlci0+ZWxlbWVu
dCgpLCBkaXJlY3Rpb24pOwogICAgICAgICB9CkBAIC0xNDI4LDkgKzE0MjgsOSBAQCB2b2lkIE1h
Y0ZyYW1lOjpjcmVhdGVFbXB0eURvY3VtZW50KCkKICAgICAgICAgW19icmlkZ2UgbG9hZEVtcHR5
RG9jdW1lbnRTeW5jaHJvbm91c2x5XTsKICAgICAgICAgS1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsK
IAotICAgICAgICBpZiAocGFyZW50RnJhbWUoKSAmJiAocGFyZW50RnJhbWUoKS0+Y2hpbGRGcmFt
ZSh0aGlzKS0+bV90eXBlID09IENoaWxkRnJhbWU6OklGcmFtZSB8fAotICAgICAgICAgICAgICAg
IHBhcmVudEZyYW1lKCktPmNoaWxkRnJhbWUodGhpcyktPm1fdHlwZSA9PSBDaGlsZEZyYW1lOjpP
YmplY3QpKSB7Ci0gICAgICAgICAgICBkLT5tX2RvYy0+c2V0QmFzZVVSTChwYXJlbnRGcmFtZSgp
LT5kLT5tX2RvYy0+YmFzZVVSTCgpKTsKKyAgICAgICAgaWYgKHRyZWVOb2RlKCktPnBhcmVudCgp
ICYmICh0cmVlTm9kZSgpLT5wYXJlbnQoKS0+Y2hpbGRGcmFtZSh0aGlzKS0+bV90eXBlID09IENo
aWxkRnJhbWU6OklGcmFtZSB8fAorICAgICAgICAgICAgICAgIHRyZWVOb2RlKCktPnBhcmVudCgp
LT5jaGlsZEZyYW1lKHRoaXMpLT5tX3R5cGUgPT0gQ2hpbGRGcmFtZTo6T2JqZWN0KSkgeworICAg
ICAgICAgICAgZC0+bV9kb2MtPnNldEJhc2VVUkwodHJlZU5vZGUoKS0+cGFyZW50KCktPmQtPm1f
ZG9jLT5iYXNlVVJMKCkpOwogICAgICAgICB9CiAgICAgfQogfQpJbmRleDogYnJpZGdlL21hYy9X
ZWJDb3JlRnJhbWVCcmlkZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnJpZGdlL21hYy9XZWJDb3JlRnJh
bWVCcmlkZ2UubW0JKHJldmlzaW9uIDEyNTEyKQorKysgYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVC
cmlkZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTU1NSwxMiArNTU1LDEzIEBAIHN0YXRpYyBpbmxp
bmUgV2ViQ29yZUZyYW1lQnJpZGdlICpicmlkZ2UKIAogLSAodm9pZClzZXRQYXJlbnQ6KFdlYkNv
cmVGcmFtZUJyaWRnZSAqKXBhcmVudAogewotICAgIG1fZnJhbWUtPnNldFBhcmVudChbcGFyZW50
IHBhcnRdKTsKKyAgICAvLyBGSVhNRTogZnJhbWVzIHNob3VsZCBiZSBjcmVhdGVkIHdpdGggdGhl
IHJpZ2h0IHBhcmVudCBpbiB0aGUgZmlyc3QgcGxhY2UKKyAgICBtX2ZyYW1lLT50cmVlTm9kZSgp
LT5zZXRQYXJlbnQoW3BhcmVudCBwYXJ0XSk7CiB9CiAKIC0gKFdlYkNvcmVGcmFtZUJyaWRnZSAq
KXBhcmVudAogewotICAgIE1hY0ZyYW1lICpwYXJlbnRGcmFtZSA9IE1hYyhtX2ZyYW1lLT5wYXJl
bnRGcmFtZSgpKTsKKyAgICBNYWNGcmFtZSAqcGFyZW50RnJhbWUgPSBNYWMobV9mcmFtZS0+dHJl
ZU5vZGUoKS0+cGFyZW50KCkpOwogICAgIGlmICghcGFyZW50RnJhbWUpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgcmV0dXJuIHBhcmVudEZyYW1lLT5icmlkZ2UoKTsKQEAgLTE1NTIsMTIgKzE1
NTMsMTIgQEAgc3RhdGljIEhUTUxGb3JtRWxlbWVudEltcGwgKmZvcm1FbGVtZW50RgogCiAtICh2
b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmFtZQogewotICAgIG1fZnJhbWUtPnNldE5hbWUoUVN0
cmluZzo6ZnJvbU5TU3RyaW5nKG5hbWUpKTsKKyAgICBtX2ZyYW1lLT50cmVlTm9kZSgpLT5zZXRO
YW1lKG5hbWUpOwogfQogCiAtIChOU1N0cmluZyAqKW5hbWUKIHsKLSAgICByZXR1cm4gbV9mcmFt
ZS0+bmFtZSgpLmdldE5TU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fZnJhbWUtPnRyZWVOb2RlKCkt
Pm5hbWUoKTsKIH0KIAogLSAodm9pZClfYWRkRnJhbWVQYXRoVG9TdHJpbmc6KE5TTXV0YWJsZVN0
cmluZyAqKXBhdGgKSW5kZXg6IGJyaWRnZS9tYWMvQnJvd3NlckV4dGVuc2lvbk1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBicmlkZ2UvbWFjL0Jyb3dzZXJFeHRlbnNpb25NYWMubW0JKHJldmlzaW9uIDEy
NTEyKQorKysgYnJpZGdlL21hYy9Ccm93c2VyRXh0ZW5zaW9uTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJNYWNGcmFtZS5oIgogI2ltcG9ydCAiV2ViQ29y
ZUZyYW1lQnJpZGdlLmgiCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CisjaW1wb3J0
ICJGcmFtZVRyZWVOb2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTE4LDcgKzEx
OSw3IEBAIHZvaWQgQnJvd3NlckV4dGVuc2lvbk1hYzo6Y3JlYXRlTmV3V2luZG8KICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIGlmIChbYnJpZGdlIHBhcnRdKQotCVticmlkZ2UgcGFydF0tPnNl
dE5hbWUodXJsQXJncy5mcmFtZU5hbWUpOworCVticmlkZ2UgcGFydF0tPnRyZWVOb2RlKCktPnNl
dE5hbWUodXJsQXJncy5mcmFtZU5hbWUpOwogICAgIAogICAgIGlmIChwYXJ0UmVzdWx0KQogCSpw
YXJ0UmVzdWx0ID0gW2JyaWRnZSBwYXJ0XTsKSW5kZXg6IHBhZ2UvRnJhbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBwYWdlL0ZyYW1lLmgJKHJldmlzaW9uIDEyNTEyKQorKysgcGFnZS9GcmFtZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MTMsMTMgKzYxMyw2IEBAIHB1YmxpYzoKICAgY29uc3QgS0hUTUxTZXR0
aW5ncyAqc2V0dGluZ3MoKSBjb25zdDsKIAogICAvKioKLSAgICogUmV0dXJucyBhIHBvaW50ZXIg
dG8gdGhlIHBhcmVudCBGcmFtZSwgaWYgYW55LgotICAgKgotICAgKiAgUmV0dXJucyAwTCBvdGhl
cndpc2UuCi0gICAqLwotICBGcmFtZSAqcGFyZW50RnJhbWUoKSBjb25zdDsKLQotICAvKioKICAg
ICogUmV0dXJucyBhIGxpc3Qgb2YgbmFtZXMgb2YgYWxsIGZyYW1lIChpbmNsdWRpbmcgaWZyYW1l
KSBvYmplY3RzIG9mCiAgICAqIHRoZSBjdXJyZW50IGRvY3VtZW50LiBOb3RlIHRoYXQgdGhpcyBt
ZXRob2QgaXMgbm90IHdvcmtpbmcgcmVjdXJzaXZlbHkKICAgICogZm9yIHN1Yi1mcmFtZXMuCkBA
IC04MzgsNyArODMxLDcgQEAgcHVibGljOgogICB2aXJ0dWFsIGJvb2wgbGFzdEV2ZW50SXNNb3Vz
ZVVwKCkgY29uc3QgPSAwOwogICB2aXJ0dWFsIFFTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBj
b25zdCA9IDA7CiBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgUVN0cmluZyBnZW5lcmF0ZUZyYW1lTmFt
ZSgpID0gMDsKKyAgdmlydHVhbCBET01TdHJpbmcgZ2VuZXJhdGVGcmFtZU5hbWUoKSA9IDA7CiAK
IHB1YmxpYyBzbG90czoKICAgLyoqCkBAIC05MjYsMTMgKzkxOSwxNCBAQCBwcml2YXRlOgogICAg
KiBhbHdheXMgdGhlIHNhbWUuCiAgICAqIFRoZSBzZXF1ZW5jZSBpcyByZXNldCBpbiBjbGVhcigp
LgogICAgKi8KLSAgUVN0cmluZyByZXF1ZXN0RnJhbWVOYW1lKCk7CiAKICAgYm9vbCByZXF1ZXN0
T2JqZWN0KFJlbmRlclBhcnQgKmZyYW1lLCBjb25zdCBRU3RyaW5nICZ1cmwsIGNvbnN0IFFTdHJp
bmcgJnNlcnZpY2VUeXBlLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0
ICZwYXJhbU5hbWVzID0gUVN0cmluZ0xpc3QoKSwgY29uc3QgUVN0cmluZ0xpc3QgJnBhcmFtVmFs
dWVzID0gUVN0cmluZ0xpc3QoKSk7CiAgIGJvb2wgcmVxdWVzdE9iamVjdChDaGlsZEZyYW1lICpj
aGlsZCwgY29uc3QgS1VSTCAmdXJsLCBjb25zdCBVUkxBcmdzICZhcmdzID0gVVJMQXJncygpKTsK
IAogcHVibGljOgorICBET01TdHJpbmcgcmVxdWVzdEZyYW1lTmFtZSgpOworCiAgIERvY3VtZW50
SW1wbCAqZG9jdW1lbnQoKSBjb25zdDsKICAgdm9pZCBzZXREb2N1bWVudChEb2N1bWVudEltcGwq
IG5ld0RvYyk7CiAKQEAgLTEwMzMsOCArMTAyNyw2IEBAIHByaXZhdGU6CiAgIC8vIENvbnZlbmll
bmNlLCB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGNvZGUgdG8gZGlnIGRvd24gdG8gZ2V0IHRoaXMu
CiAKICAgUUNoYXIgYmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpIGNvbnN0OwotICB2b2lkIHNl
dE5hbWUoY29uc3QgUVN0cmluZyYgbmFtZSk7Ci0gIGNvbnN0IFFTdHJpbmcmIG5hbWUoKTsKIAog
ICBRVmFsdWVMaXN0PE1hcmtlZFRleHRVbmRlcmxpbmU+IG1hcmtlZFRleHRVbmRlcmxpbmVzKCkg
Y29uc3Q7ICAKICAgYm9vbCBtYXJrZWRUZXh0VXNlc1VuZGVybGluZXMoKSBjb25zdDsKQEAgLTEx
MDEsOCArMTA5Myw2IEBAIHB1YmxpYzoKICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21WaWV3KCk7
CiAKICAgS1VSTCB1cmwoKSBjb25zdDsKLSAgdm9pZCBzZXRQYXJlbnQoRnJhbWUqIHBhcmVudCk7
Ci0gIEZyYW1lKiBwYXJlbnQoKSBjb25zdDsKIAogICAvLyBzcGxpdCBvdXQgY29udHJvbGxlciBv
YmplY3RzCiAgIEZyYW1lVHJlZU5vZGUqIHRyZWVOb2RlKCk7CkluZGV4OiBwYWdlL0ZyYW1lVHJl
ZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWVUcmVlTm9kZS5jcHAJKHJldmlzaW9u
IDEyNTEyKQorKysgcGFnZS9GcmFtZVRyZWVOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcs
OSArMzcsMjAgQEAgRnJhbWVUcmVlTm9kZTo6fkZyYW1lVHJlZU5vZGUoKQogICAgICAgICBjaGls
ZC0+ZGV0YWNoRnJvbVZpZXcoKTsKIH0KIAordm9pZCBGcmFtZVRyZWVOb2RlOjpzZXROYW1lKGNv
bnN0IERPTVN0cmluZyYgbmFtZSkgCit7IAorICAgIERPTVN0cmluZyBuID0gbmFtZTsKKyAgICAg
ICAgCisgICAgLy8gRklYTUU6IGlzIHRoZSBibGFuayBydWxlIG5lZWRlZCBvciB1c2VmdWw/Cisg
ICAgaWYgKHBhcmVudCgpICYmIChuYW1lLmlzRW1wdHkoKSB8fCBwYXJlbnQoKS0+ZnJhbWVFeGlz
dHMobmFtZS5xc3RyaW5nKCkpIHx8IG5hbWUgPT0gIl9ibGFuayIpKQorICAgICAgICBuID0gcGFy
ZW50KCktPnJlcXVlc3RGcmFtZU5hbWUoKTsKKyAgICAKKyAgICBtX25hbWUgPSBuOworfQorCiB2
b2lkIEZyYW1lVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQog
ewotICAgIGNoaWxkLT5zZXRQYXJlbnQobV90aGlzRnJhbWUpOworICAgIGNoaWxkLT50cmVlTm9k
ZSgpLT5tX3BhcmVudCA9IG1fdGhpc0ZyYW1lOwogCiAgICAgRnJhbWUqIG9sZExhc3QgPSBtX2xh
c3RDaGlsZDsKICAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdldCgpOwpAQCAtNTcsNyArNjgsNyBA
QCB2b2lkIEZyYW1lVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQCiAKIHZvaWQgRnJhbWVU
cmVlTm9kZTo6cmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxkKQogewotICAgIGNoaWxkLT5zZXRQYXJl
bnQoMCk7CisgICAgY2hpbGQtPnRyZWVOb2RlKCktPm1fcGFyZW50ID0gMDsKICAgICBjaGlsZC0+
ZGV0YWNoRnJvbVZpZXcoKTsKIAogICAgIC8vIFNsaWdodGx5IHRyaWNreSB3YXkgdG8gcHJldmVu
dCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwgd2UgYXJlIGRvbmUgd2l0aCBpdCwgdy9vCkluZGV4
OiBwYWdlL0ZyYW1lVHJlZU5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVHJlZU5vZGUu
aAkocmV2aXNpb24gMTI1MTIpCisrKyBwYWdlL0ZyYW1lVHJlZU5vZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSA8a3htbGNvcmUvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8a3htbGNvcmUvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgImRvbV9zdHJpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMSw4ICszMiw5IEBAIGNsYXNzIEZyYW1lOwogY2xh
c3MgRnJhbWVUcmVlTm9kZQogewogcHVibGljOgotICAgIEZyYW1lVHJlZU5vZGUoRnJhbWUqIHRo
aXNGcmFtZSkgCisgICAgRnJhbWVUcmVlTm9kZShGcmFtZSogdGhpc0ZyYW1lLCBGcmFtZSogcGFy
ZW50RnJhbWUpIAogICAgICAgICA6IG1fdGhpc0ZyYW1lKHRoaXNGcmFtZSkKKyAgICAgICAgLCBt
X3BhcmVudChwYXJlbnRGcmFtZSkKICAgICAgICAgLCBtX3ByZXZpb3VzU2libGluZygwKQogICAg
ICAgICAsIG1fbGFzdENoaWxkKDApCiAgICAgICAgICwgbV9jaGlsZENvdW50KDApCkBAIC00MCw2
ICs0MiwxMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5GcmFtZVRyZWVOb2RlKCk7CiAKKyAgICBE
T01TdHJpbmcmIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2b2lkIHNldE5hbWUoY29u
c3QgRE9NU3RyaW5nJiBuYW1lKTsKKyAgICBGcmFtZSogcGFyZW50KCkgeyByZXR1cm4gbV9wYXJl
bnQ7IH0KKyAgICB2b2lkIHNldFBhcmVudChGcmFtZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFy
ZW50OyB9CisgICAgCiAgICAgRnJhbWUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbV9uZXh0U2li
bGluZy5nZXQoKTsgfQogICAgIEZyYW1lKiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBtX3By
ZXZpb3VzU2libGluZzsgfQogICAgIEZyYW1lKiBmaXJzdENoaWxkKCkgeyByZXR1cm4gbV9maXJz
dENoaWxkLmdldCgpOyB9CkBAIC01Miw2ICs1OSw5IEBAIHB1YmxpYzoKICBwcml2YXRlOgogICAg
IEZyYW1lKiBtX3RoaXNGcmFtZTsKIAorICAgIEZyYW1lICptX3BhcmVudDsKKyAgICBET01TdHJp
bmcgbV9uYW1lOworCiAgICAgLy8gRklYTUU6IHVzZSBMaXN0UmVmUHRyPwogICAgIFJlZlB0cjxG
cmFtZT4gbV9uZXh0U2libGluZzsKICAgICBGcmFtZSogbV9wcmV2aW91c1NpYmxpbmc7CkluZGV4
OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24g
MTI1MTIpCisrKyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTkyLDcgKzk5Miw3
IEBAIHZvaWQgRnJhbWU6OmNoZWNrQ29tcGxldGVkKCkKICAgewogICAgIC8vIERvIG5vdCBzdGFy
dCByZWRpcmVjdGlvbiBmb3IgZnJhbWVzIGhlcmUhIFRoYXQgYWN0aW9uIGlzCiAgICAgLy8gZGVm
ZXJyZWQgdW50aWwgdGhlIHBhcmVudCBlbWl0cyBhIGNvbXBsZXRlZCBzaWduYWwuCi0gICAgaWYg
KCFwYXJlbnRGcmFtZSgpKQorICAgIGlmICghdHJlZU5vZGUoKS0+cGFyZW50KCkpCiAgICAgICBz
dGFydFJlZGlyZWN0aW9uVGltZXIoKTsKIAogICAgIGVtaXQgY29tcGxldGVkKCB0cnVlICk7CkBA
IC0xMTgzLDcgKzExODMsNyBAQCB2b2lkIEZyYW1lOjpyZWRpcmVjdGlvblRpbWVyRmlyZWQoVGlt
ZXI8CiAgICAgICAgIC8vIGdvKGkhPTApIGZyb20gYSBmcmFtZSBuYXZpZ2F0ZXMgaW50byB0aGUg
aGlzdG9yeSBvZiB0aGUgZnJhbWUgb25seSwKICAgICAgICAgLy8gaW4gYm90aCBJRSBhbmQgTlMg
KGJ1dCBub3QgaW4gTW96aWxsYSkuLi4uIHdlIGNhbid0IGVhc2lseSBkbyB0aGF0CiAgICAgICAg
IC8vIGluIEtvbnF1ZXJvci4uLgotICAgICAgICBpZiAoZC0+bV9zY2hlZHVsZWRIaXN0b3J5TmF2
aWdhdGlvblN0ZXBzID09IDApIC8vIGFkZCAmJiBwYXJlbnRGcmFtZSgpIHRvIGdldCBvbmx5IGZy
YW1lcywgYnV0IGRvZXNuJ3QgbWF0dGVyCisgICAgICAgIGlmIChkLT5tX3NjaGVkdWxlZEhpc3Rv
cnlOYXZpZ2F0aW9uU3RlcHMgPT0gMCkgLy8gYWRkICYmIHBhcmVudCgpIHRvIGdldCBvbmx5IGZy
YW1lcywgYnV0IGRvZXNuJ3QgbWF0dGVyCiAgICAgICAgICAgICBvcGVuVVJMKCB1cmwoKSApOyAv
Ly8gIyMgbmVlZCBhcmdzLnJlbG9hZD10cnVlPwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IGlmIChkLT5tX2V4dGVuc2lvbikgewpAQCAtMTU4NSw3ICsxNTg1LDcgQEAgYm9vbCBGcmFtZTo6
cmVxdWVzdEZyYW1lKCBSZW5kZXJQYXJ0ICpwYQogICByZXR1cm4gcmVxdWVzdE9iamVjdCggJigq
aXQpLCBjb21wbGV0ZVVSTCggdXJsICkpOwogfQogCi1RU3RyaW5nIEZyYW1lOjpyZXF1ZXN0RnJh
bWVOYW1lKCkKK0RPTVN0cmluZyBGcmFtZTo6cmVxdWVzdEZyYW1lTmFtZSgpCiB7CiAgICAgcmV0
dXJuIGdlbmVyYXRlRnJhbWVOYW1lKCk7CiB9CkBAIC0xODg2LDcgKzE4ODYsNyBAQCB2b2lkIEZy
YW1lOjpzbG90Q2hpbGRDb21wbGV0ZWQoIGJvb2wgY29tCiAgIGNoaWxkLT5tX2JDb21wbGV0ZWQg
PSB0cnVlOwogICBjaGlsZC0+bV9hcmdzID0gVVJMQXJncygpOwogCi0gIGlmICggY29tcGxldGUg
JiYgcGFyZW50RnJhbWUoKSA9PSAwICkKKyAgaWYgKGNvbXBsZXRlICYmIHRyZWVOb2RlKCktPnBh
cmVudCgpID09IDApCiAgICAgZC0+bV9iUGVuZGluZ0NoaWxkUmVkaXJlY3Rpb24gPSB0cnVlOwog
CiAgIGNoZWNrQ29tcGxldGVkKCk7CkBAIC0xOTQwLDExICsxOTQwLDYgQEAgYm9vbCBGcmFtZTo6
ZnJhbWVFeGlzdHMoIGNvbnN0IFFTdHJpbmcgJgogICByZXR1cm4gKCEoKml0KS5tX3JlbmRlcmVy
LmlzTnVsbCgpKTsKIH0KIAotRnJhbWUgKkZyYW1lOjpwYXJlbnRGcmFtZSgpIGNvbnN0Ci17Ci0g
IHJldHVybiBwYXJlbnQoKTsKLX0KLQogaW50IEZyYW1lOjp6b29tRmFjdG9yKCkgY29uc3QKIHsK
ICAgcmV0dXJuIGQtPm1fem9vbUZhY3RvcjsKQEAgLTI1MjAsNyArMjUxNSw2IEBAIHZvaWQgRnJh
bWU6OnByZWxvYWRTY3JpcHQoY29uc3QgUVN0cmluZyAKICAgICBDYWNoZTo6cHJlbG9hZFNjcmlw
dCh1cmwsIHNjcmlwdCk7CiB9CiAKLQogYm9vbCBGcmFtZTo6cmVzdG9yZWQoKSBjb25zdAogewog
ICByZXR1cm4gZC0+bV9yZXN0b3JlZDsKQEAgLTI1MjgsMjcgKzI1MjIsMjYgQEAgYm9vbCBGcmFt
ZTo6cmVzdG9yZWQoKSBjb25zdAogCiB2b2lkIEZyYW1lOjppbmNyZW1lbnRGcmFtZUNvdW50KCkK
IHsKLSAgZnJhbWVDb3VudCsrOwotICBpZiAocGFyZW50RnJhbWUoKSkgewotICAgIHBhcmVudEZy
YW1lKCktPmluY3JlbWVudEZyYW1lQ291bnQoKTsKLSAgfQorICAgIC8vIEZJWE1FOiB0aGlzIHNo
b3VsZCBiZSBpbiBQYWdlCisgICAgZnJhbWVDb3VudCsrOworICAgIGlmICh0cmVlTm9kZSgpLT5w
YXJlbnQoKSkKKyAgICAgICAgdHJlZU5vZGUoKS0+cGFyZW50KCktPmluY3JlbWVudEZyYW1lQ291
bnQoKTsKIH0KIAogdm9pZCBGcmFtZTo6ZGVjcmVtZW50RnJhbWVDb3VudCgpCiB7Ci0gIGZyYW1l
Q291bnQtLTsKLSAgaWYgKHBhcmVudEZyYW1lKCkpIHsKLSAgICBwYXJlbnRGcmFtZSgpLT5kZWNy
ZW1lbnRGcmFtZUNvdW50KCk7Ci0gIH0KKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgaW4g
UGFnZQorICAgIGZyYW1lQ291bnQtLTsKKyAgICBpZiAodHJlZU5vZGUoKS0+cGFyZW50KCkpCisg
ICAgICAgIHRyZWVOb2RlKCktPnBhcmVudCgpLT5kZWNyZW1lbnRGcmFtZUNvdW50KCk7CiB9CiAK
IGludCBGcmFtZTo6dG9wTGV2ZWxGcmFtZUNvdW50KCkKIHsKLSAgaWYgKHBhcmVudEZyYW1lKCkp
IHsKLSAgICByZXR1cm4gcGFyZW50RnJhbWUoKS0+dG9wTGV2ZWxGcmFtZUNvdW50KCk7Ci0gIH0K
LQotICByZXR1cm4gZnJhbWVDb3VudDsKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgaW4g
UGFnZQorICAgIGlmICh0cmVlTm9kZSgpLT5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIHRyZWVO
b2RlKCktPnBhcmVudCgpLT50b3BMZXZlbEZyYW1lQ291bnQoKTsKKyAgICByZXR1cm4gZnJhbWVD
b3VudDsKIH0KIAogYm9vbCBGcmFtZTo6dGFic1RvTGlua3MoKSBjb25zdApAQCAtMjk5NCw3ICsy
OTg3LDcgQEAgdm9pZCBGcmFtZTo6c2xvdEVuZExpZmVTdXBwb3J0KCkKIHZvaWQgRnJhbWU6OnNl
bGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKCkKIHsKICAgICAvLyBGaW5k
IHRoZSBwYXJlbnQgZnJhbWU7IGlmIHRoZXJlIGlzIG5vbmUsIHRoZW4gd2UgaGF2ZSBub3RoaW5n
IHRvIGRvLgotICAgIEZyYW1lICpwYXJlbnQgPSBwYXJlbnRGcmFtZSgpOworICAgIEZyYW1lICpw
YXJlbnQgPSB0cmVlTm9kZSgpLT5wYXJlbnQoKTsKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAg
cmV0dXJuOwogICAgIEZyYW1lVmlldyAqcGFyZW50VmlldyA9IHBhcmVudC0+dmlldygpOwpAQCAt
MzAzNCw3ICszMDI3LDcgQEAgdm9pZCBGcmFtZTo6c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJ
ZgogCiB2b2lkIEZyYW1lOjpoYW5kbGVGYWxsYmFja0NvbnRlbnQoKQogewotICAgIEZyYW1lICpw
YXJlbnQgPSBwYXJlbnRGcmFtZSgpOworICAgIEZyYW1lICpwYXJlbnQgPSB0cmVlTm9kZSgpLT5w
YXJlbnQoKTsKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIENoaWxkRnJh
bWUgKmNoaWxkRnJhbWUgPSBwYXJlbnQtPmNoaWxkRnJhbWUodGhpcyk7CkBAIC0zMDY1LDggKzMw
NTgsOCBAQCB2b2lkIEZyYW1lOjpwcm92aXNpb25hbExvYWRTdGFydGVkKCkKIGJvb2wgRnJhbWU6
OnVzZXJHZXN0dXJlSGludCgpCiB7CiAgICAgRnJhbWUgKnJvb3RGcmFtZSA9IHRoaXM7Ci0gICAg
d2hpbGUgKHJvb3RGcmFtZS0+cGFyZW50RnJhbWUoKSkKLSAgICAgICAgcm9vdEZyYW1lID0gcm9v
dEZyYW1lLT5wYXJlbnRGcmFtZSgpOworICAgIHdoaWxlIChyb290RnJhbWUtPnRyZWVOb2RlKCkt
PnBhcmVudCgpKQorICAgICAgICByb290RnJhbWUgPSByb290RnJhbWUtPnRyZWVOb2RlKCktPnBh
cmVudCgpOwogCiAgICAgaWYgKHJvb3RGcmFtZS0+alNjcmlwdCgpICYmIHJvb3RGcmFtZS0+alNj
cmlwdCgpLT5pbnRlcnByZXRlcigpKQogICAgICAgICByZXR1cm4gcm9vdEZyYW1lLT5qU2NyaXB0
KCktPmludGVycHJldGVyKCktPndhc1J1bkJ5VXNlckdlc3R1cmUoKTsKQEAgLTMzMTYsNyArMzMw
OSw3IEBAIGJvb2wgRnJhbWU6OmNhbkNhY2hlUGFnZSgpCiAgICAgLy8gNC4gIFRoZSBVUkwgZm9y
IHRoZSBwYWdlIGlzIG5vdCBodHRwcy4KICAgICAvLyA1LiAgVGhlIHBhZ2UgaGFzIG5vIGFwcGxl
dHMuCiAgICAgaWYgKGQtPm1fZnJhbWVzLmNvdW50KCkgfHwgZC0+bV9vYmplY3RzLmNvdW50KCkg
fHwKLSAgICAgICAgcGFyZW50RnJhbWUoKSB8fAorICAgICAgICB0cmVlTm9kZSgpLT5wYXJlbnQo
KSB8fAogICAgICAgICBkLT5tX3VybC5wcm90b2NvbCgpLnN0YXJ0c1dpdGgoImh0dHBzIikgfHwg
CiAgICAgICAgIChkLT5tX2RvYyAmJiAoZC0+bV9kb2MtPmFwcGxldHMoKS0+bGVuZ3RoKCkgIT0g
MCB8fAogICAgICAgICAgICAgICAgICAgICAgIGQtPm1fZG9jLT5oYXNXaW5kb3dFdmVudExpc3Rl
bmVyKHVubG9hZEV2ZW50KSB8fApAQCAtMzQyMCw4ICszNDEzLDggQEAgUVB0ckxpc3Q8RnJhbWU+
ICZGcmFtZTo6bXV0YWJsZUluc3RhbmNlcwogCiB2b2lkIEZyYW1lOjp1cGRhdGVQb2xpY3lCYXNl
VVJMKCkKIHsKLSAgICBpZiAocGFyZW50RnJhbWUoKSAmJiBwYXJlbnRGcmFtZSgpLT5kb2N1bWVu
dCgpKQotICAgICAgICBzZXRQb2xpY3lCYXNlVVJMKHBhcmVudEZyYW1lKCktPmRvY3VtZW50KCkt
PnBvbGljeUJhc2VVUkwoKSk7CisgICAgaWYgKHRyZWVOb2RlKCktPnBhcmVudCgpICYmIHRyZWVO
b2RlKCktPnBhcmVudCgpLT5kb2N1bWVudCgpKQorICAgICAgICBzZXRQb2xpY3lCYXNlVVJMKHRy
ZWVOb2RlKCktPnBhcmVudCgpLT5kb2N1bWVudCgpLT5wb2xpY3lCYXNlVVJMKCkpOwogICAgIGVs
c2UKICAgICAgICAgc2V0UG9saWN5QmFzZVVSTChkLT5tX3VybC51cmwoKSk7CiB9CkBAIC0zNzMy
LDM0ICszNzI1LDYgQEAgUUNoYXIgRnJhbWU6OmJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKQog
ICAgIHJldHVybiBjb2RlYy0+YmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpOwogfQogCi12b2lk
IEZyYW1lOjpzZXROYW1lKGNvbnN0IFFTdHJpbmcmIG5hbWUpCi17Ci0gICAgUVN0cmluZyBuID0g
bmFtZTsKLSAgICAKLSAgICBGcmFtZSAqcGFyZW50ID0gcGFyZW50RnJhbWUoKTsKLSAgICAKLSAg
ICAvLyBGSVhNRTogaXMgdGhlIGJsYW5rIHJ1bGUgbmVlZGVkIG9yIHVzZWZ1bD8KLSAgICBpZiAo
cGFyZW50ICYmIChuYW1lLmlzRW1wdHkoKSB8fCBwYXJlbnQtPmZyYW1lRXhpc3RzKG5hbWUpIHx8
IG5hbWUgPT0gIl9ibGFuayIpKQotICAgICAgICBuID0gcGFyZW50LT5yZXF1ZXN0RnJhbWVOYW1l
KCk7Ci0gICAgCi0gICAgZC0+bV9uYW1lID0gbmFtZTsKLX0KLQotY29uc3QgUVN0cmluZyYgRnJh
bWU6Om5hbWUoKQotewotICAgIHJldHVybiBkLT5tX25hbWU7Ci19Ci0KLXZvaWQgRnJhbWU6OnNl
dFBhcmVudChGcmFtZSogcGFyZW50KSAKLXsgCi0gICAgZC0+bV9wYXJlbnQgPSBwYXJlbnQ7IAot
fQotCi1GcmFtZSogRnJhbWU6OnBhcmVudCgpIGNvbnN0IAoteyAKLSAgICByZXR1cm4gZC0+bV9w
YXJlbnQ7IAotfQotCiBib29sIEZyYW1lOjptYXJrZWRUZXh0VXNlc1VuZGVybGluZXMoKSBjb25z
dAogewogICAgIHJldHVybiBtX21hcmtlZFRleHRVc2VzVW5kZXJsaW5lczsKSW5kZXg6IHBhZ2Uv
RnJhbWVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFtZVByaXZhdGUuaAkocmV2aXNp
b24gMTI1MTIpCisrKyBwYWdlL0ZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3
ICs5MSw3IEBAIGNsYXNzIEZyYW1lUHJpdmF0ZQogewogcHVibGljOgogICBGcmFtZVByaXZhdGUo
RnJhbWUgKnBhcmVudCwgRnJhbWUgKnRoaXNGcmFtZSkKLSAgICAgIDogbV90cmVlTm9kZSh0aGlz
RnJhbWUpLCBtX3BhcmVudChwYXJlbnQpCisgICAgICA6IG1fdHJlZU5vZGUodGhpc0ZyYW1lLCBw
YXJlbnQpCiAgICAgICAsIG1fcmVkaXJlY3Rpb25UaW1lcih0aGlzRnJhbWUsICZGcmFtZTo6cmVk
aXJlY3Rpb25UaW1lckZpcmVkKQogICB7CiAgICAgbV9kb2MgPSAwOwpAQCAtMTc4LDggKzE3OCw2
IEBAIHB1YmxpYzoKICAgfQogCiAgIEZyYW1lVHJlZU5vZGUgbV90cmVlTm9kZTsKLSAgRnJhbWUg
Km1fcGFyZW50OwotICBRU3RyaW5nIG1fbmFtZTsKIAogICAvLyBvbGQgc3R5bGUgZnJhbWUgaW5m
bwogICBGcmFtZUxpc3QgbV9mcmFtZXM7Cg==
</data>
<flag name="review"
          id="1490"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>