<?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>124465</bug_id>
          
          <creation_ts>2013-11-16 21:35:32 -0800</creation_ts>
          <short_desc>Simplify WatchpointSet state tracking</short_desc>
          <delta_ts>2013-11-17 18:08:41 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>124464</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951409</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-16 21:35:32 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951410</commentid>
    <comment_count>1</comment_count>
      <attachid>217143</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-16 21:58:40 -0800</bug_when>
    <thetext>Created attachment 217143
work in progress

I&apos;m marking this WIP patch r? because the only thing left is just to port it to the various assemblers.  On 64-bit x86 it passes all tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951411</commentid>
    <comment_count>2</comment_count>
      <attachid>217143</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-16 22:41:26 -0800</bug_when>
    <thetext>Comment on attachment 217143
work in progress

Attachment 217143 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/25418007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951412</commentid>
    <comment_count>3</comment_count>
      <attachid>217144</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-16 22:44:28 -0800</bug_when>
    <thetext>Created attachment 217144
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951477</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-17 18:08:41 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/159395</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217143</attachid>
            <date>2013-11-16 21:58:40 -0800</date>
            <delta_ts>2013-11-16 22:44:28 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17087</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDEzLTExLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U2ltcGxpZnkgV2F0Y2hwb2ludFNldCBzdGF0ZSB0cmFja2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBXZSBwcmV2aW91c2x5IHJlcHJl
