<?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>65340</bug_id>
          
          <creation_ts>2011-07-28 13:20:57 -0700</creation_ts>
          <short_desc>Switch legacy flexbox to to new layout types</short_desc>
          <delta_ts>2011-08-08 14:53:58 -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>Layout and Rendering</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>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443636</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-28 13:20:57 -0700</bug_when>
    <thetext>Convert RenderDeprecatedFlexibleBox to new layout abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443640</commentid>
    <comment_count>1</comment_count>
      <attachid>102293</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-28 13:31:17 -0700</bug_when>
    <thetext>Created attachment 102293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448044</commentid>
    <comment_count>2</comment_count>
      <attachid>102293</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-08 09:32:34 -0700</bug_when>
    <thetext>Comment on attachment 102293
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448283</commentid>
    <comment_count>3</comment_count>
      <attachid>102293</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-08 14:53:53 -0700</bug_when>
    <thetext>Comment on attachment 102293
Patch

Clearing flags on attachment: 102293

Committed r92638: &lt;http://trac.webkit.org/changeset/92638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448284</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-08 14:53:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102293</attachid>
            <date>2011-07-28 13:31:17 -0700</date>
            <delta_ts>2011-08-08 14:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65340-20110728133116.patch</filename>
            <type>text/plain</type>
            <size>24769</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxOTQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDctMjggIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBsZWdhY3kgZmxleGJv