c2VudGVkIHRoZSBzdGF0ZSBvZiB3YXRjaHBvaW50IHNldHMgdXNpbmcgdHdvIGJvb2xlYW5zLiBC
dXQgdGhhdAorICAgICAgICBtYWtlcyBpdCBhd2t3YXJkIHRvIGNhc2Ugb3ZlciB0aGUgc3RhdGUu
CisgICAgICAgIAorICAgICAgICBXZSBhbHNvIHByZXZpb3VzbHkgc3VwcG9ydGVkIGEgd2F0Y2hw
b2ludCBzZXQgYmVpbmcgYm90aCB3YXRjaGVkIGFuZCBpbnZhbGlkYXRlZC4gV2UKKyAgICAgICAg
bmV2ZXIgdXNlZCB0aGF0IGNhcGFiaWxpdHksIGFuZCBpdHMgcHJlc2VuY2Ugd2FzIGp1c3QgcHVy
ZWx5IGNvbmZ1c2luZy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgdHVybnMgdGhlIHdob2xlIHRo
aW5nIGludG8gYW4gZW51bS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6YnJhbmNoOCk6Cisg
ICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHA6CisgICAgICAgIChKU0M6OldhdGNocG9p
bnRTZXQ6OldhdGNocG9pbnRTZXQpOgorICAgICAgICAoSlNDOjpXYXRjaHBvaW50U2V0OjphZGQp
OgorICAgICAgICAoSlNDOjpXYXRjaHBvaW50U2V0Ojpub3RpZnlXcml0ZVNsb3cpOgorICAgICAg
ICAoSlNDOjpJbmxpbmVXYXRjaHBvaW50U2V0OjppbmZsYXRlU2xvdyk6CisgICAgICAgICogYnl0
ZWNvZGUvV2F0Y2hwb2ludC5oOgorICAgICAgICAoSlNDOjpXYXRjaHBvaW50U2V0OjpzdGF0ZSk6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmlzU3RpbGxWYWxpZCk6CisgICAgICAgIChK
U0M6OldhdGNocG9pbnRTZXQ6OnN0YXJ0V2F0Y2hpbmcpOgorICAgICAgICAoSlNDOjpXYXRjaHBv
aW50U2V0Ojpub3RpZnlXcml0ZSk6CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmFkZHJl
c3NPZlN0YXRlKToKKyAgICAgICAgKEpTQzo6SW5saW5lV2F0Y2hwb2ludFNldDo6SW5saW5lV2F0
Y2hwb2ludFNldCk6CisgICAgICAgIChKU0M6OklubGluZVdhdGNocG9pbnRTZXQ6Omhhc0JlZW5J
bnZhbGlkYXRlZCk6CisgICAgICAgIChKU0M6OklubGluZVdhdGNocG9pbnRTZXQ6OnN0YXJ0V2F0
Y2hpbmcpOgorICAgICAgICAoSlNDOjpJbmxpbmVXYXRjaHBvaW50U2V0Ojpub3RpZnlXcml0ZSk6
CisgICAgICAgIChKU0M6OklubGluZVdhdGNocG9pbnRTZXQ6OmRlY29kZVN0YXRlKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lV2F0Y2hwb2ludFNldDo6ZW5jb2RlU3RhdGUpOgorICAgICAgICAqIGpp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhckluamVj
dGlvbkNoZWNrKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAg
ICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1bnRp
bWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNGdW5jdGlvbjo6SlNGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6Cisg
ICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
OlN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TeW1ib2xUYWJsZS5jcHA6CisgICAgICAg
IChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OmF0dGVtcHRUb1dhdGNoKToKKyAgICAgICAgKiBydW50
aW1lL1N5bWJvbFRhYmxlLmg6CisKIDIwMTMtMTEtMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggaW5kZW50YXRpb24gb2YgSlNBY3RpdmF0aW9uLmguCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYx
MSw2ICs2MTEsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogICAg
IAorICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2g4OworICAgIEp1bXAg
YnJhbmNoOChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBU
cnVzdGVkSW1tMzIgcmlnaHQpCisgICAgeworICAgICAgICBNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bjo6bW92ZShUcnVzdGVkSW1tUHRyKGxlZnQubV9wdHIpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmJyYW5jaDgoY29uZCwgQWRkcmVz
cyhzY3JhdGNoUmVnaXN0ZXIpLCByaWdodCk7CisgICAgfQorICAgIAogICAgIHVzaW5nIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0ODsKICAgICBKdW1wIGJyYW5jaFRlc3Q4KFJl
c3VsdENvbmRpdGlvbiBjb25kLCBFeHRlbmRlZEFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMy
IG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEpKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAJKHJldmlzaW9uIDE1OTM4NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzgsOSArMzgsOCBAQCBXYXRjaHBvaW50Ojp+V2F0Y2hwb2ludCgpCiAgICAgICAgIHJl
bW92ZSgpOwogfQogCi1XYXRjaHBvaW50U2V0OjpXYXRjaHBvaW50U2V0KEluaXRpYWxXYXRjaHBv
aW50U2V0TW9kZSBtb2RlKQotICAgIDogbV9pc1dhdGNoZWQobW9kZSA9PSBJbml0aWFsaXplZFdh
dGNoaW5nKQotICAgICwgbV9pc0ludmFsaWRhdGVkKGZhbHNlKQorV2F0Y2hwb2ludFNldDo6V2F0
Y2hwb2ludFNldChXYXRjaHBvaW50U3RhdGUgc3RhdGUpCisgICAgOiBtX3N0YXRlKHN0YXRlKQog
ewogfQogCkBAIC01NywxOSArNTYsMTkgQEAgV2F0Y2hwb2ludFNldDo6fldhdGNocG9pbnRTZXQo
KQogdm9pZCBXYXRjaHBvaW50U2V0OjphZGQoV2F0Y2hwb2ludCogd2F0Y2hwb2ludCkKIHsKICAg
ICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAgQVNTRVJUKHN0YXRlKCkgIT0g
SXNJbnZhbGlkYXRlZCk7CiAgICAgaWYgKCF3YXRjaHBvaW50KQogICAgICAgICByZXR1cm47CiAg
ICAgbV9zZXQucHVzaCh3YXRjaHBvaW50KTsKLSAgICBtX2lzV2F0Y2hlZCA9IHRydWU7CisgICAg
bV9zdGF0ZSA9IElzV2F0Y2hlZDsKIH0KIAogdm9pZCBXYXRjaHBvaW50U2V0Ojpub3RpZnlXcml0
ZVNsb3coKQogewotICAgIEFTU0VSVChtX2lzV2F0Y2hlZCk7CisgICAgQVNTRVJUKHN0YXRlKCkg
PT0gSXNXYXRjaGVkKTsKICAgICAKICAgICBmaXJlQWxsV2F0Y2hwb2ludHMoKTsKLSAgICBtX2lz
V2F0Y2hlZCA9IGZhbHNlOwotICAgIG1faXNJbnZhbGlkYXRlZCA9IHRydWU7CisgICAgbV9zdGF0
ZSA9IElzSW52YWxpZGF0ZWQ7CiAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKIH0KIApAQCAt
ODgsMTEgKzg3LDcgQEAgV2F0Y2hwb2ludFNldCogSW5saW5lV2F0Y2hwb2ludFNldDo6aW5mbAog
ewogICAgIEFTU0VSVChpc1RoaW4oKSk7CiAgICAgQVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFk
KCkpOwotICAgIFdhdGNocG9pbnRTZXQqIGZhdCA9IGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0
KEluaXRpYWxpemVkQmxpbmQpKS5sZWFrUmVmKCk7Ci0gICAgaWYgKG1fZGF0YSAmIElzSW52YWxp
ZGF0ZWRGbGFnKQotICAgICAgICBmYXQtPm1faXNJbnZhbGlkYXRlZCA9IHRydWU7Ci0gICAgaWYg
KG1fZGF0YSAmIElzV2F0Y2hlZEZsYWcpCi0gICAgICAgIGZhdC0+bV9pc1dhdGNoZWQgPSB0cnVl
OworICAgIFdhdGNocG9pbnRTZXQqIGZhdCA9IGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KGRl
Y29kZVN0YXRlKG1fZGF0YSkpKS5sZWFrUmVmKCk7CiAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2Uo
KTsKICAgICBtX2RhdGEgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihmYXQpOwogICAgIHJldHVy
biBmYXQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmgJKHJldmlzaW9uIDE1OTM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9X
YXRjaHBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE2ICs0NSwyMiBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIGZpcmVJbnRlcm5hbCgpID0gMDsKIH07CiAKLWVudW0gSW5pdGlh
bFdhdGNocG9pbnRTZXRNb2RlIHsgSW5pdGlhbGl6ZWRXYXRjaGluZywgSW5pdGlhbGl6ZWRCbGlu
ZCB9OworZW51bSBXYXRjaHBvaW50U3RhdGUgeworICAgIENsZWFyV2F0Y2hwb2ludCwKKyAgICBJ
c1dhdGNoZWQsCisgICAgSXNJbnZhbGlkYXRlZAorfTsKIAogY2xhc3MgSW5saW5lV2F0Y2hwb2lu
dFNldDsKIAogY2xhc3MgV2F0Y2hwb2ludFNldCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxXYXRjaHBvaW50U2V0PiB7CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cjsKIHB1YmxpYzoKLSAgICBXYXRjaHBvaW50U2V0KEluaXRpYWxXYXRjaHBvaW50U2V0TW9kZSk7
CisgICAgV2F0Y2hwb2ludFNldChXYXRjaHBvaW50U3RhdGUpOwogICAgIH5XYXRjaHBvaW50U2V0
KCk7IC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgbm90IGZpcmUgYW55IG9mIHRoZSB3YXRjaHBvaW50
czsgaWYgeW91IG5lZWQgdG8ga25vdyB3aGVuIGEgV2F0Y2hwb2ludFNldCBkaWVzIHRoZW4geW91
IG5lZWQgYSBzZXBhcmF0ZSBtZWNoYW5pc20gZm9yIHRoaXMuCiAgICAgCisgICAgV2F0Y2hwb2lu
dFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8V2F0Y2hwb2ludFN0YXRl
PihtX3N0YXRlKTsgfQorICAgIAogICAgIC8vIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIGZyb20g
YW5vdGhlciB0aHJlYWQuICBJdCBtYXkgcmV0dXJuIHRydWUKICAgICAvLyBldmVuIGlmIHRoZSBz
ZXQgYWN0dWFsbHkgaGFkIGJlZW4gaW52YWxpZGF0ZWQsIGJ1dCB0aGF0IG91Z2h0IHRvIGhhcHBl
bgogICAgIC8vIG9ubHkgaW4gdGhlIGNhc2Ugb2YgcmFjZXMsIGFuZCBzaG91bGQgYmUgcmFyZS4g
R3VhcmFudGVlcyB0aGF0IGlmIHlvdQpAQCAtNjQsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1N0aWxsVmFsaWQoKSBjb25zdAogICAgIHsKICAgICAgICAgV1RGOjpsb2FkTG9hZEZlbmNl
KCk7Ci0gICAgICAgIHJldHVybiAhbV9pc0ludmFsaWRhdGVkOworICAgICAgICByZXR1cm4gc3Rh
dGUoKSAhPSBJc0ludmFsaWRhdGVkOwogICAgIH0KICAgICAvLyBMaWtlIGlzU3RpbGxWYWxpZCgp
LCBtYXkgYmUgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCiAgICAgYm9vbCBoYXNCZWVuSW52
YWxpZGF0ZWQoKSBjb25zdCB7IHJldHVybiAhaXNTdGlsbFZhbGlkKCk7IH0KQEAgLTc5LDE3ICs4
NSwyMCBAQCBwdWJsaWM6CiAgICAgLy8gd2F0Y2hwb2ludCB3b3VsZCBoYXZlIGZpcmVkLiBUaGF0
J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0aW9uIHRoYXQgeW91CiAgICAgLy8gcHJvYmFibHkgZG9u
J3Qgd2FudCB0byBzZXQgd2F0Y2hwb2ludHMsIHNpbmNlIHdlIHR5cGljYWxseSBkb24ndCB3YW50
IHRvCiAgICAgLy8gc2V0IHdhdGNocG9pbnRzIHRoYXQgd2UgYmVsaWV2ZSB3aWxsIGFjdHVhbGx5
IGJlIGZpcmVkLgotICAgIHZvaWQgc3RhcnRXYXRjaGluZygpIHsgbV9pc1dhdGNoZWQgPSB0cnVl
OyB9CisgICAgdm9pZCBzdGFydFdhdGNoaW5nKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChzdGF0
ZSgpICE9IElzSW52YWxpZGF0ZWQpOworICAgICAgICBtX3N0YXRlID0gSXNXYXRjaGVkOworICAg
IH0KICAgICAKICAgICB2b2lkIG5vdGlmeVdyaXRlKCkKICAgICB7Ci0gICAgICAgIGlmICghbV9p
c1dhdGNoZWQpCisgICAgICAgIGlmIChzdGF0ZSgpICE9IElzV2F0Y2hlZCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgbm90aWZ5V3JpdGVTbG93KCk7CiAgICAgfQotICAgIAotICAgIGJv
b2wqIGFkZHJlc3NPZklzV2F0Y2hlZCgpIHsgcmV0dXJuICZtX2lzV2F0Y2hlZDsgfQotICAgIGJv
b2wqIGFkZHJlc3NPZklzSW52YWxpZGF0ZWQoKSB7IHJldHVybiAmbV9pc0ludmFsaWRhdGVkOyB9
CisKKyAgICBpbnQ4X3QqIGFkZHJlc3NPZlN0YXRlKCkgeyByZXR1cm4gJm1fc3RhdGU7IH0KICAg
ICAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIG5vdGlmeVdyaXRlU2xvdygpOyAvLyBDYWxs
IG9ubHkgaWYgeW91J3ZlIGNoZWNrZWQgaXNXYXRjaGVkLgogICAgIApAQCAtOTksOCArMTA4LDcg
QEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSW5saW5lV2F0Y2hwb2ludFNldDsKICAgICAK
ICAgICBTZW50aW5lbExpbmtlZExpc3Q8V2F0Y2hwb2ludCwgQmFzaWNSYXdTZW50aW5lbE5vZGU8
V2F0Y2hwb2ludD4+IG1fc2V0OwotICAgIGJvb2wgbV9pc1dhdGNoZWQ7Ci0gICAgYm9vbCBtX2lz
SW52YWxpZGF0ZWQ7CisgICAgaW50OF90IG1fc3RhdGU7CiB9OwogCiAvLyBJbmxpbmVXYXRjaHBv
aW50U2V0IGlzIGEgbG93LW92ZXJoZWFkLCBub24tY29weWFibGUgd2F0Y2hwb2ludCBzZXQgaW4g
d2hpY2gKQEAgLTEyNSw4ICsxMzMsOCBAQCBwcml2YXRlOgogY2xhc3MgSW5saW5lV2F0Y2hwb2lu
dFNldCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5saW5lV2F0Y2hwb2ludFNldCk7CiBw
dWJsaWM6Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldChJbml0aWFsV2F0Y2hwb2ludFNldE1vZGUg
bW9kZSkKLSAgICAgICAgOiBtX2RhdGEoKG1vZGUgPT0gSW5pdGlhbGl6ZWRXYXRjaGluZyA/IElz
V2F0Y2hlZEZsYWcgOiAwKSB8IElzVGhpbkZsYWcpCisgICAgSW5saW5lV2F0Y2hwb2ludFNldChX
YXRjaHBvaW50U3RhdGUgc3RhdGUpCisgICAgICAgIDogbV9kYXRhKGVuY29kZVN0YXRlKHN0YXRl
KSkKICAgICB7CiAgICAgfQogICAgIApAQCAtMTQ4LDcgKzE1Niw3IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAgICAgICAgcmV0dXJuIGZhdChkYXRh
KS0+aGFzQmVlbkludmFsaWRhdGVkKCk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRhdGEg
JiBJc0ludmFsaWRhdGVkRmxhZzsKKyAgICAgICAgcmV0dXJuIGRlY29kZVN0YXRlKGRhdGEpID09
IElzSW52YWxpZGF0ZWQ7CiAgICAgfQogICAgIAogICAgIC8vIExpa2UgaGFzQmVlbkludmFsaWRh
dGVkKCksIG1heSBiZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KQEAgLTE2NSw3ICsxNzMs
OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBmYXQoKS0+c3RhcnRXYXRjaGluZygpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1fZGF0YSB8PSBJc1dhdGNoZWRGbGFn
OworICAgICAgICBBU1NFUlQoZGVjb2RlU3RhdGUobV9kYXRhKSAhPSBJc0ludmFsaWRhdGVkKTsK
KyAgICAgICAgbV9kYXRhID0gZW5jb2RlU3RhdGUoSXNXYXRjaGVkKTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBub3RpZnlXcml0ZSgpCkBAIC0xNzQsMjAgKzE4MywzMSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBmYXQoKS0+bm90aWZ5V3JpdGUoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgICAgICBpZiAoIShtX2RhdGEgJiBJc1dhdGNoZWRGbGFnKSkKKyAgICAgICAgaWYg
KGRlY29kZVN0YXRlKG1fZGF0YSkgPT0gQ2xlYXJXYXRjaHBvaW50KQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBtX2RhdGEgfD0gSXNJbnZhbGlkYXRlZEZsYWc7CisgICAgICAgIG1fZGF0
YSA9IGVuY29kZVN0YXRlKElzSW52YWxpZGF0ZWQpOwogICAgICAgICBXVEY6OnN0b3JlU3RvcmVG
ZW5jZSgpOwogICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJf
dCBJc1RoaW5GbGFnICAgICAgICA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBJc0lu
dmFsaWRhdGVkRmxhZyA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBJc1dhdGNoZWRG
bGFnICAgICA9IDQ7CisgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBTdGF0ZU1hc2sgICAgICAg
ICA9IDY7CisgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBTdGF0ZVNoaWZ0ICAgICAgICA9IDE7
CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNUaGluKHVpbnRwdHJfdCBkYXRhKSB7IHJldHVybiBk
YXRhICYgSXNUaGluRmxhZzsgfQogICAgIHN0YXRpYyBib29sIGlzRmF0KHVpbnRwdHJfdCBkYXRh
KSB7IHJldHVybiAhaXNUaGluKGRhdGEpOyB9CiAgICAgCisgICAgc3RhdGljIFdhdGNocG9pbnRT
dGF0ZSBkZWNvZGVTdGF0ZSh1aW50cHRyX3QgZGF0YSkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c1RoaW4oZGF0YSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2F0Y2hwb2ludFN0YXRl
PigoZGF0YSAmIFN0YXRlTWFzaykgPj4gU3RhdGVTaGlmdCk7CisgICAgfQorICAgIAorICAgIHN0
YXRpYyB1aW50cHRyX3QgZW5jb2RlU3RhdGUoV2F0Y2hwb2ludFN0YXRlIHN0YXRlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIChzdGF0ZSA8PCBTdGF0ZVNoaWZ0KSB8IElzVGhpbkZsYWc7CisgICAg
fQorICAgIAogICAgIGJvb2wgaXNUaGluKCkgY29uc3QgeyByZXR1cm4gaXNUaGluKG1fZGF0YSk7
IH0KICAgICBib29sIGlzRmF0KCkgY29uc3QgeyByZXR1cm4gaXNGYXQobV9kYXRhKTsgfTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwCShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIHZv
aWQgSklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWUKIHsKICAgICBpZiAoIW5lZWRz
VmFySW5qZWN0aW9uQ2hlY2tzKQogICAgICAgICByZXR1cm47Ci0gICAgYWRkU2xvd0Nhc2UoYnJh
bmNoVGVzdDgoTm9uWmVybywgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5nbG9iYWxPYmpl
Y3QoKS0+dmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpLT5hZGRyZXNzT2ZJc0ludmFsaWRhdGVkKCkp
KSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fY29k
ZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+dmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpLT5hZGRyZXNz
T2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElzSW52YWxpZGF0ZWQpKSk7CiB9CiAKIHZvaWQgSklU
OjplbWl0UmVzb2x2ZUNsb3N1cmUoaW50IGRzdCwgYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNr
cywgdW5zaWduZWQgZGVwdGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTU5Mzg0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdv
cmtpbmcgY29weSkKQEAgLTE4MDAsNyArMTgwMCw3IEBAIG1hY3JvIHZhckluamVjdGlvbkNoZWNr
KHNsb3dQYXRoKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAogICAgIGxvYWRwIENvZGVC
bG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAogICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0Ojpt
X3ZhckluamVjdGlvbldhdGNocG9pbnRbdDBdLCB0MAotICAgIGJ0Ym56IFdhdGNocG9pbnRTZXQ6
Om1faXNJbnZhbGlkYXRlZFt0MF0sIHNsb3dQYXRoCisgICAgYmJlcSBXYXRjaHBvaW50U2V0Ojpt
X3N0YXRlW3QwXSwgSXNJbnZhbGlkYXRlZCwgc2xvd1BhdGgKIGVuZAogCiBtYWNybyByZXNvbHZl
U2NvcGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC03
MSw2ICs3MSwxMSBAQCBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFn
ID0gRGVsZXRlZFZhbHVlVGFnCiBlbmQKIAorIyBXYXRjaHBvaW50IHN0YXRlcworY29uc3QgQ2xl
YXJXYXRjaHBvaW50ID0gMAorY29uc3QgSXNXYXRjaGVkID0gMQorY29uc3QgSXNJbnZhbGlkYXRl
ZCA9IDIKKwogIyBTb21lIHJlZ2lzdGVyIGNvbnZlbnRpb25zLgogaWYgSlNWQUxVRTY0CiAgICAg
IyAtIFVzZSBhIHBhaXIgb2YgcmVnaXN0ZXJzIHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdp
c3RlciBmb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDcgKzk2LDcgQEAgSlNG
dW5jdGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsTwogICAgIC8vIHdhcyBjbG9iYmVy
ZWQgZXhhY3RseSBvbmNlLCBidXQgdGhhdCBzZWVtcyBsaWtlIG92ZXJraWxsLiBJbiBhbG1vc3Qg
YWxsIGNhc2VzIGl0IHdpbGwgYmUKICAgICAvLyBjbG9iYmVyZWQgb25jZSwgYW5kIGlmIGl0J3Mg
Y2xvYmJlcmVkIG1vcmUgdGhhbiBvbmNlLCB0aGF0IHdpbGwgcHJvYmFibHkgb25seSBvY2N1cgog
ICAgIC8vIGJlZm9yZSB3ZSBzdGFydGVkIG9wdGltaXppbmcsIGFueXdheS4KLSAgICAsIG1fYWxs
b2NhdGlvblByb2ZpbGVXYXRjaHBvaW50KEluaXRpYWxpemVkQmxpbmQpCisgICAgLCBtX2FsbG9j
YXRpb25Qcm9maWxlV2F0Y2hwb2ludChDbGVhcldhdGNocG9pbnQpCiB7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaAko
cmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBpbmxpbmUgSlNG
dW5jdGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIEZ1CiAgICAgOiBCYXNlKHZtLCBzY29wZS0+Z2xv
YmFsT2JqZWN0KCktPmZ1bmN0aW9uU3RydWN0dXJlKCkpCiAgICAgLCBtX2V4ZWN1dGFibGUodm0s
IHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlKHZtLCB0aGlzLCBzY29wZSkKLSAgICAs
IG1fYWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50KEluaXRpYWxpemVkQmxpbmQpIC8vIFNlZSBj
b21tZW50IGluIEpTRnVuY3Rpb24uY3BwIGNvbmNlcm5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcg
SW5pdGlhbGl6ZWRCbGluZCBhcyBvcHBvc2VkIHRvIEluaXRpYWxpemVkV2F0Y2hpbmcuCisgICAg
LCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludChDbGVhcldhdGNocG9pbnQpIC8vIFNlZSBj
b21tZW50IGluIEpTRnVuY3Rpb24uY3BwIGNvbmNlcm5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcg
Q2xlYXJXYXRjaHBvaW50IGFzIG9wcG9zZWQgdG8gSXNXYXRjaGVkLgogewogfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShy
ZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw5ICsxNTAsOSBAQCBjb25zdCBHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iCiAKIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2Jh
bE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIDApCi0gICAgLCBtX21hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KGFkb3B0
UmVmKG5ldyBXYXRjaHBvaW50U2V0KEluaXRpYWxpemVkV2F0Y2hpbmcpKSkKLSAgICAsIG1faGF2
aW5nQUJhZFRpbWVXYXRjaHBvaW50KGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KEluaXRpYWxp
emVkV2F0Y2hpbmcpKSkKLSAgICAsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludChhZG9wdFJlZihu
ZXcgV2F0Y2hwb2ludFNldChJbml0aWFsaXplZFdhdGNoaW5nKSkpCisgICAgLCBtX21hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KElzV2F0
Y2hlZCkpKQorICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoYWRvcHRSZWYobmV3IFdh
dGNocG9pbnRTZXQoSXNXYXRjaGVkKSkpCisgICAgLCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQo
YWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSXNXYXRjaGVkKSkpCiAgICAgLCBtX3dlYWtSYW5k
b20oT3B0aW9uczo6Zm9yY2VXZWFrUmFuZG9tU2VlZCgpID8gT3B0aW9uczo6Zm9yY2VkV2Vha1Jh
bmRvbVNlZWQoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSkKICAgICAsIG1fZXZhbEVu
YWJsZWQodHJ1ZSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoZ2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgPyBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSA6ICZzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuY3BwCShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iagogICAgICwgbV9nbG9iYWxPYmplY3Qo
dm0sIHRoaXMsIGdsb2JhbE9iamVjdCwgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5
QmVOdWxsKQogICAgICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIHByb3RvdHlwZSkKICAgICAsIG1f
Y2xhc3NJbmZvKGNsYXNzSW5mbykKLSAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSW5p
dGlhbGl6ZWRXYXRjaGluZykKKyAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSXNXYXRj
aGVkKQogICAgICwgbV9vZmZzZXQoaW52YWxpZE9mZnNldCkKICAgICAsIG1fdHlwZUluZm8odHlw
ZUluZm8pCiAgICAgLCBtX2luZGV4aW5nVHlwZShpbmRleGluZ1R5cGUpCkBAIC0xODUsNyArMTg1
LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtKQogICAgIDogSlNDZWxsKENyZWF0aW5n
RWFybHlDZWxsKQogICAgICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIGpzTnVsbCgpKQogICAgICwg
bV9jbGFzc0luZm8oaW5mbygpKQotICAgICwgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldChJbml0
aWFsaXplZFdhdGNoaW5nKQorICAgICwgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldChJc1dhdGNo
ZWQpCiAgICAgLCBtX29mZnNldChpbnZhbGlkT2Zmc2V0KQogICAgICwgbV90eXBlSW5mbyhDb21w
b3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pCiAgICAgLCBtX2luZGV4aW5nVHlwZSgw
KQpAQCAtMjA3LDcgKzIwNyw3IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgY29uc3Qg
U3RydWMKICAgICA6IEpTQ2VsbCh2bSwgdm0uc3RydWN0dXJlU3RydWN0dXJlLmdldCgpKQogICAg
ICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIHByZXZpb3VzLT5zdG9yZWRQcm90b3R5cGUoKSkKICAg
ICAsIG1fY2xhc3NJbmZvKHByZXZpb3VzLT5tX2NsYXNzSW5mbykKLSAgICAsIG1fdHJhbnNpdGlv
bldhdGNocG9pbnRTZXQoSW5pdGlhbGl6ZWRXYXRjaGluZykKKyAgICAsIG1fdHJhbnNpdGlvbldh
dGNocG9pbnRTZXQoSXNXYXRjaGVkKQogICAgICwgbV9vZmZzZXQoaW52YWxpZE9mZnNldCkKICAg
ICAsIG1fdHlwZUluZm8ocHJldmlvdXMtPnR5cGVJbmZvKCkudHlwZSgpLCBwcmV2aW91cy0+dHlw
ZUluZm8oKS5mbGFncygpICYgflN0cnVjdHVyZUhhc1JhcmVEYXRhKQogICAgICwgbV9pbmRleGlu
Z1R5cGUocHJldmlvdXMtPmluZGV4aW5nVHlwZUluY2x1ZGluZ0hpc3RvcnkoKSkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAJKHJldmlzaW9u
IDE1OTM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTMgKzcyLDcgQEAgdm9pZCBTeW1ib2xUYWJsZUVudHJ5
OjphdHRlbXB0VG9XYXRjaCgpCiB7CiAgICAgRmF0RW50cnkqIGVudHJ5ID0gaW5mbGF0ZSgpOwog
ICAgIGlmICghZW50cnktPm1fd2F0Y2hwb2ludHMpCi0gICAgICAgIGVudHJ5LT5tX3dhdGNocG9p
bnRzID0gYWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSW5pdGlhbGl6ZWRXYXRjaGluZykpOwot
fQotCi1ib29sKiBTeW1ib2xUYWJsZUVudHJ5OjphZGRyZXNzT2ZJc1dhdGNoZWQoKQotewotICAg
IEFTU0VSVChjb3VsZEJlV2F0Y2hlZCgpKTsKLSAgICByZXR1cm4gZmF0RW50cnkoKS0+bV93YXRj
aHBvaW50cy0+YWRkcmVzc09mSXNXYXRjaGVkKCk7CisgICAgICAgIGVudHJ5LT5tX3dhdGNocG9p
bnRzID0gYWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSXNXYXRjaGVkKSk7CiB9CiAKIHZvaWQg
U3ltYm9sVGFibGVFbnRyeTo6YWRkV2F0Y2hwb2ludChXYXRjaHBvaW50KiB3YXRjaHBvaW50KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCShyZXZp
c2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsOCArMjMwLDYgQEAgc3RydWN0IFN5bWJvbFRhYmxl
RW50cnkgewogICAgIC8vIGltbWVkaWF0ZWx5IGFmdGVyIGEgY2FsbCB0byBhdHRlbXB0VG9XYXRj
aCgpLgogICAgIHZvaWQgYXR0ZW1wdFRvV2F0Y2goKTsKICAgICAKLSAgICBib29sKiBhZGRyZXNz
T2ZJc1dhdGNoZWQoKTsKLSAgICAKICAgICB2b2lkIGFkZFdhdGNocG9pbnQoV2F0Y2hwb2ludCop
OwogICAgIAogICAgIFdhdGNocG9pbnRTZXQqIHdhdGNocG9pbnRTZXQoKQo=
</data>
<flag name="commit-queue"
          id="240234"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217144</attachid>
            <date>2013-11-16 22:44:28 -0800</date>
            <delta_ts>2013-11-17 12:09:06 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21473</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBA
CisyMDEzLTExLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U2ltcGxpZnkgV2F0Y2hwb2ludFNldCBzdGF0ZSB0cmFja2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBXZSBwcmV2aW91c2x5IHJlcHJl
c2VudGVkIHRoZSBzdGF0ZSBvZiB3YXRjaHBvaW50IHNldHMgdXNpbmcgdHdvIGJvb2xlYW5zLiBC
dXQgdGhhdAorICAgICAgICBtYWtlcyBpdCBhd2t3YXJkIHRvIGNhc2Ugb3ZlciB0aGUgc3RhdGUu
CisgICAgICAgIAorICAgICAgICBXZSBhbHNvIHByZXZpb3VzbHkgc3VwcG9ydGVkIGEgd2F0Y2hw
b2ludCBzZXQgYmVpbmcgYm90aCB3YXRjaGVkIGFuZCBpbnZhbGlkYXRlZC4gV2UKKyAgICAgICAg
bmV2ZXIgdXNlZCB0aGF0IGNhcGFiaWxpdHksIGFuZCBpdHMgcHJlc2VuY2Ugd2FzIGp1c3QgcHVy
ZWx5IGNvbmZ1c2luZy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgdHVybnMgdGhlIHdob2xlIHRo
aW5nIGludG8gYW4gZW51bS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmJyYW5jaDgpOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaDgpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Ni5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Njo6YnJhbmNoOCk6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjpicmFuY2g4KToKKyAgICAgICAgKiBieXRlY29kZS9X
YXRjaHBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludFNldDo6V2F0Y2hwb2ludFNl
dCk6CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OmFkZCk6CisgICAgICAgIChKU0M6Oldh
dGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRlU2xvdyk6CisgICAgICAgIChKU0M6OklubGluZVdhdGNo
cG9pbnRTZXQ6OmluZmxhdGVTbG93KToKKyAgICAgICAgKiBieXRlY29kZS9XYXRjaHBvaW50Lmg6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6OnN0YXRlKToKKyAgICAgICAgKEpTQzo6V2F0
Y2hwb2ludFNldDo6aXNTdGlsbFZhbGlkKToKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludFNldDo6
c3RhcnRXYXRjaGluZyk6CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRl
KToKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludFNldDo6YWRkcmVzc09mU3RhdGUpOgorICAgICAg
ICAoSlNDOjpJbmxpbmVXYXRjaHBvaW50U2V0OjpJbmxpbmVXYXRjaHBvaW50U2V0KToKKyAgICAg
ICAgKEpTQzo6SW5saW5lV2F0Y2hwb2ludFNldDo6aGFzQmVlbkludmFsaWRhdGVkKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lV2F0Y2hwb2ludFNldDo6c3RhcnRXYXRjaGluZyk6CisgICAgICAgIChK
U0M6OklubGluZVdhdGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRlKToKKyAgICAgICAgKEpTQzo6SW5s
aW5lV2F0Y2hwb2ludFNldDo6ZGVjb2RlU3RhdGUpOgorICAgICAgICAoSlNDOjpJbmxpbmVXYXRj
aHBvaW50U2V0OjplbmNvZGVTdGF0ZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2spOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0VmFySW5qZWN0aW9uQ2hlY2spOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBydW50
aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmg6CisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QpOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
OjpTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sVGFibGUuY3BwOgorICAgICAg
ICAoSlNDOjpTeW1ib2xUYWJsZUVudHJ5OjphdHRlbXB0VG9XYXRjaCk6CisgICAgICAgICogcnVu
dGltZS9TeW1ib2xUYWJsZS5oOgorCiAyMDEzLTExLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGluZGVudGF0aW9uIG9mIEpTQWN0aXZhdGlvbi5oLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE1OTM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjM4
LDYgKzE2MzgsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbWVt
b3J5VGVtcFJlZ2lzdGVyLCByaWdodCk7CiAgICAgfQogICAgIAorICAgIEp1bXAgYnJhbmNoOChS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1t
MzIgcmlnaHQpCisgICAgeworICAgICAgICBBU1NFUlQoISgweGZmZmZmZjAwICYgcmlnaHQubV92
YWx1ZSkpOworICAgICAgICBsb2FkOChsZWZ0LCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJ
REFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBtZW1vcnlU
ZW1wUmVnaXN0ZXIsIHJpZ2h0KTsKKyAgICB9CisgICAgCiAgICAgSnVtcCBicmFuY2hUZXN0MzIo
UmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgcmVnLCBSZWdpc3RlcklEIG1hc2spCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci50c3Q8MzI+KHJlZywgbWFzayk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNzcsNiArMTM3Nywx
MiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyLCByaWdodCk7CiAgICAgfQogICAgIAorICAgIEp1bXAgYnJhbmNoOChSZWxhdGlvbmFs
Q29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1tMzIgcmlnaHQp
CisgICAgeworICAgICAgICBsb2FkOChsZWZ0LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIHJpZ2h0KTsKKyAg
ICB9CisgICAgCiAgICAgSnVtcCBicmFuY2hUZXN0MzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJl
Z2lzdGVySUQgcmVnLCBSZWdpc3RlcklEIG1hc2spCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxl
ci50c3QocmVnLCBtYXNrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgJKHJldmlzaW9uIDE1OTM4NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAkod29ya2luZyBj
b3B5KQpAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OmxvYWREb3VibGU7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246
OnN0b3JlRG91YmxlOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpjb252ZXJ0
SW50MzJUb0RvdWJsZTsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNo
ODsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoVGVzdDg7CiAKICAg
ICB2b2lkIGFkZDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklE
IGRlc3QpCkBAIC0yMTMsNiArMjE0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIERhdGFM
YWJlbFB0cih0aGlzKTsKICAgICB9CiAgICAgCisgICAgSnVtcCBicmFuY2g4KFJlbGF0aW9uYWxD
b25kaXRpb24gY29uZCwgQWJzb2x1dGVBZGRyZXNzIGxlZnQsIFRydXN0ZWRJbW0zMiByaWdodCkK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmNtcGJfaW0ocmlnaHQubV92YWx1ZSwgbGVmdC5t
X3B0cik7CisgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmpDQyh4ODZDb25kaXRpb24o
Y29uZCkpKTsKKyAgICB9CisKICAgICBKdW1wIGJyYW5jaFRlc3Q4KFJlc3VsdENvbmRpdGlvbiBj
b25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMyIG1hc2sgPSBUcnVzdGVk
SW1tMzIoLTEpKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1hc2subV92YWx1ZSA+PSAtMTI4ICYm
IG1hc2subV92YWx1ZSA8PSAyNTUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkocmV2aXNpb24gMTU5Mzg0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82
NC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MTEsNiArNjExLDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGxhYmVsOwogICAgIH0KICAgICAKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbjo6YnJhbmNoODsKKyAgICBKdW1wIGJyYW5jaDgoUmVsYXRpb25hbENvbmRpdGlvbiBjb25k
LCBBYnNvbHV0ZUFkZHJlc3MgbGVmdCwgVHJ1c3RlZEltbTMyIHJpZ2h0KQorICAgIHsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om1vdmUoVHJ1c3RlZEltbVB0cihsZWZ0Lm1fcHRy
KSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpicmFuY2g4KGNvbmQsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSwgcmlnaHQpOworICAg
IH0KKyAgICAKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoVGVzdDg7
CiAgICAgSnVtcCBicmFuY2hUZXN0OChSZXN1bHRDb25kaXRpb24gY29uZCwgRXh0ZW5kZWRBZGRy
ZXNzIGFkZHJlc3MsIFRydXN0ZWRJbW0zMiBtYXNrID0gVHJ1c3RlZEltbTMyKC0xKSkKICAgICB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0
Y2hwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDggQEAgV2F0Y2hwb2ludDo6
fldhdGNocG9pbnQoKQogICAgICAgICByZW1vdmUoKTsKIH0KIAotV2F0Y2hwb2ludFNldDo6V2F0
Y2hwb2ludFNldChJbml0aWFsV2F0Y2hwb2ludFNldE1vZGUgbW9kZSkKLSAgICA6IG1faXNXYXRj
aGVkKG1vZGUgPT0gSW5pdGlhbGl6ZWRXYXRjaGluZykKLSAgICAsIG1faXNJbnZhbGlkYXRlZChm
YWxzZSkKK1dhdGNocG9pbnRTZXQ6OldhdGNocG9pbnRTZXQoV2F0Y2hwb2ludFN0YXRlIHN0YXRl
KQorICAgIDogbV9zdGF0ZShzdGF0ZSkKIHsKIH0KIApAQCAtNTcsMTkgKzU2LDE5IEBAIFdhdGNo
cG9pbnRTZXQ6On5XYXRjaHBvaW50U2V0KCkKIHZvaWQgV2F0Y2hwb2ludFNldDo6YWRkKFdhdGNo
cG9pbnQqIHdhdGNocG9pbnQpCiB7CiAgICAgQVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkp
OworICAgIEFTU0VSVChzdGF0ZSgpICE9IElzSW52YWxpZGF0ZWQpOwogICAgIGlmICghd2F0Y2hw
b2ludCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2V0LnB1c2god2F0Y2hwb2ludCk7Ci0gICAg
bV9pc1dhdGNoZWQgPSB0cnVlOworICAgIG1fc3RhdGUgPSBJc1dhdGNoZWQ7CiB9CiAKIHZvaWQg
V2F0Y2hwb2ludFNldDo6bm90aWZ5V3JpdGVTbG93KCkKIHsKLSAgICBBU1NFUlQobV9pc1dhdGNo
ZWQpOworICAgIEFTU0VSVChzdGF0ZSgpID09IElzV2F0Y2hlZCk7CiAgICAgCiAgICAgZmlyZUFs
bFdhdGNocG9pbnRzKCk7Ci0gICAgbV9pc1dhdGNoZWQgPSBmYWxzZTsKLSAgICBtX2lzSW52YWxp
ZGF0ZWQgPSB0cnVlOworICAgIG1fc3RhdGUgPSBJc0ludmFsaWRhdGVkOwogICAgIFdURjo6c3Rv
cmVTdG9yZUZlbmNlKCk7CiB9CiAKQEAgLTg4LDExICs4Nyw3IEBAIFdhdGNocG9pbnRTZXQqIElu
bGluZVdhdGNocG9pbnRTZXQ6OmluZmwKIHsKICAgICBBU1NFUlQoaXNUaGluKCkpOwogICAgIEFT
U0VSVCghaXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICBXYXRjaHBvaW50U2V0KiBmYXQgPSBh
ZG9wdFJlZihuZXcgV2F0Y2hwb2ludFNldChJbml0aWFsaXplZEJsaW5kKSkubGVha1JlZigpOwot
ICAgIGlmIChtX2RhdGEgJiBJc0ludmFsaWRhdGVkRmxhZykKLSAgICAgICAgZmF0LT5tX2lzSW52
YWxpZGF0ZWQgPSB0cnVlOwotICAgIGlmIChtX2RhdGEgJiBJc1dhdGNoZWRGbGFnKQotICAgICAg
ICBmYXQtPm1faXNXYXRjaGVkID0gdHJ1ZTsKKyAgICBXYXRjaHBvaW50U2V0KiBmYXQgPSBhZG9w
dFJlZihuZXcgV2F0Y2hwb2ludFNldChkZWNvZGVTdGF0ZShtX2RhdGEpKSkubGVha1JlZigpOwog
ICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CiAgICAgbV9kYXRhID0gYml0d2lzZV9jYXN0PHVp
bnRwdHJfdD4oZmF0KTsKICAgICByZXR1cm4gZmF0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NSwxNiArNDUsMjIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlSW50ZXJuYWwo
KSA9IDA7CiB9OwogCi1lbnVtIEluaXRpYWxXYXRjaHBvaW50U2V0TW9kZSB7IEluaXRpYWxpemVk
V2F0Y2hpbmcsIEluaXRpYWxpemVkQmxpbmQgfTsKK2VudW0gV2F0Y2hwb2ludFN0YXRlIHsKKyAg
ICBDbGVhcldhdGNocG9pbnQsCisgICAgSXNXYXRjaGVkLAorICAgIElzSW52YWxpZGF0ZWQKK307
CiAKIGNsYXNzIElubGluZVdhdGNocG9pbnRTZXQ7CiAKIGNsYXNzIFdhdGNocG9pbnRTZXQgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2F0Y2hwb2ludFNldD4gewogICAgIGZyaWVuZCBj
bGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6Ci0gICAgV2F0Y2hwb2ludFNldChJ
bml0aWFsV2F0Y2hwb2ludFNldE1vZGUpOworICAgIFdhdGNocG9pbnRTZXQoV2F0Y2hwb2ludFN0
YXRlKTsKICAgICB+V2F0Y2hwb2ludFNldCgpOyAvLyBOb3RlIHRoYXQgdGhpcyB3aWxsIG5vdCBm
aXJlIGFueSBvZiB0aGUgd2F0Y2hwb2ludHM7IGlmIHlvdSBuZWVkIHRvIGtub3cgd2hlbiBhIFdh
dGNocG9pbnRTZXQgZGllcyB0aGVuIHlvdSBuZWVkIGEgc2VwYXJhdGUgbWVjaGFuaXNtIGZvciB0
aGlzLgogICAgIAorICAgIFdhdGNocG9pbnRTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFdhdGNocG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKyAgICAKICAgICAvLyBJdCBp
cyBzYWZlIHRvIGNhbGwgdGhpcyBmcm9tIGFub3RoZXIgdGhyZWFkLiAgSXQgbWF5IHJldHVybiB0
cnVlCiAgICAgLy8gZXZlbiBpZiB0aGUgc2V0IGFjdHVhbGx5IGhhZCBiZWVuIGludmFsaWRhdGVk
LCBidXQgdGhhdCBvdWdodCB0byBoYXBwZW4KICAgICAvLyBvbmx5IGluIHRoZSBjYXNlIG9mIHJh
Y2VzLCBhbmQgc2hvdWxkIGJlIHJhcmUuIEd1YXJhbnRlZXMgdGhhdCBpZiB5b3UKQEAgLTY0LDcg
KzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTdGlsbFZhbGlkKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAgICAgICByZXR1cm4gIW1faXNJbnZhbGlk
YXRlZDsKKyAgICAgICAgcmV0dXJuIHN0YXRlKCkgIT0gSXNJbnZhbGlkYXRlZDsKICAgICB9CiAg
ICAgLy8gTGlrZSBpc1N0aWxsVmFsaWQoKSwgbWF5IGJlIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhy
ZWFkLgogICAgIGJvb2wgaGFzQmVlbkludmFsaWRhdGVkKCkgY29uc3QgeyByZXR1cm4gIWlzU3Rp
bGxWYWxpZCgpOyB9CkBAIC03OSwxNyArODUsMjAgQEAgcHVibGljOgogICAgIC8vIHdhdGNocG9p
bnQgd291bGQgaGF2ZSBmaXJlZC4gVGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdGlvbiB0aGF0
IHlvdQogICAgIC8vIHByb2JhYmx5IGRvbid0IHdhbnQgdG8gc2V0IHdhdGNocG9pbnRzLCBzaW5j
ZSB3ZSB0eXBpY2FsbHkgZG9uJ3Qgd2FudCB0bwogICAgIC8vIHNldCB3YXRjaHBvaW50cyB0aGF0
IHdlIGJlbGlldmUgd2lsbCBhY3R1YWxseSBiZSBmaXJlZC4KLSAgICB2b2lkIHN0YXJ0V2F0Y2hp
bmcoKSB7IG1faXNXYXRjaGVkID0gdHJ1ZTsgfQorICAgIHZvaWQgc3RhcnRXYXRjaGluZygpCisg
ICAgeworICAgICAgICBBU1NFUlQoc3RhdGUoKSAhPSBJc0ludmFsaWRhdGVkKTsKKyAgICAgICAg
bV9zdGF0ZSA9IElzV2F0Y2hlZDsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBub3RpZnlXcml0ZSgp
CiAgICAgewotICAgICAgICBpZiAoIW1faXNXYXRjaGVkKQorICAgICAgICBpZiAoc3RhdGUoKSAh
PSBJc1dhdGNoZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG5vdGlmeVdyaXRlU2xv
dygpOwogICAgIH0KLSAgICAKLSAgICBib29sKiBhZGRyZXNzT2ZJc1dhdGNoZWQoKSB7IHJldHVy
biAmbV9pc1dhdGNoZWQ7IH0KLSAgICBib29sKiBhZGRyZXNzT2ZJc0ludmFsaWRhdGVkKCkgeyBy
ZXR1cm4gJm1faXNJbnZhbGlkYXRlZDsgfQorCisgICAgaW50OF90KiBhZGRyZXNzT2ZTdGF0ZSgp
IHsgcmV0dXJuICZtX3N0YXRlOyB9CiAgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBu
b3RpZnlXcml0ZVNsb3coKTsgLy8gQ2FsbCBvbmx5IGlmIHlvdSd2ZSBjaGVja2VkIGlzV2F0Y2hl
ZC4KICAgICAKQEAgLTk5LDggKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIElu
bGluZVdhdGNocG9pbnRTZXQ7CiAgICAgCiAgICAgU2VudGluZWxMaW5rZWRMaXN0PFdhdGNocG9p
bnQsIEJhc2ljUmF3U2VudGluZWxOb2RlPFdhdGNocG9pbnQ+PiBtX3NldDsKLSAgICBib29sIG1f
aXNXYXRjaGVkOwotICAgIGJvb2wgbV9pc0ludmFsaWRhdGVkOworICAgIGludDhfdCBtX3N0YXRl
OwogfTsKIAogLy8gSW5saW5lV2F0Y2hwb2ludFNldCBpcyBhIGxvdy1vdmVyaGVhZCwgbm9uLWNv
cHlhYmxlIHdhdGNocG9pbnQgc2V0IGluIHdoaWNoCkBAIC0xMjUsOCArMTMzLDggQEAgcHJpdmF0
ZToKIGNsYXNzIElubGluZVdhdGNocG9pbnRTZXQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KElubGluZVdhdGNocG9pbnRTZXQpOwogcHVibGljOgotICAgIElubGluZVdhdGNocG9pbnRTZXQo
SW5pdGlhbFdhdGNocG9pbnRTZXRNb2RlIG1vZGUpCi0gICAgICAgIDogbV9kYXRhKChtb2RlID09
IEluaXRpYWxpemVkV2F0Y2hpbmcgPyBJc1dhdGNoZWRGbGFnIDogMCkgfCBJc1RoaW5GbGFnKQor
ICAgIElubGluZVdhdGNocG9pbnRTZXQoV2F0Y2hwb2ludFN0YXRlIHN0YXRlKQorICAgICAgICA6
IG1fZGF0YShlbmNvZGVTdGF0ZShzdGF0ZSkpCiAgICAgewogICAgIH0KICAgICAKQEAgLTE0OCw3
ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKICAg
ICAgICAgICAgIHJldHVybiBmYXQoZGF0YSktPmhhc0JlZW5JbnZhbGlkYXRlZCgpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBkYXRhICYgSXNJbnZhbGlkYXRlZEZsYWc7CisgICAgICAgIHJl
dHVybiBkZWNvZGVTdGF0ZShkYXRhKSA9PSBJc0ludmFsaWRhdGVkOwogICAgIH0KICAgICAKICAg
ICAvLyBMaWtlIGhhc0JlZW5JbnZhbGlkYXRlZCgpLCBtYXkgYmUgY2FsbGVkIGZyb20gYW5vdGhl
ciB0aHJlYWQuCkBAIC0xNjUsNyArMTczLDggQEAgcHVibGljOgogICAgICAgICAgICAgZmF0KCkt
PnN0YXJ0V2F0Y2hpbmcoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg
ICBtX2RhdGEgfD0gSXNXYXRjaGVkRmxhZzsKKyAgICAgICAgQVNTRVJUKGRlY29kZVN0YXRlKG1f
ZGF0YSkgIT0gSXNJbnZhbGlkYXRlZCk7CisgICAgICAgIG1fZGF0YSA9IGVuY29kZVN0YXRlKElz
V2F0Y2hlZCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgbm90aWZ5V3JpdGUoKQpAQCAtMTc0LDIw
ICsxODMsMzEgQEAgcHVibGljOgogICAgICAgICAgICAgZmF0KCktPm5vdGlmeVdyaXRlKCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCEobV9kYXRhICYgSXNX
YXRjaGVkRmxhZykpCisgICAgICAgIGlmIChkZWNvZGVTdGF0ZShtX2RhdGEpID09IENsZWFyV2F0
Y2hwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9kYXRhIHw9IElzSW52YWxp
ZGF0ZWRGbGFnOworICAgICAgICBtX2RhdGEgPSBlbmNvZGVTdGF0ZShJc0ludmFsaWRhdGVkKTsK
ICAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKICAgICB9CiAgICAgCiBwcml2YXRlOgog
ICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgSXNUaGluRmxhZyAgICAgICAgPSAxOwotICAgIHN0
YXRpYyBjb25zdCB1aW50cHRyX3QgSXNJbnZhbGlkYXRlZEZsYWcgPSAyOwotICAgIHN0YXRpYyBj
b25zdCB1aW50cHRyX3QgSXNXYXRjaGVkRmxhZyAgICAgPSA0OworICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3QgU3RhdGVNYXNrICAgICAgICAgPSA2OworICAgIHN0YXRpYyBjb25zdCB1aW50cHRy
X3QgU3RhdGVTaGlmdCAgICAgICAgPSAxOwogICAgIAogICAgIHN0YXRpYyBib29sIGlzVGhpbih1
aW50cHRyX3QgZGF0YSkgeyByZXR1cm4gZGF0YSAmIElzVGhpbkZsYWc7IH0KICAgICBzdGF0aWMg
Ym9vbCBpc0ZhdCh1aW50cHRyX3QgZGF0YSkgeyByZXR1cm4gIWlzVGhpbihkYXRhKTsgfQogICAg
IAorICAgIHN0YXRpYyBXYXRjaHBvaW50U3RhdGUgZGVjb2RlU3RhdGUodWludHB0cl90IGRhdGEp
CisgICAgeworICAgICAgICBBU1NFUlQoaXNUaGluKGRhdGEpKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdhdGNocG9pbnRTdGF0ZT4oKGRhdGEgJiBTdGF0ZU1hc2spID4+IFN0YXRlU2hp
ZnQpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdWludHB0cl90IGVuY29kZVN0YXRlKFdhdGNo
cG9pbnRTdGF0ZSBzdGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoc3RhdGUgPDwgU3RhdGVT
aGlmdCkgfCBJc1RoaW5GbGFnOworICAgIH0KKyAgICAKICAgICBib29sIGlzVGhpbigpIGNvbnN0
IHsgcmV0dXJuIGlzVGhpbihtX2RhdGEpOyB9CiAgICAgYm9vbCBpc0ZhdCgpIGNvbnN0IHsgcmV0
dXJuIGlzRmF0KG1fZGF0YSk7IH07CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDE1OTM4
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY2Nyw3ICs2NjcsNyBAQCB2b2lkIEpJVDo6ZW1pdFZhcklu
amVjdGlvbkNoZWNrKGJvb2wgbmVlCiB7CiAgICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNr
cykKICAgICAgICAgcmV0dXJuOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KE5vblplcm8s
IEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPnZhckluamVjdGlv
bldhdGNocG9pbnQoKS0+YWRkcmVzc09mSXNJbnZhbGlkYXRlZCgpKSkpOworICAgIGFkZFNsb3dD
YXNlKGJyYW5jaDgoRXF1YWwsIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+Z2xvYmFsT2Jq
ZWN0KCktPnZhckluamVjdGlvbldhdGNocG9pbnQoKS0+YWRkcmVzc09mU3RhdGUoKSksIFRydXN0
ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9z
dXJlKGludCBkc3QsIGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRo
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAJKHJldmlzaW9uIDE1OTM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzcsNyArNjM3LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZQogewogICAgIGlmICghbmVlZHNW
YXJJbmplY3Rpb25DaGVja3MpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRTbG93Q2FzZShicmFu
Y2hUZXN0OChOb25aZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmdsb2JhbE9iamVj
dCgpLT52YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFkZHJlc3NPZklzSW52YWxpZGF0ZWQoKSkp
KTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MobV9jb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpLT52YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFkZHJlc3NP
ZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRSZXNvbHZlQ2xvc3VyZShpbnQgZHN0LCBib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tz
LCB1bnNpZ25lZCBkZXB0aCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxNTkzODQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgbWFjcm8gdmFySW5qZWN0
aW9uQ2hlY2soc2xvd1BhdGgpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCiAgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCiAgICAgbG9hZHAgSlNHbG9iYWxP
YmplY3Q6Om1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludFt0MF0sIHQwCi0gICAgYnRibnogV2F0Y2hw
b2ludFNldDo6bV9pc0ludmFsaWRhdGVkW3QwXSwgc2xvd1BhdGgKKyAgICBiYmVxIFdhdGNocG9p
bnRTZXQ6Om1fc3RhdGVbdDBdLCBJc0ludmFsaWRhdGVkLCBzbG93UGF0aAogZW5kCiAKIG1hY3Jv
IHJlc29sdmVTY29wZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTU5Mzg0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtp
bmcgY29weSkKQEAgLTE4MDAsNyArMTgwMCw3IEBAIG1hY3JvIHZhckluamVjdGlvbkNoZWNrKHNs
b3dQYXRoKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAogICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAogICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX3Zh
ckluamVjdGlvbldhdGNocG9pbnRbdDBdLCB0MAotICAgIGJ0Ym56IFdhdGNocG9pbnRTZXQ6Om1f
aXNJbnZhbGlkYXRlZFt0MF0sIHNsb3dQYXRoCisgICAgYmJlcSBXYXRjaHBvaW50U2V0OjptX3N0
YXRlW3QwXSwgSXNJbnZhbGlkYXRlZCwgc2xvd1BhdGgKIGVuZAogCiBtYWNybyByZXNvbHZlU2Nv
cGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2
ICs3MSwxMSBAQCBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0g
RGVsZXRlZFZhbHVlVGFnCiBlbmQKIAorIyBXYXRjaHBvaW50IHN0YXRlcworY29uc3QgQ2xlYXJX
YXRjaHBvaW50ID0gMAorY29uc3QgSXNXYXRjaGVkID0gMQorY29uc3QgSXNJbnZhbGlkYXRlZCA9
IDIKKwogIyBTb21lIHJlZ2lzdGVyIGNvbnZlbnRpb25zLgogaWYgSlNWQUxVRTY0CiAgICAgIyAt
IFVzZSBhIHBhaXIgb2YgcmVnaXN0ZXJzIHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3Rl
ciBmb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAkocmV2aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDcgKzk2LDcgQEAgSlNGdW5j
dGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsTwogICAgIC8vIHdhcyBjbG9iYmVyZWQg
ZXhhY3RseSBvbmNlLCBidXQgdGhhdCBzZWVtcyBsaWtlIG92ZXJraWxsLiBJbiBhbG1vc3QgYWxs
IGNhc2VzIGl0IHdpbGwgYmUKICAgICAvLyBjbG9iYmVyZWQgb25jZSwgYW5kIGlmIGl0J3MgY2xv
YmJlcmVkIG1vcmUgdGhhbiBvbmNlLCB0aGF0IHdpbGwgcHJvYmFibHkgb25seSBvY2N1cgogICAg
IC8vIGJlZm9yZSB3ZSBzdGFydGVkIG9wdGltaXppbmcsIGFueXdheS4KLSAgICAsIG1fYWxsb2Nh
dGlvblByb2ZpbGVXYXRjaHBvaW50KEluaXRpYWxpemVkQmxpbmQpCisgICAgLCBtX2FsbG9jYXRp
b25Qcm9maWxlV2F0Y2hwb2ludChDbGVhcldhdGNocG9pbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaAkocmV2
aXNpb24gMTU5Mzg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBpbmxpbmUgSlNGdW5j
dGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIEZ1CiAgICAgOiBCYXNlKHZtLCBzY29wZS0+Z2xvYmFs
T2JqZWN0KCktPmZ1bmN0aW9uU3RydWN0dXJlKCkpCiAgICAgLCBtX2V4ZWN1dGFibGUodm0sIHRo
aXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlKHZtLCB0aGlzLCBzY29wZSkKLSAgICAsIG1f
YWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50KEluaXRpYWxpemVkQmxpbmQpIC8vIFNlZSBjb21t
ZW50IGluIEpTRnVuY3Rpb24uY3BwIGNvbmNlcm5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcgSW5p
dGlhbGl6ZWRCbGluZCBhcyBvcHBvc2VkIHRvIEluaXRpYWxpemVkV2F0Y2hpbmcuCisgICAgLCBt
X2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludChDbGVhcldhdGNocG9pbnQpIC8vIFNlZSBjb21t
ZW50IGluIEpTRnVuY3Rpb24uY3BwIGNvbmNlcm5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcgQ2xl
YXJXYXRjaHBvaW50IGFzIG9wcG9zZWQgdG8gSXNXYXRjaGVkLgogewogfQogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZp
c2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw5ICsxNTAsOSBAQCBjb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iCiAKIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9i
amVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUsIDApCi0gICAgLCBtX21hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KGFkb3B0UmVm
KG5ldyBXYXRjaHBvaW50U2V0KEluaXRpYWxpemVkV2F0Y2hpbmcpKSkKLSAgICAsIG1faGF2aW5n
QUJhZFRpbWVXYXRjaHBvaW50KGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KEluaXRpYWxpemVk
V2F0Y2hpbmcpKSkKLSAgICAsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludChhZG9wdFJlZihuZXcg
V2F0Y2hwb2ludFNldChJbml0aWFsaXplZFdhdGNoaW5nKSkpCisgICAgLCBtX21hc3F1ZXJhZGVz
QXNVbmRlZmluZWRXYXRjaHBvaW50KGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KElzV2F0Y2hl
ZCkpKQorICAgICwgbV9oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoYWRvcHRSZWYobmV3IFdhdGNo
cG9pbnRTZXQoSXNXYXRjaGVkKSkpCisgICAgLCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQoYWRv
cHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSXNXYXRjaGVkKSkpCiAgICAgLCBtX3dlYWtSYW5kb20o
T3B0aW9uczo6Zm9yY2VXZWFrUmFuZG9tU2VlZCgpID8gT3B0aW9uczo6Zm9yY2VkV2Vha1JhbmRv
bVNlZWQoKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51
bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSkKICAgICAsIG1fZXZhbEVuYWJs
ZWQodHJ1ZSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgPyBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSA6ICZzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwCShyZXZpc2lvbiAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgU3RydWN0dXJl
OjpTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iagogICAgICwgbV9nbG9iYWxPYmplY3Qodm0s
IHRoaXMsIGdsb2JhbE9iamVjdCwgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5QmVO
dWxsKQogICAgICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIHByb3RvdHlwZSkKICAgICAsIG1fY2xh
c3NJbmZvKGNsYXNzSW5mbykKLSAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSW5pdGlh
bGl6ZWRXYXRjaGluZykKKyAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSXNXYXRjaGVk
KQogICAgICwgbV9vZmZzZXQoaW52YWxpZE9mZnNldCkKICAgICAsIG1fdHlwZUluZm8odHlwZUlu
Zm8pCiAgICAgLCBtX2luZGV4aW5nVHlwZShpbmRleGluZ1R5cGUpCkBAIC0xODUsNyArMTg1LDcg
QEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoVk0mIHZtKQogICAgIDogSlNDZWxsKENyZWF0aW5nRWFy
bHlDZWxsKQogICAgICwgbV9wcm90b3R5cGUodm0sIHRoaXMsIGpzTnVsbCgpKQogICAgICwgbV9j
bGFzc0luZm8oaW5mbygpKQotICAgICwgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldChJbml0aWFs
aXplZFdhdGNoaW5nKQorICAgICwgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldChJc1dhdGNoZWQp
CiAgICAgLCBtX29mZnNldChpbnZhbGlkT2Zmc2V0KQogICAgICwgbV90eXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pCiAgICAgLCBtX2luZGV4aW5nVHlwZSgwKQpA
QCAtMjA3LDcgKzIwNyw3IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKFZNJiB2bSwgY29uc3QgU3Ry
dWMKICAgICA6IEpTQ2VsbCh2bSwgdm0uc3RydWN0dXJlU3RydWN0dXJlLmdldCgpKQogICAgICwg
bV9wcm90b3R5cGUodm0sIHRoaXMsIHByZXZpb3VzLT5zdG9yZWRQcm90b3R5cGUoKSkKICAgICAs
IG1fY2xhc3NJbmZvKHByZXZpb3VzLT5tX2NsYXNzSW5mbykKLSAgICAsIG1fdHJhbnNpdGlvbldh
dGNocG9pbnRTZXQoSW5pdGlhbGl6ZWRXYXRjaGluZykKKyAgICAsIG1fdHJhbnNpdGlvbldhdGNo
cG9pbnRTZXQoSXNXYXRjaGVkKQogICAgICwgbV9vZmZzZXQoaW52YWxpZE9mZnNldCkKICAgICAs
IG1fdHlwZUluZm8ocHJldmlvdXMtPnR5cGVJbmZvKCkudHlwZSgpLCBwcmV2aW91cy0+dHlwZUlu
Zm8oKS5mbGFncygpICYgflN0cnVjdHVyZUhhc1JhcmVEYXRhKQogICAgICwgbV9pbmRleGluZ1R5
cGUocHJldmlvdXMtPmluZGV4aW5nVHlwZUluY2x1ZGluZ0hpc3RvcnkoKSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAJKHJldmlzaW9uIDE1
OTM4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzIsMTMgKzcyLDcgQEAgdm9pZCBTeW1ib2xUYWJsZUVudHJ5Ojph
dHRlbXB0VG9XYXRjaCgpCiB7CiAgICAgRmF0RW50cnkqIGVudHJ5ID0gaW5mbGF0ZSgpOwogICAg
IGlmICghZW50cnktPm1fd2F0Y2hwb2ludHMpCi0gICAgICAgIGVudHJ5LT5tX3dhdGNocG9pbnRz
ID0gYWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSW5pdGlhbGl6ZWRXYXRjaGluZykpOwotfQot
Ci1ib29sKiBTeW1ib2xUYWJsZUVudHJ5OjphZGRyZXNzT2ZJc1dhdGNoZWQoKQotewotICAgIEFT
U0VSVChjb3VsZEJlV2F0Y2hlZCgpKTsKLSAgICByZXR1cm4gZmF0RW50cnkoKS0+bV93YXRjaHBv
aW50cy0+YWRkcmVzc09mSXNXYXRjaGVkKCk7CisgICAgICAgIGVudHJ5LT5tX3dhdGNocG9pbnRz
ID0gYWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSXNXYXRjaGVkKSk7CiB9CiAKIHZvaWQgU3lt
Ym9sVGFibGVFbnRyeTo6YWRkV2F0Y2hwb2ludChXYXRjaHBvaW50KiB3YXRjaHBvaW50KQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCShyZXZpc2lv
biAxNTkzODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsOCArMjMwLDYgQEAgc3RydWN0IFN5bWJvbFRhYmxlRW50
cnkgewogICAgIC8vIGltbWVkaWF0ZWx5IGFmdGVyIGEgY2FsbCB0byBhdHRlbXB0VG9XYXRjaCgp
LgogICAgIHZvaWQgYXR0ZW1wdFRvV2F0Y2goKTsKICAgICAKLSAgICBib29sKiBhZGRyZXNzT2ZJ
c1dhdGNoZWQoKTsKLSAgICAKICAgICB2b2lkIGFkZFdhdGNocG9pbnQoV2F0Y2hwb2ludCopOwog
ICAgIAogICAgIFdhdGNocG9pbnRTZXQqIHdhdGNocG9pbnRTZXQoKQo=
</data>
<flag name="review"
          id="240235"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>