eCB0byB0byBuZXcgbGF5b3V0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTM0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y2FsY0hvcml6b250YWxQ
cmVmV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6Y2FsY1ZlcnRpY2FsUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jp
em9udGFsQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6bGF5b3V0VmVydGljYWxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94OjpwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveDo6YWxsb3dlZENoaWxkRmxleCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oOgorCiAyMDExLTA3LTI4ICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjUzMjMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCShyZXZpc2lvbiA5
MTg3OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBSZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3g6OmNhbGNIbwogICAgICAgICBpZiAoY2hpbGQtPmlzUG9zaXRp
b25lZCgpIHx8IGNoaWxkLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gQ09MTEFQU0UpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpbnQgbWFyZ2luID0gbWFyZ2luV2lkdGhGb3JD
aGlsZChjaGlsZCk7CisgICAgICAgIExheW91dFVuaXQgbWFyZ2luID0gbWFyZ2luV2lkdGhGb3JD
aGlsZChjaGlsZCk7CiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoICs9IGNoaWxk
LT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIG1hcmdpbjsKICAgICAgICAgbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggKz0gY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsg
bWFyZ2luOwogICAgIH0KQEAgLTE0OCw4ICsxNDgsOCBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6Y2FsY1ZlCiAgICAgICAgIGlmIChjaGlsZC0+aXNQb3NpdGlvbmVkKCkgfHwg
Y2hpbGQtPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBDT0xMQVBTRSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIGludCBtYXJnaW4gPSBtYXJnaW5XaWR0aEZvckNoaWxkKGNoaWxk
KTsKLSAgICAgICAgaW50IHdpZHRoID0gY2hpbGQtPm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgp
ICsgbWFyZ2luOworICAgICAgICBMYXlvdXRVbml0IG1hcmdpbiA9IG1hcmdpbldpZHRoRm9yQ2hp
bGQoY2hpbGQpOworICAgICAgICBMYXlvdXRVbml0IHdpZHRoID0gY2hpbGQtPm1pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCgpICsgbWFyZ2luOwogICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxX
aWR0aCA9IG1heCh3aWR0aCwgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgpOwogCiAgICAgICAg
IHdpZHRoID0gY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsgbWFyZ2luOwpAQCAt
MTkxLDcgKzE5MSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXQK
ICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9taW5QcmVmZXJyZWRM
b2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1heFdp
ZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAotICAgIGludCBib3JkZXJBbmRQYWRkaW5nID0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpOworICAgIExheW91dFVuaXQgYm9yZGVyQW5kUGFk
ZGluZyA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKTsKICAgICBtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCArPSBib3JkZXJBbmRQYWRkaW5nOwogICAgIG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoICs9IGJvcmRlckFuZFBhZGRpbmc7CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lk
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAgICAgTGF5b3V0UmVwYWludGVy
IHJlcGFpbnRlcigqdGhpcywgY2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkpOwogICAgIExh
eW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksIHRoaXMsIEludFNpemUoeCgp
LCB5KCkpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS0+aXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CiAKLSAgICBJbnRTaXplIHByZXZpb3VzU2l6ZSA9
IHNpemUoKTsKKyAgICBMYXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKIAogICAgIGNv
bXB1dGVMb2dpY2FsV2lkdGgoKTsKICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOwpAQCAtMjM5
LDcgKzIzOSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAg
ICBlbHNlCiAgICAgICAgIGxheW91dFZlcnRpY2FsQm94KHJlbGF5b3V0Q2hpbGRyZW4pOwogCi0g
ICAgaW50IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKKyAgICBM
YXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKICAg
ICBjb21wdXRlTG9naWNhbEhlaWdodCgpOwogCiAgICAgaWYgKHByZXZpb3VzU2l6ZS5oZWlnaHQo
KSAhPSBoZWlnaHQoKSkKQEAgLTMxMCwxMyArMzEwLDEzIEBAIHN0YXRpYyB2b2lkIGdhdGhlckZs
ZXhDaGlsZHJlbkluZm8oRmxleEIKIAogdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmxheW91dEhvcml6b250YWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogewotICAgIGludCB0
b0FkZCA9IGJvcmRlckJvdHRvbSgpICsgcGFkZGluZ0JvdHRvbSgpICsgaG9yaXpvbnRhbFNjcm9s
bGJhckhlaWdodCgpOwotICAgIGludCB5UG9zID0gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCk7
Ci0gICAgaW50IHhQb3MgPSBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpOworICAgIExheW91
dFVuaXQgdG9BZGQgPSBib3JkZXJCb3R0b20oKSArIHBhZGRpbmdCb3R0b20oKSArIGhvcml6b250
YWxTY3JvbGxiYXJIZWlnaHQoKTsKKyAgICBMYXlvdXRVbml0IHlQb3MgPSBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKTsKKyAgICBMYXlvdXRVbml0IHhQb3MgPSBib3JkZXJMZWZ0KCkgKyBwYWRk
aW5nTGVmdCgpOwogICAgIGJvb2wgaGVpZ2h0U3BlY2lmaWVkID0gZmFsc2U7Ci0gICAgaW50IG9s
ZEhlaWdodCA9IDA7CisgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSAwOwogCi0gICAgaW50IHJl
bWFpbmluZ1NwYWNlID0gMDsKKyAgICBMYXlvdXRVbml0IHJlbWFpbmluZ1NwYWNlID0gMDsKIAog
CiAgICAgRmxleEJveEl0ZXJhdG9yIGl0ZXJhdG9yKHRoaXMpOwpAQCAtMzM4LDcgKzMzOCw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAgICAgICAgLy8gT3Vy
IGZpcnN0IHBhc3MgaXMgZG9uZSB3aXRob3V0IGZsZXhpbmcuICBXZSBzaW1wbHkgbGF5IHRoZSBj
aGlsZHJlbgogICAgICAgICAvLyBvdXQgd2l0aGluIHRoZSBib3guICBXZSBoYXZlIHRvIGRvIGEg
bGF5b3V0IGZpcnN0IGluIG9yZGVyIHRvIGRldGVybWluZQogICAgICAgICAvLyBvdXIgYm94J3Mg
aW50cmluc2ljIGhlaWdodC4KLSAgICAgICAgaW50IG1heEFzY2VudCA9IDAsIG1heERlc2NlbnQg
PSAwOworICAgICAgICBMYXlvdXRVbml0IG1heEFzY2VudCA9IDAsIG1heERlc2NlbnQgPSAwOwog
ICAgICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJzdCgpOyBjaGlsZDsg
Y2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBy
ZWxheW91dCBjaGlsZHJlbiBpZiB3ZSBuZWVkIGl0LgogICAgICAgICAgICAgaWYgKHJlbGF5b3V0
Q2hpbGRyZW4gfHwgKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgpLT53aWR0
aCgpLmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkp
KQpAQCAtMzU4LDExICszNTgsMTEgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmxheW91dAogCiAgICAgICAgICAgICAvLyBVcGRhdGUgb3VyIGhlaWdodCBhbmQgb3ZlcmZsb3cg
aGVpZ2h0LgogICAgICAgICAgICAgaWYgKHN0eWxlKCktPmJveEFsaWduKCkgPT0gQkJBU0VMSU5F
KSB7Ci0gICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGNoaWxkLT5maXJzdExpbmVCb3hCYXNl
bGluZSgpOworICAgICAgICAgICAgICAgIExheW91dFVuaXQgYXNjZW50ID0gY2hpbGQtPmZpcnN0
TGluZUJveEJhc2VsaW5lKCk7CiAgICAgICAgICAgICAgICAgaWYgKGFzY2VudCA9PSAtMSkKICAg
ICAgICAgICAgICAgICAgICAgYXNjZW50ID0gY2hpbGQtPmhlaWdodCgpICsgY2hpbGQtPm1hcmdp
bkJvdHRvbSgpOwogICAgICAgICAgICAgICAgIGFzY2VudCArPSBjaGlsZC0+bWFyZ2luVG9wKCk7
Ci0gICAgICAgICAgICAgICAgaW50IGRlc2NlbnQgPSAoY2hpbGQtPm1hcmdpblRvcCgpICsgY2hp
bGQtPmhlaWdodCgpICsgY2hpbGQtPm1hcmdpbkJvdHRvbSgpKSAtIGFzY2VudDsKKyAgICAgICAg
ICAgICAgICBMYXlvdXRVbml0IGRlc2NlbnQgPSAoY2hpbGQtPm1hcmdpblRvcCgpICsgY2hpbGQt
PmhlaWdodCgpICsgY2hpbGQtPm1hcmdpbkJvdHRvbSgpKSAtIGFzY2VudDsKIAogICAgICAgICAg
ICAgICAgIC8vIFVwZGF0ZSBvdXIgbWF4aW11bSBhc2NlbnQuCiAgICAgICAgICAgICAgICAgbWF4
QXNjZW50ID0gbWF4KG1heEFzY2VudCwgYXNjZW50KTsKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lk
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAgICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIHNlZSBpZiB0aGlzIGNoaWxkJ3MgaGVpZ2h0IGhhcyBjaGFuZ2VkLCBzaW5jZSB3ZSBt
YWtlIGJsb2NrIGVsZW1lbnRzCiAgICAgICAgICAgICAvLyBmaWxsIHRoZSBoZWlnaHQgb2YgYSBj
b250YWluaW5nIGJveCBieSBkZWZhdWx0LgogICAgICAgICAgICAgLy8gTm93IGRvIGEgbGF5b3V0
LgotICAgICAgICAgICAgaW50IG9sZENoaWxkSGVpZ2h0ID0gY2hpbGQtPmhlaWdodCgpOworICAg
ICAgICAgICAgTGF5b3V0VW5pdCBvbGRDaGlsZEhlaWdodCA9IGNoaWxkLT5oZWlnaHQoKTsKICAg
ICAgICAgICAgIGNoaWxkLT5jb21wdXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgaWYg
KG9sZENoaWxkSGVpZ2h0ICE9IGNoaWxkLT5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBjaGls
ZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBmYWxzZSk7CkBAIC00MTksMTAgKzQxOSwxMCBA
QCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAKICAgICAgICAgICAg
IC8vIFdlIGNhbiBwbGFjZSB0aGUgY2hpbGQgbm93LCB1c2luZyBvdXIgdmFsdWUgb2YgYm94LWFs
aWduLgogICAgICAgICAgICAgeFBvcyArPSBjaGlsZC0+bWFyZ2luTGVmdCgpOwotICAgICAgICAg
ICAgaW50IGNoaWxkWSA9IHlQb3M7CisgICAgICAgICAgICBMYXlvdXRVbml0IGNoaWxkWSA9IHlQ
b3M7CiAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlKCktPmJveEFsaWduKCkpIHsKICAgICAgICAg
ICAgICAgICBjYXNlIEJDRU5URVI6Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkWSArPSBjaGls
ZC0+bWFyZ2luVG9wKCkgKyBtYXgoMCwgKGNvbnRlbnRIZWlnaHQoKSAtIChjaGlsZC0+aGVpZ2h0
KCkgKyBjaGlsZC0+bWFyZ2luVG9wKCkgKyBjaGlsZC0+bWFyZ2luQm90dG9tKCkpKSAvIDIpOwor
ICAgICAgICAgICAgICAgICAgICBjaGlsZFkgKz0gY2hpbGQtPm1hcmdpblRvcCgpICsgbWF4PExh
eW91dFVuaXQ+KDAsIChjb250ZW50SGVpZ2h0KCkgLSAoY2hpbGQtPmhlaWdodCgpICsgY2hpbGQt
Pm1hcmdpblRvcCgpICsgY2hpbGQtPm1hcmdpbkJvdHRvbSgpKSkgLyAyKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCQkFTRUxJTkU6IHsKICAgICAg
ICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGNoaWxkLT5maXJzdExpbmVCb3hCYXNlbGluZSgp
OwpAQCAtNDYzLDIzICs0NjMsMjMgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmxheW91dAogICAgICAgICAgICAgdW5zaWduZWQgaW50IGVuZCA9IGV4cGFuZGluZz8gaGlnaGVz
dEZsZXhHcm91cCA6IGxvd2VzdEZsZXhHcm91cDsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aW50IGkgPSBzdGFydDsgaSA8PSBlbmQgJiYgcmVtYWluaW5nU3BhY2U7IGkrKykgewogICAgICAg
ICAgICAgICAgIC8vIEFsd2F5cyBzdGFydCBvZmYgYnkgYXNzdW1pbmcgdGhlIGdyb3VwIGNhbiBn
ZXQgYWxsIHRoZSByZW1haW5pbmcgc3BhY2UuCi0gICAgICAgICAgICAgICAgaW50IGdyb3VwUmVt
YWluaW5nU3BhY2UgPSByZW1haW5pbmdTcGFjZTsKKyAgICAgICAgICAgICAgICBMYXlvdXRVbml0
IGdyb3VwUmVtYWluaW5nU3BhY2UgPSByZW1haW5pbmdTcGFjZTsKICAgICAgICAgICAgICAgICBk
byB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZsZXhpbmcgY29uc2lzdHMgb2YgbXVsdGlwbGUg
cGFzc2VzLCBzaW5jZSB3ZSBoYXZlIHRvIGNoYW5nZSByYXRpb3MgZXZlcnkgdGltZSBhbiBvYmpl
Y3QgaGl0cyBpdHMgbWF4L21pbi13aWR0aAogICAgICAgICAgICAgICAgICAgICAvLyBGb3IgYSBn
aXZlbiBwYXNzLCB3ZSBhbHdheXMgc3RhcnQgb2ZmIGJ5IGNvbXB1dGluZyB0aGUgdG90YWxGbGV4
IG9mIGFsbCBvYmplY3RzIHRoYXQgY2FuIGdyb3cvc2hyaW5rIGF0IGFsbCwgYW5kCiAgICAgICAg
ICAgICAgICAgICAgIC8vIGNvbXB1dGluZyB0aGUgYWxsb3dlZCBncm93dGggYmVmb3JlIGFuIG9i
amVjdCBoaXRzIGl0cyBtaW4vbWF4IHdpZHRoIChhbmQgdGh1cwogICAgICAgICAgICAgICAgICAg
ICAvLyBmb3JjZXMgYSB0b3RhbEZsZXggcmVjb21wdXRhdGlvbikuCi0gICAgICAgICAgICAgICAg
ICAgIGludCBncm91cFJlbWFpbmluZ1NwYWNlQXRCZWdpbm5pbmcgPSBncm91cFJlbWFpbmluZ1Nw
YWNlOworICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGdyb3VwUmVtYWluaW5nU3BhY2VB
dEJlZ2lubmluZyA9IGdyb3VwUmVtYWluaW5nU3BhY2U7CiAgICAgICAgICAgICAgICAgICAgIGZs
b2F0IHRvdGFsRmxleCA9IDAuMGY7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94
KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQo
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQs
IGV4cGFuZGluZywgaSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxGbGV4ICs9
IGNoaWxkLT5zdHlsZSgpLT5ib3hGbGV4KCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgaW50IHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MgPSBncm91cFJlbWFpbmlu
Z1NwYWNlOworICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHNwYWNlQXZhaWxhYmxlVGhp
c1Bhc3MgPSBncm91cFJlbWFpbmluZ1NwYWNlOwogICAgICAgICAgICAgICAgICAgICBmb3IgKFJl
bmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRv
ci5uZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGxvd2VkRmxleCA9IGFs
bG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBMYXlvdXRVbml0IGFsbG93ZWRGbGV4ID0gYWxsb3dlZENoaWxkRmxleChjaGlsZCwgZXhw
YW5kaW5nLCBpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGxvd2VkRmxleCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcm9qZWN0ZWRGbGV4ID0gKGFsbG93ZWRG
bGV4ID09IElOVF9NQVgpID8gYWxsb3dlZEZsZXggOiAoaW50KShhbGxvd2VkRmxleCAqICh0b3Rh
bEZsZXggLyBjaGlsZC0+c3R5bGUoKS0+Ym94RmxleCgpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGF5b3V0VW5pdCBwcm9qZWN0ZWRGbGV4ID0gKGFsbG93ZWRGbGV4ID09IG51bWVy
aWNfbGltaXRzPExheW91dFVuaXQ+OjptYXgoKSkgPyBhbGxvd2VkRmxleCA6IHN0YXRpY19jYXN0
PExheW91dFVuaXQ+KGFsbG93ZWRGbGV4ICogKHRvdGFsRmxleCAvIGNoaWxkLT5zdHlsZSgpLT5i
b3hGbGV4KCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZUF2YWlsYWJsZVRo
aXNQYXNzID0gZXhwYW5kaW5nID8gbWluKHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MsIHByb2plY3Rl
ZEZsZXgpIDogbWF4KHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MsIHByb2plY3RlZEZsZXgpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CkBAIC00OTQsNyAr
NDk0LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dAogICAgICAg
ICAgICAgICAgICAgICAvLyBOb3cgZGlzdHJpYnV0ZSB0aGUgc3BhY2UgdG8gb2JqZWN0cy4KICAg
ICAgICAgICAgICAgICAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gaXRlcmF0b3IuZmlyc3Qo
KTsgY2hpbGQgJiYgc3BhY2VBdmFpbGFibGVUaGlzUGFzcyAmJiB0b3RhbEZsZXg7IGNoaWxkID0g
aXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb3dlZENo
aWxkRmxleChjaGlsZCwgZXhwYW5kaW5nLCBpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBzcGFjZUFkZCA9IChpbnQpKHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MgKiAoY2hpbGQt
PnN0eWxlKCktPmJveEZsZXgoKS90b3RhbEZsZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMYXlvdXRVbml0IHNwYWNlQWRkID0gc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oc3BhY2VB
dmFpbGFibGVUaGlzUGFzcyAqIChjaGlsZC0+c3R5bGUoKS0+Ym94RmxleCgpIC8gdG90YWxGbGV4
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwYWNlQWRkKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZVNpemUoTGF5b3V0U2l6
ZShjaGlsZC0+b3ZlcnJpZGVXaWR0aCgpICsgc3BhY2VBZGQsIDApKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9mbGV4aW5nQ2hpbGRyZW4gPSB0cnVlOwpAQCAtNTEwLDcgKzUx
MCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBSZW1haW5pbmdTcGFj
ZSA9PSBncm91cFJlbWFpbmluZ1NwYWNlQXRCZWdpbm5pbmcpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFRoaXMgaXMgbm90IGFkdmFuY2luZywgYXZvaWQgZ2V0dGluZyBzdHVjayBieSBk
aXN0cmlidXRpbmcgdGhlIHJlbWFpbmluZyBwaXhlbHMuCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgc3BhY2VBZGQgPSBncm91cFJlbWFpbmluZ1NwYWNlID4gMCA/IDEgOiAtMTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQgc3BhY2VBZGQgPSBncm91cFJlbWFpbmluZ1Nw
YWNlID4gMCA/IDEgOiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94
KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkICYmIGdyb3VwUmVtYWluaW5nU3BhY2U7
IGNoaWxkID0gaXRlcmF0b3IubmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlU2l6ZShMYXlvdXRTaXplKGNo
aWxkLT5vdmVycmlkZVdpZHRoKCkgKyBzcGFjZUFkZCwgMCkpOwpAQCAtNTM3LDcgKzUzNyw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAgICBpZiAocmVtYWlu
aW5nU3BhY2UgPiAwICYmICgoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIHN0
eWxlKCktPmJveFBhY2soKSAhPSBCU1RBUlQpCiAgICAgICAgIHx8ICghc3R5bGUoKS0+aXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpICYmIHN0eWxlKCktPmJveFBhY2soKSAhPSBCRU5EKSkpIHsKICAg
ICAgICAgLy8gQ2hpbGRyZW4gbXVzdCBiZSByZXBvc2l0aW9uZWQuCi0gICAgICAgIGludCBvZmZz
ZXQgPSAwOworICAgICAgICBMYXlvdXRVbml0IG9mZnNldCA9IDA7CiAgICAgICAgIGlmIChzdHls
ZSgpLT5ib3hQYWNrKCkgPT0gQkpVU1RJRlkpIHsKICAgICAgICAgICAgIC8vIERldGVybWluZSB0
aGUgdG90YWwgbnVtYmVyIG9mIGNoaWxkcmVuLgogICAgICAgICAgICAgaW50IHRvdGFsQ2hpbGRy
ZW4gPSAwOwpAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjpsYXlvdXQKICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nU3BhY2UgLT0gKHJlbWFp
bmluZ1NwYWNlL3RvdGFsQ2hpbGRyZW4pOwogICAgICAgICAgICAgICAgICAgICAtLXRvdGFsQ2hp
bGRyZW47CiAKLSAgICAgICAgICAgICAgICAgICAgcGxhY2VDaGlsZChjaGlsZCwgY2hpbGQtPmxv
Y2F0aW9uKCkgKyBJbnRTaXplKG9mZnNldCwgMCkpOworICAgICAgICAgICAgICAgICAgICBwbGFj
ZUNoaWxkKGNoaWxkLCBjaGlsZC0+bG9jYXRpb24oKSArIExheW91dFNpemUob2Zmc2V0LCAwKSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewpAQCAt
NTc3LDcgKzU3Nyw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQK
ICAgICAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzUG9zaXRpb25lZCgpKQogICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIHBsYWNlQ2hpbGQoY2hpbGQsIGNo
aWxkLT5sb2NhdGlvbigpICsgSW50U2l6ZShvZmZzZXQsIDApKTsKKyAgICAgICAgICAgICAgICBw
bGFjZUNoaWxkKGNoaWxkLCBjaGlsZC0+bG9jYXRpb24oKSArIExheW91dFNpemUob2Zmc2V0LCAw
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC01OTAsMTIgKzU5MCwxMiBA
QCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAKIHZvaWQgUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChib29sIHJlbGF5b3V0Q2hp
bGRyZW4pCiB7Ci0gICAgaW50IHlQb3MgPSBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAg
ICBpbnQgdG9BZGQgPSBib3JkZXJCb3R0b20oKSArIHBhZGRpbmdCb3R0b20oKSArIGhvcml6b250
YWxTY3JvbGxiYXJIZWlnaHQoKTsKKyAgICBMYXlvdXRVbml0IHlQb3MgPSBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKTsKKyAgICBMYXlvdXRVbml0IHRvQWRkID0gYm9yZGVyQm90dG9tKCkgKyBw
YWRkaW5nQm90dG9tKCkgKyBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAgICAgYm9vbCBo
ZWlnaHRTcGVjaWZpZWQgPSBmYWxzZTsKLSAgICBpbnQgb2xkSGVpZ2h0ID0gMDsKKyAgICBMYXlv
dXRVbml0IG9sZEhlaWdodCA9IDA7CiAKLSAgICBpbnQgcmVtYWluaW5nU3BhY2UgPSAwOworICAg
IExheW91dFVuaXQgcmVtYWluaW5nU3BhY2UgPSAwOwogCiAgICAgRmxleEJveEl0ZXJhdG9yIGl0
ZXJhdG9yKHRoaXMpOwogICAgIHVuc2lnbmVkIGludCBoaWdoZXN0RmxleEdyb3VwID0gMDsKQEAg
LTYxNyw3ICs2MTcsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0
CiAgICAgLy8gb3V0IHdpdGhpbiB0aGUgYm94LgogICAgIGRvIHsKICAgICAgICAgc2V0SGVpZ2h0
KGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpKTsKLSAgICAgICAgaW50IG1pbkhlaWdodCA9IGhl
aWdodCgpICsgdG9BZGQ7CisgICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gaGVpZ2h0KCkg
KyB0b0FkZDsKIAogICAgICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJz
dCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgICAgIC8vIE1h
a2Ugc3VyZSB3ZSByZWxheW91dCBjaGlsZHJlbiBpZiB3ZSBuZWVkIGl0LgpAQCAtNjQ5LDExICs2
NDksMTEgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dAogICAgICAg
ICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAKICAgICAgICAgICAgIC8vIFdlIGNhbiBw
bGFjZSB0aGUgY2hpbGQgbm93LCB1c2luZyBvdXIgdmFsdWUgb2YgYm94LWFsaWduLgotICAgICAg
ICAgICAgaW50IGNoaWxkWCA9IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7CisgICAgICAg
ICAgICBMYXlvdXRVbml0IGNoaWxkWCA9IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7CiAg
ICAgICAgICAgICBzd2l0Y2ggKHN0eWxlKCktPmJveEFsaWduKCkpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIEJDRU5URVI6CiAgICAgICAgICAgICAgICAgY2FzZSBCQkFTRUxJTkU6IC8vIEJhc2Vs
aW5lIGp1c3QgbWFwcyB0byBjZW50ZXIgZm9yIHZlcnRpY2FsIGJveGVzCi0gICAgICAgICAgICAg
ICAgICAgIGNoaWxkWCArPSBjaGlsZC0+bWFyZ2luTGVmdCgpICsgbWF4KDAsIChjb250ZW50V2lk
dGgoKSAtIChjaGlsZC0+d2lkdGgoKSArIGNoaWxkLT5tYXJnaW5MZWZ0KCkgKyBjaGlsZC0+bWFy
Z2luUmlnaHQoKSkpIC8gMik7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkWCArPSBjaGlsZC0+
bWFyZ2luTGVmdCgpICsgbWF4PExheW91dFVuaXQ+KDAsIChjb250ZW50V2lkdGgoKSAtIChjaGls
ZC0+d2lkdGgoKSArIGNoaWxkLT5tYXJnaW5MZWZ0KCkgKyBjaGlsZC0+bWFyZ2luUmlnaHQoKSkp
IC8gMik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
QkVORDoKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkpCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OmxheW91dAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBQbGFjZSB0aGUg
Y2hpbGQuCi0gICAgICAgICAgICBwbGFjZUNoaWxkKGNoaWxkLCBJbnRQb2ludChjaGlsZFgsIGhl
aWdodCgpKSk7CisgICAgICAgICAgICBwbGFjZUNoaWxkKGNoaWxkLCBMYXlvdXRQb2ludChjaGls
ZFgsIGhlaWdodCgpKSk7CiAgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBjaGlsZC0+
aGVpZ2h0KCkgKyBjaGlsZC0+bWFyZ2luQm90dG9tKCkpOwogICAgICAgICB9CiAKQEAgLTcwOSwy
MyArNzA5LDIzIEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBlbmQgPSBleHBhbmRpbmc/IGhpZ2hlc3RGbGV4R3JvdXAg
OiBsb3dlc3RGbGV4R3JvdXA7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gc3Rh
cnQ7IGkgPD0gZW5kICYmIHJlbWFpbmluZ1NwYWNlOyBpKyspIHsKICAgICAgICAgICAgICAgICAv
LyBBbHdheXMgc3RhcnQgb2ZmIGJ5IGFzc3VtaW5nIHRoZSBncm91cCBjYW4gZ2V0IGFsbCB0aGUg
cmVtYWluaW5nIHNwYWNlLgotICAgICAgICAgICAgICAgIGludCBncm91cFJlbWFpbmluZ1NwYWNl
ID0gcmVtYWluaW5nU3BhY2U7CisgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBncm91cFJlbWFp
bmluZ1NwYWNlID0gcmVtYWluaW5nU3BhY2U7CiAgICAgICAgICAgICAgICAgZG8gewogICAgICAg
ICAgICAgICAgICAgICAvLyBGbGV4aW5nIGNvbnNpc3RzIG9mIG11bHRpcGxlIHBhc3Nlcywgc2lu
Y2Ugd2UgaGF2ZSB0byBjaGFuZ2UgcmF0aW9zIGV2ZXJ5IHRpbWUgYW4gb2JqZWN0IGhpdHMgaXRz
IG1heC9taW4td2lkdGgKICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGEgZ2l2ZW4gcGFzcywg
d2UgYWx3YXlzIHN0YXJ0IG9mZiBieSBjb21wdXRpbmcgdGhlIHRvdGFsRmxleCBvZiBhbGwgb2Jq
ZWN0cyB0aGF0IGNhbiBncm93L3NocmluayBhdCBhbGwsIGFuZAogICAgICAgICAgICAgICAgICAg
ICAvLyBjb21wdXRpbmcgdGhlIGFsbG93ZWQgZ3Jvd3RoIGJlZm9yZSBhbiBvYmplY3QgaGl0cyBp
dHMgbWluL21heCB3aWR0aCAoYW5kIHRodXMKICAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2Vz
IGEgdG90YWxGbGV4IHJlY29tcHV0YXRpb24pLgotICAgICAgICAgICAgICAgICAgICBpbnQgZ3Jv
dXBSZW1haW5pbmdTcGFjZUF0QmVnaW5uaW5nID0gZ3JvdXBSZW1haW5pbmdTcGFjZTsKKyAgICAg
ICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBncm91cFJlbWFpbmluZ1NwYWNlQXRCZWdpbm5pbmcg
PSBncm91cFJlbWFpbmluZ1NwYWNlOwogICAgICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbEZs
ZXggPSAwLjBmOwogICAgICAgICAgICAgICAgICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBp
dGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChhbGxvd2VkQ2hpbGRGbGV4KGNoaWxkLCBleHBhbmRpbmcs
IGkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRmxleCArPSBjaGlsZC0+c3R5
bGUoKS0+Ym94RmxleCgpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIGludCBzcGFjZUF2YWlsYWJsZVRoaXNQYXNzID0gZ3JvdXBSZW1haW5pbmdTcGFjZTsKKyAg
ICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBzcGFjZUF2YWlsYWJsZVRoaXNQYXNzID0gZ3Jv
dXBSZW1haW5pbmdTcGFjZTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChSZW5kZXJCb3gqIGNo
aWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gaXRlcmF0b3IubmV4dCgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWxsb3dlZEZsZXggPSBhbGxvd2VkQ2hpbGRG
bGV4KGNoaWxkLCBleHBhbmRpbmcsIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0
VW5pdCBhbGxvd2VkRmxleCA9IGFsbG93ZWRDaGlsZEZsZXgoY2hpbGQsIGV4cGFuZGluZywgaSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb3dlZEZsZXgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgcHJvamVjdGVkRmxleCA9IChhbGxvd2VkRmxleCA9PSBJTlRf
TUFYKSA/IGFsbG93ZWRGbGV4IDogKGludCkoYWxsb3dlZEZsZXggKiAodG90YWxGbGV4IC8gY2hp
bGQtPnN0eWxlKCktPmJveEZsZXgoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh
eW91dFVuaXQgcHJvamVjdGVkRmxleCA9IChhbGxvd2VkRmxleCA9PSBudW1lcmljX2xpbWl0czxM
YXlvdXRVbml0Pjo6bWF4KCkpID8gYWxsb3dlZEZsZXggOiBzdGF0aWNfY2FzdDxMYXlvdXRVbml0
PihhbGxvd2VkRmxleCAqICh0b3RhbEZsZXggLyBjaGlsZC0+c3R5bGUoKS0+Ym94RmxleCgpKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VBdmFpbGFibGVUaGlzUGFzcyA9IGV4
cGFuZGluZyA/IG1pbihzcGFjZUF2YWlsYWJsZVRoaXNQYXNzLCBwcm9qZWN0ZWRGbGV4KSA6IG1h
eChzcGFjZUF2YWlsYWJsZVRoaXNQYXNzLCBwcm9qZWN0ZWRGbGV4KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNzQwLDcgKzc0MCw3IEBAIHZv
aWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKICAgICAgICAgICAgICAgICAg
ICAgLy8gTm93IGRpc3RyaWJ1dGUgdGhlIHNwYWNlIHRvIG9iamVjdHMuCiAgICAgICAgICAgICAg
ICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkICYm
IHNwYWNlQXZhaWxhYmxlVGhpc1Bhc3MgJiYgdG90YWxGbGV4OyBjaGlsZCA9IGl0ZXJhdG9yLm5l
eHQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRDaGlsZEZsZXgoY2hp
bGQsIGV4cGFuZGluZywgaSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3Bh
Y2VBZGQgPSAoaW50KShzcGFjZUF2YWlsYWJsZVRoaXNQYXNzICogKGNoaWxkLT5zdHlsZSgpLT5i
b3hGbGV4KCkvdG90YWxGbGV4KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0
VW5pdCBzcGFjZUFkZCA9IHN0YXRpY19jYXN0PExheW91dFVuaXQ+KHNwYWNlQXZhaWxhYmxlVGhp
c1Bhc3MgKiAoY2hpbGQtPnN0eWxlKCktPmJveEZsZXgoKSAvIHRvdGFsRmxleCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzcGFjZUFkZCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVTaXplKExheW91dFNpemUoMCwgY2hpbGQt
Pm92ZXJyaWRlSGVpZ2h0KCkgKyBzcGFjZUFkZCkpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2ZsZXhpbmdDaGlsZHJlbiA9IHRydWU7CkBAIC03NTYsNyArNzU2LDcgQEAgdm9p
ZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dAogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cFJlbWFpbmluZ1NwYWNlID09IGdyb3Vw
UmVtYWluaW5nU3BhY2VBdEJlZ2lubmluZykgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8g
VGhpcyBpcyBub3QgYWR2YW5jaW5nLCBhdm9pZCBnZXR0aW5nIHN0dWNrIGJ5IGRpc3RyaWJ1dGlu
ZyB0aGUgcmVtYWluaW5nIHBpeGVscy4KLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcGFj
ZUFkZCA9IGdyb3VwUmVtYWluaW5nU3BhY2UgPiAwID8gMSA6IC0xOworICAgICAgICAgICAgICAg
ICAgICAgICAgTGF5b3V0VW5pdCBzcGFjZUFkZCA9IGdyb3VwUmVtYWluaW5nU3BhY2UgPiAwID8g
MSA6IC0xOwogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0g
aXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQgJiYgZ3JvdXBSZW1haW5pbmdTcGFjZTsgY2hpbGQgPSBp
dGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb3dl
ZENoaWxkRmxleChjaGlsZCwgZXhwYW5kaW5nLCBpKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVTaXplKExheW91dFNpemUoMCwgY2hpbGQtPm92
ZXJyaWRlSGVpZ2h0KCkgKyBzcGFjZUFkZCkpOwpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXQKIAogICAgIGlmIChzdHlsZSgpLT5ib3hQ
YWNrKCkgIT0gQlNUQVJUICYmIHJlbWFpbmluZ1NwYWNlID4gMCkgewogICAgICAgICAvLyBDaGls
ZHJlbiBtdXN0IGJlIHJlcG9zaXRpb25lZC4KLSAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAg
ICAgIExheW91dFVuaXQgb2Zmc2V0ID0gMDsKICAgICAgICAgaWYgKHN0eWxlKCktPmJveFBhY2so
KSA9PSBCSlVTVElGWSkgewogICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSB0b3RhbCBudW1i
ZXIgb2YgY2hpbGRyZW4uCiAgICAgICAgICAgICBpbnQgdG90YWxDaGlsZHJlbiA9IDA7CkBAIC04
MDgsNyArODA4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dAog
ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gcmVtYWluaW5nU3BhY2UvdG90YWxDaGlsZHJl
bjsKICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nU3BhY2UgLT0gKHJlbWFpbmluZ1NwYWNl
L3RvdGFsQ2hpbGRyZW4pOwogICAgICAgICAgICAgICAgICAgICAtLXRvdGFsQ2hpbGRyZW47Ci0g
ICAgICAgICAgICAgICAgICAgIHBsYWNlQ2hpbGQoY2hpbGQsIGNoaWxkLT5sb2NhdGlvbigpICsg
SW50U2l6ZSgwLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgcGxhY2VDaGlsZChjaGls
ZCwgY2hpbGQtPmxvY2F0aW9uKCkgKyBMYXlvdXRTaXplKDAsIG9mZnNldCkpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKQEAgLTgxOSw3ICs4MTks
NyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAgICAgICAgICAg
ICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQg
PSBpdGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzUG9zaXRp
b25lZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBw
bGFjZUNoaWxkKGNoaWxkLCBjaGlsZC0+bG9jYXRpb24oKSArIEludFNpemUoMCwgb2Zmc2V0KSk7
CisgICAgICAgICAgICAgICAgcGxhY2VDaGlsZChjaGlsZCwgY2hpbGQtPmxvY2F0aW9uKCkgKyBM
YXlvdXRTaXplKDAsIG9mZnNldCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpA
QCAtOTMyLDkgKzkzMiw5IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBs
eUwKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpwbGFjZUNo
aWxkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKK3ZvaWQgUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpwbGFjZUNoaWxkKFJlbmRlckJveCogY2hpbGQsIGNv
bnN0IExheW91dFBvaW50JiBsb2NhdGlvbikKIHsKLSAgICBJbnRSZWN0IG9sZFJlY3QgPSBjaGls
ZC0+ZnJhbWVSZWN0KCk7CisgICAgTGF5b3V0UmVjdCBvbGRSZWN0ID0gY2hpbGQtPmZyYW1lUmVj
dCgpOwogCiAgICAgLy8gUGxhY2UgdGhlIGNoaWxkLgogICAgIGNoaWxkLT5zZXRMb2NhdGlvbihs
b2NhdGlvbik7CkBAIC05NDYsNyArOTQ2LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OnBsYWNlQwogICAgICAgICBjaGlsZC0+cmVwYWludER1cmluZ0xheW91dElmTW92ZWQo
b2xkUmVjdCk7CiB9CiAKLWludCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFsbG93ZWRD
aGlsZEZsZXgoUmVuZGVyQm94KiBjaGlsZCwgYm9vbCBleHBhbmRpbmcsIHVuc2lnbmVkIGludCBn
cm91cCkKK0xheW91dFVuaXQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphbGxvd2VkQ2hp
bGRGbGV4KFJlbmRlckJveCogY2hpbGQsIGJvb2wgZXhwYW5kaW5nLCB1bnNpZ25lZCBpbnQgZ3Jv
dXApCiB7CiAgICAgaWYgKGNoaWxkLT5pc1Bvc2l0aW9uZWQoKSB8fCBjaGlsZC0+c3R5bGUoKS0+
Ym94RmxleCgpID09IDAuMGYgfHwgY2hpbGQtPnN0eWxlKCktPmJveEZsZXhHcm91cCgpICE9IGdy
b3VwKQogICAgICAgICByZXR1cm4gMDsKQEAgLTk1NCwzMyArOTU0LDMzIEBAIGludCBSZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3g6OmFsbG93ZWQKICAgICBpZiAoZXhwYW5kaW5nKSB7CiAgICAg
ICAgIGlmIChpc0hvcml6b250YWwoKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IEZvciBub3cg
anVzdCBoYW5kbGUgZml4ZWQgdmFsdWVzLgotICAgICAgICAgICAgaW50IG1heFdpZHRoID0gSU5U
X01BWDsKLSAgICAgICAgICAgIGludCB3aWR0aCA9IGNoaWxkLT5vdmVycmlkZVdpZHRoKCkgLSBj
aGlsZC0+Ym9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CisgICAgICAgICAgICBMYXlvdXRVbml0IG1h
eFdpZHRoID0gbnVtZXJpY19saW1pdHM8TGF5b3V0VW5pdD46Om1heCgpOworICAgICAgICAgICAg
TGF5b3V0VW5pdCB3aWR0aCA9IGNoaWxkLT5vdmVycmlkZVdpZHRoKCkgLSBjaGlsZC0+Ym9yZGVy
QW5kUGFkZGluZ1dpZHRoKCk7CiAgICAgICAgICAgICBpZiAoIWNoaWxkLT5zdHlsZSgpLT5tYXhX
aWR0aCgpLmlzVW5kZWZpbmVkKCkgJiYgY2hpbGQtPnN0eWxlKCktPm1heFdpZHRoKCkuaXNGaXhl
ZCgpKQogICAgICAgICAgICAgICAgIG1heFdpZHRoID0gY2hpbGQtPnN0eWxlKCktPm1heFdpZHRo
KCkudmFsdWUoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkLT5zdHlsZSgpLT5tYXhXaWR0
aCgpLnR5cGUoKSA9PSBJbnRyaW5zaWMpCiAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBjaGls
ZC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CiAgICAgICAgICAgICBlbHNlIGlmIChjaGls
ZC0+c3R5bGUoKS0+bWF4V2lkdGgoKS50eXBlKCkgPT0gTWluSW50cmluc2ljKQogICAgICAgICAg
ICAgICAgIG1heFdpZHRoID0gY2hpbGQtPm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpOwotICAg
ICAgICAgICAgaWYgKG1heFdpZHRoID09IElOVF9NQVgpCisgICAgICAgICAgICBpZiAobWF4V2lk
dGggPT0gbnVtZXJpY19saW1pdHM8TGF5b3V0VW5pdD46Om1heCgpKQogICAgICAgICAgICAgICAg
IHJldHVybiBtYXhXaWR0aDsKLSAgICAgICAgICAgIHJldHVybiBtYXgoMCwgbWF4V2lkdGggLSB3
aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gbWF4PExheW91dFVuaXQ+KDAsIG1heFdpZHRoIC0g
d2lkdGgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6IEZvciBub3cg
anVzdCBoYW5kbGUgZml4ZWQgdmFsdWVzLgotICAgICAgICAgICAgaW50IG1heEhlaWdodCA9IElO
VF9NQVg7Ci0gICAgICAgICAgICBpbnQgaGVpZ2h0ID0gY2hpbGQtPm92ZXJyaWRlSGVpZ2h0KCkg
LSBjaGlsZC0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpOworICAgICAgICAgICAgTGF5b3V0VW5p
dCBtYXhIZWlnaHQgPSBudW1lcmljX2xpbWl0czxMYXlvdXRVbml0Pjo6bWF4KCk7CisgICAgICAg
ICAgICBMYXlvdXRVbml0IGhlaWdodCA9IGNoaWxkLT5vdmVycmlkZUhlaWdodCgpIC0gY2hpbGQt
PmJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKTsKICAgICAgICAgICAgIGlmICghY2hpbGQtPnN0eWxl
KCktPm1heEhlaWdodCgpLmlzVW5kZWZpbmVkKCkgJiYgY2hpbGQtPnN0eWxlKCktPm1heEhlaWdo
dCgpLmlzRml4ZWQoKSkKICAgICAgICAgICAgICAgICBtYXhIZWlnaHQgPSBjaGlsZC0+c3R5bGUo
KS0+bWF4SGVpZ2h0KCkudmFsdWUoKTsKLSAgICAgICAgICAgIGlmIChtYXhIZWlnaHQgPT0gSU5U
X01BWCkKKyAgICAgICAgICAgIGlmIChtYXhIZWlnaHQgPT0gbnVtZXJpY19saW1pdHM8TGF5b3V0
VW5pdD46Om1heCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBtYXhIZWlnaHQ7Ci0gICAgICAg
ICAgICByZXR1cm4gbWF4KDAsIG1heEhlaWdodCAtIGhlaWdodCk7CisgICAgICAgICAgICByZXR1
cm4gbWF4PExheW91dFVuaXQ+KDAsIG1heEhlaWdodCAtIGhlaWdodCk7CiAgICAgICAgIH0KICAg
ICB9CiAKICAgICAvLyBGSVhNRTogRm9yIG5vdyBqdXN0IGhhbmRsZSBmaXhlZCB2YWx1ZXMuCiAg
ICAgaWYgKGlzSG9yaXpvbnRhbCgpKSB7Ci0gICAgICAgIGludCBtaW5XaWR0aCA9IGNoaWxkLT5t
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgaW50IHdpZHRoID0gY2hpbGQtPm92
ZXJyaWRlV2lkdGgoKSAtIGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nV2lkdGgoKTsKKyAgICAgICAg
TGF5b3V0VW5pdCBtaW5XaWR0aCA9IGNoaWxkLT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsK
KyAgICAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IGNoaWxkLT5vdmVycmlkZVdpZHRoKCkgLSBjaGls
ZC0+Ym9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CiAgICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+
bWluV2lkdGgoKS5pc0ZpeGVkKCkpCiAgICAgICAgICAgICBtaW5XaWR0aCA9IGNoaWxkLT5zdHls
ZSgpLT5taW5XaWR0aCgpLnZhbHVlKCk7CiAgICAgICAgIGVsc2UgaWYgKGNoaWxkLT5zdHlsZSgp
LT5taW5XaWR0aCgpLnR5cGUoKSA9PSBJbnRyaW5zaWMpCkBAIC05ODgsMTMgKzk4OCwxMyBAQCBp
bnQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphbGxvd2VkCiAgICAgICAgIGVsc2UgaWYg
KGNoaWxkLT5zdHlsZSgpLT5taW5XaWR0aCgpLnR5cGUoKSA9PSBNaW5JbnRyaW5zaWMpCiAgICAg
ICAgICAgICBtaW5XaWR0aCA9IGNoaWxkLT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsKIAot
ICAgICAgICBpbnQgYWxsb3dlZFNocmlua2FnZSA9IG1pbigwLCBtaW5XaWR0aCAtIHdpZHRoKTsK
KyAgICAgICAgTGF5b3V0VW5pdCBhbGxvd2VkU2hyaW5rYWdlID0gbWluPExheW91dFVuaXQ+KDAs
IG1pbldpZHRoIC0gd2lkdGgpOwogICAgICAgICByZXR1cm4gYWxsb3dlZFNocmlua2FnZTsKICAg
ICB9IGVsc2UgewogICAgICAgICBpZiAoY2hpbGQtPnN0eWxlKCktPm1pbkhlaWdodCgpLmlzRml4
ZWQoKSkgewotICAgICAgICAgICAgaW50IG1pbkhlaWdodCA9IGNoaWxkLT5zdHlsZSgpLT5taW5I
ZWlnaHQoKS52YWx1ZSgpOwotICAgICAgICAgICAgaW50IGhlaWdodCA9IGNoaWxkLT5vdmVycmlk
ZUhlaWdodCgpIC0gY2hpbGQtPmJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKTsKLSAgICAgICAgICAg
IGludCBhbGxvd2VkU2hyaW5rYWdlID0gbWluKDAsIG1pbkhlaWdodCAtIGhlaWdodCk7CisgICAg
ICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodCA9IGNoaWxkLT5zdHlsZSgpLT5taW5IZWlnaHQo
KS52YWx1ZSgpOworICAgICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBjaGlsZC0+b3ZlcnJp
ZGVIZWlnaHQoKSAtIGNoaWxkLT5ib3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCk7CisgICAgICAgICAg
ICBMYXlvdXRVbml0IGFsbG93ZWRTaHJpbmthZ2UgPSBtaW48TGF5b3V0VW5pdD4oMCwgbWluSGVp
Z2h0IC0gaGVpZ2h0KTsKICAgICAgICAgICAgIHJldHVybiBhbGxvd2VkU2hyaW5rYWdlOwogICAg
ICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAkocmV2aXNpb24gOTE4NzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDEwICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
RmxleGluZ0NoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9mbGV4aW5nQ2hpbGRyZW47IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNTdHJldGNoaW5nQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX3N0
cmV0Y2hpbmdDaGlsZHJlbjsgfQogCi0gICAgdm9pZCBwbGFjZUNoaWxkKFJlbmRlckJveCogY2hp
bGQsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbik7CisgICAgdm9pZCBwbGFjZUNoaWxkKFJlbmRl
ckJveCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbik7CiAKIHByb3RlY3RlZDoK
LSAgICBpbnQgYWxsb3dlZENoaWxkRmxleChSZW5kZXJCb3gqIGNoaWxkLCBib29sIGV4cGFuZGlu
ZywgdW5zaWduZWQgZ3JvdXApOworICAgIExheW91dFVuaXQgYWxsb3dlZENoaWxkRmxleChSZW5k
ZXJCb3gqIGNoaWxkLCBib29sIGV4cGFuZGluZywgdW5zaWduZWQgZ3JvdXApOwogCiAgICAgYm9v
bCBoYXNNdWx0aXBsZUxpbmVzKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+Ym94TGluZXMoKSA9
PSBNVUxUSVBMRTsgfQogICAgIGJvb2wgaXNWZXJ0aWNhbCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxl
KCktPmJveE9yaWVudCgpID09IFZFUlRJQ0FMOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>