<?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>75444</bug_id>
          
          <creation_ts>2012-01-02 13:03:11 -0800</creation_ts>
          <short_desc>Debugging WebProcess requires running a UI process first and waiting to attach</short_desc>
          <delta_ts>2012-01-04 20:19:50 -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>WebKit2</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>darin</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>528570</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-01-02 13:03:11 -0800</bug_when>
    <thetext>Debugging WebProcess requires running a UI process first and waiting to attach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528574</commentid>
    <comment_count>1</comment_count>
      <attachid>120892</attachid>
    <who name="">mitz</who>
    <bug_when>2012-01-02 13:16:30 -0800</bug_when>
    <thetext>Created attachment 120892
Allow WebProcess to launch a client process and add a --target-web-process option to the debug-* scripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528575</commentid>
    <comment_count>2</comment_count>
      <attachid>120893</attachid>
    <who name="">mitz</who>
    <bug_when>2012-01-02 13:18:23 -0800</bug_when>
    <thetext>Created attachment 120893
WebKit2 source diffs ignoring whitespace changes

Attaching an -x -w diff for easier reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529928</commentid>
    <comment_count>3</comment_count>
      <attachid>120893</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-01-04 18:11:19 -0800</bug_when>
    <thetext>Comment on attachment 120893
WebKit2 source diffs ignoring whitespace changes

View in context: https://bugs.webkit.org/attachment.cgi?id=120893&amp;action=review

&gt; Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm:95
&gt; +        // FIXME: It is not clear why we need to have this send right.

You need to pass a send right along to bootstrap_register2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529974</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-01-04 20:19:50 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r104115&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120892</attachid>
            <date>2012-01-02 13:16:30 -0800</date>
            <delta_ts>2012-01-04 18:11:32 -0800</delta_ts>
            <desc>Allow WebProcess to launch a client process and add a --target-web-process option to the debug-* scripts</desc>
            <filename>bug-75444-20120102131627.patch</filename>
            <type>text/plain</type>
            <size>25519</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzkxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAxLTAyICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgV2ViUHJvY2VzcyB0byBs
YXVuY2ggYSBjbGllbnQgcHJvY2VzcyBhbmQgYmVjb21lIGl0cyBmaXJzdCBXZWJQcm9jZXNzLgor
CisgICAgICAgIFRoaXMgaXMgdGhlIFdlYktpdDIgcGFydCBvZiBmaXhpbmcgPGh0dHA6Ly93ZWJr
aXQub3JnL2IvNzU0NDQ+IERlYnVnZ2luZyBXZWJQcm9jZXNzIHJlcXVpcmVzIHJ1bm5pbmcgYSBV
SSBwcm9jZXNzIGZpcnN0IGFuZCB3YWl0aW5nIHRvIGF0dGFjaAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01haW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NNYWluKTog
QWRkZWQgYSBuZXdsaW5lIHRvIHN0ZGVyciBvdXRwdXQuCisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVu
dmlyb25tZW50VmFyaWFibGVzOjpwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtleSk6IEFk
ZGVkLiBSZXR1cm5zIHRoZSBuYW1lCisgICAgICAgIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJs
ZSB0aGF0IG9wdGlvbmFsbHkgdGVsbHMgYSBVSSBwcm9jZXNzcyB0byBsb29rIGZvciBhIHByZWV4
aXN0aW5nCisgICAgICAgIHdlYiBwcm9jZXNzIGluc3RlYWQgb2YgbGF1bmNoaW5nIGEgbmV3IG9u
ZS4KKyAgICAgICAgKFdlYktpdDo6RW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJv
Y2Vzc1R5cGVLZXkpOiBBZGRlZC4gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUKKyAgICAgICAgZW52
aXJvbm1lbnQgdmFyaWFibGUgdGhhdCB0ZWxscyBhIFVJIHByb2Nlc3MgdGhlIHR5cGUgb2YgdGhl
IHByZWV4aXN0aW5nIHdlYiBwcm9jZXNzCisgICAgICAgIGluZGljYXRlZCBieSB0aGUgb3RoZXIg
dmFyaWFibGUuCisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZh
cmlhYmxlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nl
c3MpOiBDaGFuZ2VkIHRvIGxvb2sgZm9yIGEgcHJlZXhpc3Rpbmcgd2ViIHByb2Nlc3MgaWYKKyAg
ICAgICAgdGhlIGFmb3JlbWVudGlvbmVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0IGFu
ZCB0aGUgcHJlZXhpc3RpbmcgcHJvY2VzcyBoYXMgbm90IGJlZW4KKyAgICAgICAgdXNlZCB5ZXQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NNYWluKTogQ2hhbmdlZCB0byBsb29rIGZvciB0aGUgLWNsaWVu
dC1leGVjdXRhYmxlIGNvbW1hbmQtbGluZSBvcHRpb24sCisgICAgICAgIGFuZCBpZiBwcmVzZW50
LCBsYXVuY2ggdGhlIHNwZWNpZmllZCBleGVjdXRhYmxlLCBzZXR0aW5nIHZhcmlhYmxlcyBpbiBp
dHMgZW52aXJvbm1lbnQgdGhhdAorICAgICAgICB0ZWxsIGl0IHRvIHVzZSB0aGlzIHByZWV4aXN0
aW5nIHdlYiBwcm9jZXNzLCB0aGVuIHdhaXQgZm9yIGl0IHRvIHNlbmQgYSBzZW5kIHJpZ2h0IHRv
IGl0cworICAgICAgICBsaXN0ZW5pbmcgcG9ydC4KKwogMjAxMi0wMS0wMiAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWlu
TWFjLm1tCShyZXZpc2lvbiAxMDM5MDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYs
NyBAQCBpbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmCiAgICAgbWFjaF9w
b3J0X3Qgc2VydmVyUG9ydDsKICAgICBrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX2xvb2tf
dXAoYm9vdHN0cmFwX3BvcnQsIHNlcnZpY2VOYW1lLnV0ZjgoKS5kYXRhKCksICZzZXJ2ZXJQb3J0
KTsKICAgICBpZiAoa3IpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJib290c3RyYXBfbG9v
a191cCByZXN1bHQ6ICVzICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICJib290c3RyYXBfbG9va191cCByZXN1bHQ6ICVzICgleClcbiIs
IG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwogICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF
OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9F
bnZpcm9ubWVudFZhcmlhYmxlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxlcy5jcHAJKHJldmlzaW9uIDEw
MzkwOSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1l
bnRWYXJpYWJsZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNCArMTM2LDE4IEBAIHZvaWQg
RW52aXJvbm1lbnRWYXJpYWJsZXM6OmNvcHlFbnZpcm9ubWUKICAgICBtX2Vudmlyb25tZW50UG9p
bnRlciA9IG1fZW52aXJvbm1lbnRWYXJpYWJsZXMuZGF0YSgpOwogfQogCisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorCitjb25zdCBjaGFyKiBFbnZpcm9ubWVudFZhcmlh
Ymxlczo6cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKQoreworICAgIHJldHVybiAi
V0VCS0lUX1BSRUVYSVNUSU5HX1BST0NFU1NfU0VSVklDRV9OQU1FIjsKK30KKworY29uc3QgY2hh
ciogRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1R5cGVLZXkoKQorewor
ICAgIHJldHVybiAiV0VCS0lUX1BSRUVYSVNUSU5HX1BST0NFU1NfVFlQRSI7Cit9CisKKyNlbmRp
ZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZp
cm9ubWVudFZhcmlhYmxlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaAkocmV2aXNpb24gMTAzOTA5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlh
Ymxlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAKICAgICBj
aGFyKiogZW52aXJvbm1lbnRQb2ludGVyKCkgY29uc3QgeyByZXR1cm4gbV9lbnZpcm9ubWVudFBv
aW50ZXI7IH0KIAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogcHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKTsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogcHJlZXhpc3RpbmdQcm9jZXNzVHlwZUtleSgpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogdmFsdWVJZlZhcmlhYmxlSGFzTmFtZShjb25z
dCBjaGFyKiBlbnZpcm9ubWVudFZhcmlhYmxlLCBjb25zdCBjaGFyKiBuYW1lKSBjb25zdDsKICAg
ICBjb25zdCBjaGFyKiBjcmVhdGVTdHJpbmdGb3JWYXJpYWJsZShjb25zdCBjaGFyKiBuYW1lLCBj
b25zdCBjaGFyKiB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQkocmV2aXNpb24g
MTAzOTA5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc3LDExMCArNzcsMTQ0IEBAIHZvaWQg
UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAvLyBJbnNlcnQgYSBzZW5kIHJp
Z2h0IHNvIHdlIGNhbiBzZW5kIHRvIGl0LgogICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFj
aF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgbGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQ
RV9NQUtFX1NFTkQpOwogCi0gICAgTlNCdW5kbGUgKndlYktpdDJCdW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlV2l0aElkZW50aWZpZXI6QCJjb20uYXBwbGUuV2ViS2l0MiJdOwotICAgIE5TU3RyaW5n
ICpmcmFtZXdvcmtzUGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBidW5kbGVQYXRoXSBzdHJpbmdCeURl
bGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwotICAgIGNvbnN0IGNoYXIqIGZyYW1ld29ya0V4ZWN1
dGFibGVQYXRoID0gW1t3ZWJLaXQyQnVuZGxlIGV4ZWN1dGFibGVQYXRoXSBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb25dOwotCi0gICAgTlNTdHJpbmcgKnByb2Nlc3NQYXRoOwotICAgIGlmIChtX2xh
dW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQbHVnaW5Qcm9jZXNz
KQotICAgICAgICBwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlF
eGVjdXRhYmxlOkAiUGx1Z2luUHJvY2Vzcy5hcHAiXTsKLSAgICBlbHNlCi0gICAgICAgIHByb2Nl
c3NQYXRoID0gW3dlYktpdDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJXZWJQ
cm9jZXNzLmFwcCJdOworICAgIHBpZF90IHByb2Nlc3NJZGVudGlmaWVyID0gMDsKIAotICAgIE5T
U3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQ
YXRoOnByb2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CisgICAgRW52aXJvbm1lbnRWYXJpYWJs
ZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNl
TmFtZSA9IGVudmlyb25tZW50VmFyaWFibGVzLmdldChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJl
ZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKSk7CisgICAgUHJvY2Vzc1R5cGUgcHJlZXhp
c3RpbmdQcm9jZXNzVHlwZTsKKyAgICBpZiAocHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWUp
CisgICAgICAgIGdldFByb2Nlc3NUeXBlRnJvbVN0cmluZyhlbnZpcm9ubWVudFZhcmlhYmxlcy5n
ZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1R5cGVLZXkoKSksIHBy
ZWV4aXN0aW5nUHJvY2Vzc1R5cGUpOworCisgICAgYm9vbCB1c2VQcmVleGlzdGluZ1Byb2Nlc3Mg
PSBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSAmJiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBl
ID09IG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZTsKKworICAgIGlmICh1c2VQcmVleGlzdGlu
Z1Byb2Nlc3MpIHsKKyAgICAgICAgbWFjaF9wb3J0X3QgbG9va3VwUG9ydDsKKyAgICAgICAgYm9v
dHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3BvcnQsIHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VO
YW1lLCAmbG9va3VwUG9ydCk7CisKKyAgICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgaGVhZGVyOwor
ICAgICAgICBoZWFkZXIubXNnaF9iaXRzID0gTUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9D
T1BZX1NFTkQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICAgICAgaGVhZGVyLm1zZ2hf
aWQgPSAwOworICAgICAgICBoZWFkZXIubXNnaF9sb2NhbF9wb3J0ID0gbGlzdGVuaW5nUG9ydDsK
KyAgICAgICAgaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQgPSBsb29rdXBQb3J0OworICAgICAgICBo
ZWFkZXIubXNnaF9zaXplID0gc2l6ZW9mKGhlYWRlcik7CisgICAgICAgIGtlcm5fcmV0dXJuX3Qg
a3IgPSBtYWNoX21zZygmaGVhZGVyLCBNQUNIX1NFTkRfTVNHLCBzaXplb2YoaGVhZGVyKSwgMCwg
TUFDSF9QT1JUX05VTEwsIE1BQ0hfTVNHX1RJTUVPVVRfTk9ORSwgTUFDSF9QT1JUX05VTEwpOwor
CisgICAgICAgIGlmIChrcikgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gcGlj
ayB1cCBwcmVleGlzdGluZyBwcm9jZXNzIGF0ICVzICgleCkuIExhdW5jaGluZyBhIG5ldyBwcm9j
ZXNzIG9mIHR5cGUgJXMgaW5zdGVhZC4iLCBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSwg
a3IsIHByb2Nlc3NUeXBlQXNTdHJpbmcobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSk7Cisg
ICAgICAgICAgICB1c2VQcmVleGlzdGluZ1Byb2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgfQogCi0g
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZkxvY2FsaXphdGlvbihBZG9wdENGLCBXS0NvcHlD
RkxvY2FsaXphdGlvblByZWZlcnJlZE5hbWUoTlVMTCkpOwotICAgIENTdHJpbmcgbG9jYWxpemF0
aW9uID0gU3RyaW5nKGNmTG9jYWxpemF0aW9uLmdldCgpKS51dGY4KCk7Ci0gICAgCi0gICAgLy8g
TWFrZSBhIHVuaXF1ZSwgcGVyIHBpZCwgcGVyIHByb2Nlc3MgbGF1bmNoZXIgd2ViIHByb2Nlc3Mg
c2VydmljZSBuYW1lLgotICAgIENTdHJpbmcgc2VydmljZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgi
Y29tLmFwcGxlLldlYktpdC5XZWJQcm9jZXNzLSVkLSVwIiwgZ2V0cGlkKCksIHRoaXMpLnV0Zjgo
KTsKKyAgICAgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgbG9va3Vw
UG9ydCk7CiAKLSAgICBjb25zdCBjaGFyKiBhcmdzW10gPSB7IFtwcm9jZXNzQXBwRXhlY3V0YWJs
ZVBhdGggZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSwgZnJhbWV3b3JrRXhlY3V0YWJsZVBhdGgs
ICItdHlwZSIsIHByb2Nlc3NUeXBlQXNTdHJpbmcobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBl
KSwgIi1zZXJ2aWNlbmFtZSIsIHNlcnZpY2VOYW1lLmRhdGEoKSwgIi1sb2NhbGl6YXRpb24iLCBs
b2NhbGl6YXRpb24uZGF0YSgpLCAwIH07CisgICAgICAgIHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZp
Y2VOYW1lID0gMDsKKyAgICB9CiAKLSAgICAvLyBSZWdpc3RlciBvdXJzZWx2ZXMuCi0gICAga2Vy
bl9yZXR1cm5fdCBrciA9IGJvb3RzdHJhcF9yZWdpc3RlcjIoYm9vdHN0cmFwX3BvcnQsIGNvbnN0
X2Nhc3Q8Y2hhcio+KHNlcnZpY2VOYW1lLmRhdGEoKSksIGxpc3RlbmluZ1BvcnQsIDApOwotICAg
IEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VTUyk7CisgICAgaWYgKCF1c2VQcmVl
eGlzdGluZ1Byb2Nlc3MpIHsKKyNlbmRpZgorICAgICAgICBOU0J1bmRsZSAqd2ViS2l0MkJ1bmRs
ZSA9IFtOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQyIl07
CisgICAgICAgIE5TU3RyaW5nICpmcmFtZXdvcmtzUGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBidW5k
bGVQYXRoXSBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgICAgICBjb25z
dCBjaGFyKiBmcmFtZXdvcmtFeGVjdXRhYmxlUGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBleGVjdXRh
YmxlUGF0aF0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXTsKKworICAgICAgICBOU1N0cmluZyAq
cHJvY2Vzc1BhdGg7CisgICAgICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0g
UHJvY2Vzc0xhdW5jaGVyOjpQbHVnaW5Qcm9jZXNzKQorICAgICAgICAgICAgcHJvY2Vzc1BhdGgg
PSBbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJsZTpAIlBsdWdpblByb2Nl
c3MuYXBwIl07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByb2Nlc3NQYXRoID0gW3dlYktp
dDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJXZWJQcm9jZXNzLmFwcCJdOwog
Ci0gICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0cjsKLSAgICBwb3NpeF9zcGF3bmF0dHJfaW5pdCgm
YXR0cik7CisgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05T
QnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CiAKLSAg
ICBzaG9ydCBmbGFncyA9IDA7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2ZMb2Nh
bGl6YXRpb24oQWRvcHRDRiwgV0tDb3B5Q0ZMb2NhbGl6YXRpb25QcmVmZXJyZWROYW1lKE5VTEwp
KTsKKyAgICAgICAgQ1N0cmluZyBsb2NhbGl6YXRpb24gPSBTdHJpbmcoY2ZMb2NhbGl6YXRpb24u
Z2V0KCkpLnV0ZjgoKTsKKyAgICAgICAgCisgICAgICAgIC8vIE1ha2UgYSB1bmlxdWUsIHBlciBw
aWQsIHBlciBwcm9jZXNzIGxhdW5jaGVyIHdlYiBwcm9jZXNzIHNlcnZpY2UgbmFtZS4KKyAgICAg
ICAgQ1N0cmluZyBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJjb20uYXBwbGUuV2ViS2l0
LldlYlByb2Nlc3MtJWQtJXAiLCBnZXRwaWQoKSwgdGhpcykudXRmOCgpOwogCi0gICAgLy8gV2Ug
d2FudCBvdXIgcHJvY2VzcyB0byByZWNlaXZlIGFsbCBzaWduYWxzLgotICAgIHNpZ3NldF90IHNp
Z25hbE1hc2tTZXQ7Ci0gICAgc2lnZW1wdHlzZXQoJnNpZ25hbE1hc2tTZXQpOworICAgICAgICBj
b25zdCBjaGFyKiBhcmdzW10gPSB7IFtwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uXSwgZnJhbWV3b3JrRXhlY3V0YWJsZVBhdGgsICItdHlwZSIsIHByb2Nl
c3NUeXBlQXNTdHJpbmcobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSwgIi1zZXJ2aWNlbmFt
ZSIsIHNlcnZpY2VOYW1lLmRhdGEoKSwgIi1sb2NhbGl6YXRpb24iLCBsb2NhbGl6YXRpb24uZGF0
YSgpLCAwIH07CiAKLSAgICBwb3NpeF9zcGF3bmF0dHJfc2V0c2lnbWFzaygmYXR0ciwgJnNpZ25h
bE1hc2tTZXQpOwotICAgIGZsYWdzIHw9IFBPU0lYX1NQQVdOX1NFVFNJR01BU0s7CisgICAgICAg
IC8vIFJlZ2lzdGVyIG91cnNlbHZlcy4KKyAgICAgICAga2Vybl9yZXR1cm5fdCBrciA9IGJvb3Rz
dHJhcF9yZWdpc3RlcjIoYm9vdHN0cmFwX3BvcnQsIGNvbnN0X2Nhc3Q8Y2hhcio+KHNlcnZpY2VO
YW1lLmRhdGEoKSksIGxpc3RlbmluZ1BvcnQsIDApOworICAgICAgICBBU1NFUlRfVU5VU0VEKGty
LCBrciA9PSBLRVJOX1NVQ0NFU1MpOwogCi0gICAgLy8gRGV0ZXJtaW5lIHRoZSBhcmNoaXRlY3R1
cmUgdG8gdXNlLgotICAgIGNwdV90eXBlX3QgYXJjaGl0ZWN0dXJlID0gbV9sYXVuY2hPcHRpb25z
LmFyY2hpdGVjdHVyZTsKLSAgICBpZiAoYXJjaGl0ZWN0dXJlID09IExhdW5jaE9wdGlvbnM6Ok1h
dGNoQ3VycmVudEFyY2hpdGVjdHVyZSkKLSAgICAgICAgYXJjaGl0ZWN0dXJlID0gX05TR2V0TWFj
aEV4ZWN1dGVIZWFkZXIoKS0+Y3B1dHlwZTsKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0
cjsKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX2luaXQoJmF0dHIpOwogCi0gICAgY3B1X3R5cGVf
dCBjcHVUeXBlc1tdID0geyBhcmNoaXRlY3R1cmUgfTsKLSAgICBzaXplX3Qgb3V0Q291bnQgPSAw
OwotICAgIHBvc2l4X3NwYXduYXR0cl9zZXRiaW5wcmVmX25wKCZhdHRyLCAxLCBjcHVUeXBlcywg
Jm91dENvdW50KTsKKyAgICAgICAgc2hvcnQgZmxhZ3MgPSAwOwogCi0gICAgLy8gU3RhcnQgc3Vz
cGVuZGVkIHNvIHdlIGNhbiBzZXQgdXAgdGhlIHRlcm1pbmF0aW9uIG5vdGlmaWNhdGlvbiBoYW5k
bGVyLgotICAgIGZsYWdzIHw9IFBPU0lYX1NQQVdOX1NUQVJUX1NVU1BFTkRFRDsKKyAgICAgICAg
Ly8gV2Ugd2FudCBvdXIgcHJvY2VzcyB0byByZWNlaXZlIGFsbCBzaWduYWxzLgorICAgICAgICBz
aWdzZXRfdCBzaWduYWxNYXNrU2V0OworICAgICAgICBzaWdlbXB0eXNldCgmc2lnbmFsTWFza1Nl
dCk7CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECi0gICAgc3RhdGljIGNvbnN0
IGludCBhbGxvd0V4ZWN1dGFibGVIZWFwRmxhZyA9IDB4MjAwMDsKLSAgICBpZiAobV9sYXVuY2hP
cHRpb25zLmV4ZWN1dGFibGVIZWFwKQotICAgICAgICBmbGFncyB8PSBhbGxvd0V4ZWN1dGFibGVI
ZWFwRmxhZzsKLSNlbmRpZgorICAgICAgICBwb3NpeF9zcGF3bmF0dHJfc2V0c2lnbWFzaygmYXR0
ciwgJnNpZ25hbE1hc2tTZXQpOworICAgICAgICBmbGFncyB8PSBQT1NJWF9TUEFXTl9TRVRTSUdN
QVNLOwogCi0gICAgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZhdHRyLCBmbGFncyk7CisgICAg
ICAgIC8vIERldGVybWluZSB0aGUgYXJjaGl0ZWN0dXJlIHRvIHVzZS4KKyAgICAgICAgY3B1X3R5
cGVfdCBhcmNoaXRlY3R1cmUgPSBtX2xhdW5jaE9wdGlvbnMuYXJjaGl0ZWN0dXJlOworICAgICAg
ICBpZiAoYXJjaGl0ZWN0dXJlID09IExhdW5jaE9wdGlvbnM6Ok1hdGNoQ3VycmVudEFyY2hpdGVj
dHVyZSkKKyAgICAgICAgICAgIGFyY2hpdGVjdHVyZSA9IF9OU0dldE1hY2hFeGVjdXRlSGVhZGVy
KCktPmNwdXR5cGU7CiAKLSAgICBwaWRfdCBwcm9jZXNzSWRlbnRpZmllcjsKKyAgICAgICAgY3B1
X3R5cGVfdCBjcHVUeXBlc1tdID0geyBhcmNoaXRlY3R1cmUgfTsKKyAgICAgICAgc2l6ZV90IG91
dENvdW50ID0gMDsKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGJpbnByZWZfbnAoJmF0dHIs
IDEsIGNwdVR5cGVzLCAmb3V0Q291bnQpOwogCi0gICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52
aXJvbm1lbnRWYXJpYWJsZXM7CisgICAgICAgIC8vIFN0YXJ0IHN1c3BlbmRlZCBzbyB3ZSBjYW4g
c2V0IHVwIHRoZSB0ZXJtaW5hdGlvbiBub3RpZmljYXRpb24gaGFuZGxlci4KKyAgICAgICAgZmxh
Z3MgfD0gUE9TSVhfU1BBV05fU1RBUlRfU1VTUEVOREVEOwogCiAjaWZuZGVmIEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRAotICAgIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3RvciBlbnZp
cm9ubWVudEV4dHJhY3RvcihbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4ZWN1dGFibGVQYXRoXSwg
YXJjaGl0ZWN0dXJlKTsKLSAgICBlbnZpcm9ubWVudEV4dHJhY3Rvci5nZXRFeHRyYWN0ZWRFbnZp
cm9ubWVudFZhcmlhYmxlcyhlbnZpcm9ubWVudFZhcmlhYmxlcyk7CisgICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgYWxsb3dFeGVjdXRhYmxlSGVhcEZsYWcgPSAweDIwMDA7CisgICAgICAgIGlmICht
X2xhdW5jaE9wdGlvbnMuZXhlY3V0YWJsZUhlYXApCisgICAgICAgICAgICBmbGFncyB8PSBhbGxv
d0V4ZWN1dGFibGVIZWFwRmxhZzsKICNlbmRpZgogCi0gICAgLy8gVG8gbWFrZSBlbmdpbmVlcmlu
ZyBidWlsZHMgd29yaywgaWYgdGhlIHBhdGggaXMgb3V0c2lkZSBvZiAvU3lzdGVtIHNldCB1cAot
ICAgIC8vIERZTERfRlJBTUVXT1JLX1BBVEggdG8gcGljayB1cCBvdGhlciBmcmFtZXdvcmtzLCBi
dXQgZG9uJ3QgZG8gaXQgZm9yIHRoZQotICAgIC8vIHByb2R1Y3Rpb24gY29uZmlndXJhdGlvbiBi
ZWNhdXNlIGl0IGludm9sdmVzIGV4dHJhIGZpbGUgc3lzdGVtIGFjY2Vzcy4KLSAgICBpZiAoIVtm
cmFtZXdvcmtzUGF0aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdKQotICAgICAgICBlbnZpcm9ubWVu
dFZhcmlhYmxlcy5hcHBlbmRWYWx1ZSgiRFlMRF9GUkFNRVdPUktfUEFUSCIsIFtmcmFtZXdvcmtz
UGF0aCBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb25dLCAnOicpOwotCi0gICAgTlNTdHJpbmcgKnBy
b2Nlc3NTaGltUGF0aE5TU3RyaW5nID0gbmlsOwotICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJv
Y2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQbHVnaW5Qcm9jZXNzKQotICAgICAgICBwcm9j
ZXNzU2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5
RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50
OkAiUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIiXTsKLSAgICBlbHNlIGlmIChtX2xhdW5jaE9wdGlv
bnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpXZWJQcm9jZXNzKQotICAgICAgICBw
cm9jZXNzU2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmlu
Z0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9u
ZW50OkAiV2ViUHJvY2Vzc1NoaW0uZHlsaWIiXTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRo
ZSBzaGltIGxpYnJhcnkgZmlsZSBleGlzdHMgYW5kIGluc2VydCBpdC4KLSAgICBpZiAocHJvY2Vz
c1NoaW1QYXRoTlNTdHJpbmcpIHsKLSAgICAgICAgY29uc3QgY2hhciogcHJvY2Vzc1NoaW1QYXRo
ID0gW3Byb2Nlc3NTaGltUGF0aE5TU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl07Ci0g
ICAgICAgIHN0cnVjdCBzdGF0IHN0YXRCdWY7Ci0gICAgICAgIGlmIChzdGF0KHByb2Nlc3NTaGlt
UGF0aCwgJnN0YXRCdWYpID09IDAgJiYgKHN0YXRCdWYuc3RfbW9kZSAmIFNfSUZNVCkgPT0gU19J
RlJFRykKLSAgICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzLmFwcGVuZFZhbHVlKCJEWUxE
X0lOU0VSVF9MSUJSQVJJRVMiLCBwcm9jZXNzU2hpbVBhdGgsICc6Jyk7Ci0gICAgfQotICAgIAot
ICAgIGludCByZXN1bHQgPSBwb3NpeF9zcGF3bigmcHJvY2Vzc0lkZW50aWZpZXIsIGFyZ3NbMF0s
IDAsICZhdHRyLCBjb25zdF9jYXN0PGNoYXIqKj4oYXJncyksIGVudmlyb25tZW50VmFyaWFibGVz
LmVudmlyb25tZW50UG9pbnRlcigpKTsKLQotICAgIHBvc2l4X3NwYXduYXR0cl9kZXN0cm95KCZh
dHRyKTsKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZhdHRyLCBmbGFncyk7CiAK
LSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAvLyBTZXQgdXAgdGhlIHRlcm1pbmF0aW9uIG5v
dGlmaWNhdGlvbiBoYW5kbGVyIGFuZCB0aGVuIGFzayB0aGUgY2hpbGQgcHJvY2VzcyB0byBjb250
aW51ZS4KLSAgICAgICAgc2V0VXBUZXJtaW5hdGlvbk5vdGlmaWNhdGlvbkhhbmRsZXIocHJvY2Vz
c0lkZW50aWZpZXIpOwotICAgICAgICBraWxsKHByb2Nlc3NJZGVudGlmaWVyLCBTSUdDT05UKTsK
LSAgICB9IGVsc2UgewotICAgICAgICAvLyBXZSBmYWlsZWQgdG8gbGF1bmNoLiBSZWxlYXNlIHRo
ZSBzZW5kIHJpZ2h0LgotICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2Vs
ZigpLCBsaXN0ZW5pbmdQb3J0KTsKKyNpZm5kZWYgQlVJTERJTkdfT05fU05PV19MRU9QQVJECisg
ICAgICAgIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3RvciBlbnZpcm9ubWVudEV4dHJh
Y3RvcihbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4ZWN1dGFibGVQYXRoXSwgYXJjaGl0ZWN0dXJl
KTsKKyAgICAgICAgZW52aXJvbm1lbnRFeHRyYWN0b3IuZ2V0RXh0cmFjdGVkRW52aXJvbm1lbnRW
YXJpYWJsZXMoZW52aXJvbm1lbnRWYXJpYWJsZXMpOworI2VuZGlmCiAKLSAgICAgICAgLy8gQW5k
IHRoZSByZWNlaXZlIHJpZ2h0LgotICAgICAgICBtYWNoX3BvcnRfbW9kX3JlZnMobWFjaF90YXNr
X3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKKyAg
ICAgICAgLy8gVG8gbWFrZSBlbmdpbmVlcmluZyBidWlsZHMgd29yaywgaWYgdGhlIHBhdGggaXMg
b3V0c2lkZSBvZiAvU3lzdGVtIHNldCB1cAorICAgICAgICAvLyBEWUxEX0ZSQU1FV09SS19QQVRI
IHRvIHBpY2sgdXAgb3RoZXIgZnJhbWV3b3JrcywgYnV0IGRvbid0IGRvIGl0IGZvciB0aGUKKyAg
ICAgICAgLy8gcHJvZHVjdGlvbiBjb25maWd1cmF0aW9uIGJlY2F1c2UgaXQgaW52b2x2ZXMgZXh0
cmEgZmlsZSBzeXN0ZW0gYWNjZXNzLgorICAgICAgICBpZiAoIVtmcmFtZXdvcmtzUGF0aCBoYXNQ
cmVmaXg6QCIvU3lzdGVtLyJdKQorICAgICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXMuYXBw
ZW5kVmFsdWUoIkRZTERfRlJBTUVXT1JLX1BBVEgiLCBbZnJhbWV3b3Jrc1BhdGggZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uXSwgJzonKTsKKworICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc1NoaW1Q
YXRoTlNTdHJpbmcgPSBuaWw7CisgICAgICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5
cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQbHVnaW5Qcm9jZXNzKQorICAgICAgICAgICAgcHJvY2Vz
c1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURl
bGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpA
IlBsdWdpblByb2Nlc3NTaGltLmR5bGliIl07CisgICAgICAgIGVsc2UgaWYgKG1fbGF1bmNoT3B0
aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OldlYlByb2Nlc3MpCisgICAgICAg
ICAgICBwcm9jZXNzU2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRo
IHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRo
Q29tcG9uZW50OkAiV2ViUHJvY2Vzc1NoaW0uZHlsaWIiXTsKKworICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aGUgc2hpbSBsaWJyYXJ5IGZpbGUgZXhpc3RzIGFuZCBpbnNlcnQgaXQuCisgICAg
ICAgIGlmIChwcm9jZXNzU2hpbVBhdGhOU1N0cmluZykgeworICAgICAgICAgICAgY29uc3QgY2hh
ciogcHJvY2Vzc1NoaW1QYXRoID0gW3Byb2Nlc3NTaGltUGF0aE5TU3RyaW5nIGZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbl07CisgICAgICAgICAgICBzdHJ1Y3Qgc3RhdCBzdGF0QnVmOworICAgICAg
ICAgICAgaWYgKHN0YXQocHJvY2Vzc1NoaW1QYXRoLCAmc3RhdEJ1ZikgPT0gMCAmJiAoc3RhdEJ1
Zi5zdF9tb2RlICYgU19JRk1UKSA9PSBTX0lGUkVHKQorICAgICAgICAgICAgICAgIGVudmlyb25t
ZW50VmFyaWFibGVzLmFwcGVuZFZhbHVlKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCBwcm9jZXNz
U2hpbVBhdGgsICc6Jyk7CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGxpc3RlbmluZ1Bv
cnQgPSBNQUNIX1BPUlRfTlVMTDsKLSAgICAgICAgcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworICAg
ICAgICBpbnQgcmVzdWx0ID0gcG9zaXhfc3Bhd24oJnByb2Nlc3NJZGVudGlmaWVyLCBhcmdzWzBd
LCAwLCAmYXR0ciwgY29uc3RfY2FzdDxjaGFyKio+KGFyZ3MpLCBlbnZpcm9ubWVudFZhcmlhYmxl
cy5lbnZpcm9ubWVudFBvaW50ZXIoKSk7CisKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX2Rlc3Ry
b3koJmF0dHIpOworCisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICAvLyBTZXQg
dXAgdGhlIHRlcm1pbmF0aW9uIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGFuZCB0aGVuIGFzayB0aGUg
Y2hpbGQgcHJvY2VzcyB0byBjb250aW51ZS4KKyAgICAgICAgICAgIHNldFVwVGVybWluYXRpb25O
b3RpZmljYXRpb25IYW5kbGVyKHByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGtpbGwo
cHJvY2Vzc0lkZW50aWZpZXIsIFNJR0NPTlQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gV2UgZmFpbGVkIHRvIGxhdW5jaC4gUmVsZWFzZSB0aGUgc2VuZCByaWdodC4KKyAgICAg
ICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1Bv
cnQpOworCisgICAgICAgICAgICAvLyBBbmQgdGhlIHJlY2VpdmUgcmlnaHQuCisgICAgICAgICAg
ICBtYWNoX3BvcnRfbW9kX3JlZnMobWFjaF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgTUFD
SF9QT1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGlz
dGVuaW5nUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOworICAgICAgICAgICAgcHJvY2Vzc0lkZW50aWZp
ZXIgPSAwOworICAgICAgICB9CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogICAgIH0KLSAgICAKKyNlbmRpZgorCiAgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5n
IHRoZSBwcm9jZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCiAgICAgUnVu
TG9vcDo6bWFpbigpLT5kaXNwYXRjaChiaW5kKCZQcm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExh
dW5jaGluZ1Byb2Nlc3MsIHRoaXMsIHByb2Nlc3NJZGVudGlmaWVyLCBsaXN0ZW5pbmdQb3J0KSk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzTWFpbk1hYy5tbQkocmV2aXNpb24gMTAzOTA5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIkVudmlyb25tZW50VXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgogI2ltcG9ydCAiUnVu
TG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJm
YWNlLmgiCkBAIC0zOCw2ICszOSw3IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KICNpbXBvcnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CiAjaW1wb3J0IDxzaWduYWwu
aD4KKyNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8c3lzZXhp
dHMuaD4KICNpbXBvcnQgPHVuaXN0ZC5oPgpAQCAtNDYsNiArNDgsMTAgQEAKICNpbXBvcnQgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAor
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK2V4dGVybiAiQyIga2Vybl9y
ZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9y
dF90LCB1aW50NjRfdCk7CisjZW5kaWYKKwogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXZWJO
U0FwcGxpY2F0aW9uRGV0YWlscykKIC0odm9pZClfaW5zdGFsbEF1dG9yZWxlYXNlUG9vbHNPbkN1
cnJlbnRUaHJlYWRJZk5lY2Vzc2FyeTsKIEBlbmQKQEAgLTU4LDI1ICs2NCw4MCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21t
YW5kTGluZSkKIHsKLSNpZmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKICAgICAvLyBSZW1v
dmUgdGhlIFdlYlByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52
aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgLy8gdGhl
IFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCiAgICAg
RW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9J
TlNFUlRfTElCUkFSSUVTIiwgIi9XZWJQcm9jZXNzU2hpbS5keWxpYiIpOwotI2VuZGlmCiAKICAg
ICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGlu
aXRdOwogCiAgICAgU3RyaW5nIHNlcnZpY2VOYW1lID0gY29tbWFuZExpbmVbInNlcnZpY2VuYW1l
Il07Ci0gICAgaWYgKHNlcnZpY2VOYW1lLmlzRW1wdHkoKSkKKyAgICBTdHJpbmcgY2xpZW50RXhl
Y3V0YWJsZTsKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgY2xp
ZW50RXhlY3V0YWJsZSA9IGNvbW1hbmRMaW5lWyJjbGllbnQtZXhlY3V0YWJsZSJdOworI2VuZGlm
CisKKyAgICBpZiAoc2VydmljZU5hbWUuaXNFbXB0eSgpICYmIGNsaWVudEV4ZWN1dGFibGUuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogCiAgICAgLy8gR2V0IHRoZSBz
ZXJ2ZXIgcG9ydC4KICAgICBtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0OwotICAgIGtlcm5fcmV0dXJu
X3Qga3IgPSBib290c3RyYXBfbG9va191cChib290c3RyYXBfcG9ydCwgc2VydmljZU5hbWUudXRm
OCgpLmRhdGEoKSwgJnNlcnZlclBvcnQpOwotICAgIGlmIChrcikgewotICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgImJvb3RzdHJhcF9sb29rX3VwIHJlc3VsdDogJXMgKCV4KSIsIG1hY2hfZXJyb3Jf
c3RyaW5nKGtyKSwga3IpOwotICAgICAgICByZXR1cm4gMjsKKyAgICBpZiAoY2xpZW50RXhlY3V0
YWJsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAga2Vybl9yZXR1cm5fdCBrciA9IGJvb3RzdHJhcF9s
b29rX3VwKGJvb3RzdHJhcF9wb3J0LCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCAmc2VydmVy
UG9ydCk7CisgICAgICAgIGlmIChrcikgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJi
b290c3RyYXBfbG9va191cCByZXN1bHQ6ICVzICgleClcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGty
KSwga3IpOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICB9CisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIGVsc2UgeworICAgICAgICBtYWNo
X3BvcnRfbmFtZV90IHB1Ymxpc2hlZFNlcnZpY2U7CisgICAgICAgIG1hY2hfcG9ydF9hbGxvY2F0
ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJnB1Ymxpc2hlZFNl
cnZpY2UpOworICAgICAgICAvLyBGSVhNRTogSXQgaXMgbm90IGNsZWFyIHdoeSB3ZSBuZWVkIHRv
IGhhdmUgdGhpcyBzZW5kIHJpZ2h0LgorICAgICAgICBtYWNoX3BvcnRfaW5zZXJ0X3JpZ2h0KG1h
Y2hfdGFza19zZWxmKCksIHB1Ymxpc2hlZFNlcnZpY2UsIHB1Ymxpc2hlZFNlcnZpY2UsIE1BQ0hf
TVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICAgICAgLy8gTWFrZSBpdCBwb3NzaWJsZSB0byBsb29r
IHVwLgorICAgICAgICBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJjb20uYXBwbGUuV2Vi
S2l0LldlYlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7CisgICAgICAgIGlmIChrZXJuX3JldHVybl90
IGtyID0gYm9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29uc3RfY2FzdDxjaGFy
Kj4oc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxpc2hlZFNlcnZpY2UsIDApKSB7Cisg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byByZWdpc3RlciBzZXJ2aWNlIG5h
bWUgXCIlc1wiLiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCBtYWNoX2Vy
cm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Cisg
ICAgICAgIH0KKworICAgICAgICBDU3RyaW5nIGNvbW1hbmQgPSBjbGllbnRFeGVjdXRhYmxlLnV0
ZjgoKTsKKyAgICAgICAgY29uc3QgY2hhciogYXJnc1tdID0geyBjb21tYW5kLmRhdGEoKSwgMCB9
OworCisgICAgICAgIEVudmlyb25tZW50VmFyaWFibGVzIGVudmlyb25tZW50VmFyaWFibGVzOwor
ICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlcy5zZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnBy
ZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lS2V5KCksIHNlcnZpY2VOYW1lLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlcy5zZXQoRW52aXJvbm1lbnRWYXJpYWJs
ZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1R5cGVLZXkoKSwgY29tbWFuZExpbmVbInR5cGUiXS51dGY4
KCkuZGF0YSgpKTsKKworICAgICAgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfdCBmaWxlQWN0
aW9uczsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2luaXQoJmZpbGVBY3Rpb25z
KTsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGluaGVyaXRfbnAoJmZpbGVB
Y3Rpb25zLCBTVERJTl9GSUxFTk8pOworICAgICAgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNf
YWRkaW5oZXJpdF9ucCgmZmlsZUFjdGlvbnMsIFNURE9VVF9GSUxFTk8pOworICAgICAgICBwb3Np
eF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkaW5oZXJpdF9ucCgmZmlsZUFjdGlvbnMsIFNUREVSUl9G
SUxFTk8pOworCisgICAgICAgIHBvc2l4X3NwYXduYXR0cl90IGF0dHJpYnV0ZXM7CisgICAgICAg
IHBvc2l4X3NwYXduYXR0cl9pbml0KCZhdHRyaWJ1dGVzKTsKKyAgICAgICAgcG9zaXhfc3Bhd25h
dHRyX3NldGZsYWdzKCZhdHRyaWJ1dGVzLCBQT1NJWF9TUEFXTl9DTE9FWEVDX0RFRkFVTFQpOwor
CisgICAgICAgIGludCBzcGF3blJlc3VsdCA9IHBvc2l4X3NwYXduKDAsIGNvbW1hbmQuZGF0YSgp
LCAmZmlsZUFjdGlvbnMsICZhdHRyaWJ1dGVzLCBjb25zdF9jYXN0PGNoYXIqKj4oYXJncyksIGVu
dmlyb25tZW50VmFyaWFibGVzLmVudmlyb25tZW50UG9pbnRlcigpKTsKKyAgICAgICAgaWYgKHNw
YXduUmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIDI7CisKKyAgICAgICAgbWFjaF9tc2dfZW1w
dHlfcmN2X3QgbWVzc2FnZTsKKyAgICAgICAgaWYgKGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21z
ZygmbWVzc2FnZS5oZWFkZXIsIE1BQ0hfUkNWX01TRywgMCwgc2l6ZW9mKG1lc3NhZ2UpLCBwdWJs
aXNoZWRTZXJ2aWNlLCBNQUNIX01TR19USU1FT1VUX05PTkUsIE1BQ0hfUE9SVF9OVUxMKSkgewor
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcmVjZWl2ZSBwb3J0IGZyb20g
dGhlIFVJIHByb2Nlc3MuICVzICgleClcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwor
ICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgfQorCisgICAgICAgIG1h
Y2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBwdWJsaXNoZWRTZXJ2aWNlLCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgLTEpOworICAgICAgICBzZXJ2ZXJQb3J0ID0gbWVzc2FnZS5o
ZWFkZXIubXNnaF9yZW1vdGVfcG9ydDsKKyAgICAgICAgbWFjaF9wb3J0X3R5cGVfdCBwb3J0VHlw
ZTsKKyAgICAgICAga2Vybl9yZXR1cm5fdCBrciA9IG1hY2hfcG9ydF90eXBlKG1hY2hfdGFza19z
ZWxmKCksIHNlcnZlclBvcnQsICZwb3J0VHlwZSk7CisgICAgICAgIGlmIChrciB8fCAhKHBvcnRU
eXBlICYgTUFDSF9QT1JUX1RZUEVfU0VORCkpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiRmFpbGVkIHRvIG9idGFpbiBzZW5kIHJpZ2h0IGZvciBwb3J0IHJlY2VpdmVkIGZyb20gdGhl
IFVJIHByb2Nlc3MuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAg
ICAgIH0KICAgICB9CisjZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogCiAgICAgU3RyaW5nIGxvY2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24i
XTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmTG9jYWxpemF0aW9uKEFkb3B0Q0YsIENG
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVbmlD
aGFyKj4obG9jYWxpemF0aW9uLmNoYXJhY3RlcnMoKSksIGxvY2FsaXphdGlvbi5sZW5ndGgoKSkp
OwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTAzOTEwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTItMDEtMDIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYSAtLXRhcmdldC13ZWItcHJvY2VzcyBvcHRpb24gdG8gdGhlIGRlYnVn
LSogc2NyaXB0cy4gV2hlbiBzcGVjaWZpZWQsIHRoZSBzY3JpcHRzIHdpbGwKKyAgICAgICAgc3Rh
cnQgV2ViUHJvY2VzcyB1bmRlciBnZGIgYW5kIFdlYlByb2Nlc3Mgd2lsbCB0aGVuIHJ1biB0aGUg
Y2xpZW50IGV4ZWN1dGFibGUuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgVG9vbHMgcGFydCBvZiBm
aXhpbmcgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzU0NDQ+IERlYnVnZ2luZyBXZWJQcm9jZXNzIHJl
cXVpcmVzIHJ1bm5pbmcgYSBVSSBwcm9jZXNzIGZpcnN0IGFuZCB3YWl0aW5nIHRvIGF0dGFjaAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAoc2hvdWxkVGFyZ2V0V2ViUHJvY2Vzcyk6IEFkZGVk
LgorICAgICAgICAoZGV0ZXJtaW5lU2hvdWxkVGFyZ2V0V2ViUHJvY2Vzcyk6IEFkZGVkLiBDaGVj
a3MgZm9yIC0tdGFyZ2V0LXdlYi1wcm9jZXNzLgorICAgICAgICAoZXhlY01hY1dlYktpdEFwcEZv
ckRlYnVnZ2luZyk6IENoYW5nZWQgdG8gdGFyZ2V0IGdkYiBhdCBXZWJQcm9jZXNzIGFuZCBwYXNz
IHRoZSBwYXRoIHRvIHRoZQorICAgICAgICBhcHAgdXNpbmcgdGhlIC1jbGllbnQtZXhlY3V0YWJs
ZSBvcHRpb24gaWYgdGFyZ2V0aW5nIHRoZSB3ZWIgcHJvY2Vzcy4KKwogMjAxMi0wMS0wMiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
QWRkIGEgd2F5IHRvIGNoYW5nZSB3ZWIgdmlldyBzZXR0aW5ncyBpbiBNaW5pQnJvd3NlcgpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMTAzOTA5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIG15ICRpc0Nocm9taXVt
TWFjTWFrZTsKIG15ICRmb3JjZUNocm9taXVtVXBkYXRlOwogbXkgJGlzSW5zcGVjdG9yRnJvbnRl
bmQ7CiBteSAkaXNXSzI7CitteSAkc2hvdWxkVGFyZ2V0V2ViUHJvY2VzczsKIG15ICR4Y29kZVZl
cnNpb247CiAKICMgVmFyaWFibGVzIGZvciBXaW4zMiBzdXBwb3J0CkBAIC0xMzA2LDYgKzEzMDcs
MTggQEAgc3ViIGlzV2luZG93c05UKCkKICAgICByZXR1cm4gJEVOVnsnT1MnfSBlcSAnV2luZG93
c19OVCc7CiB9CiAKK3N1YiBzaG91bGRUYXJnZXRXZWJQcm9jZXNzCit7CisgICAgZGV0ZXJtaW5l
U2hvdWxkVGFyZ2V0V2ViUHJvY2VzcygpOworICAgIHJldHVybiAkc2hvdWxkVGFyZ2V0V2ViUHJv
Y2VzczsKK30KKworc3ViIGRldGVybWluZVNob3VsZFRhcmdldFdlYlByb2Nlc3MKK3sKKyAgICBy
ZXR1cm4gaWYgZGVmaW5lZCgkc2hvdWxkVGFyZ2V0V2ViUHJvY2Vzcyk7CisgICAgJHNob3VsZFRh
cmdldFdlYlByb2Nlc3MgPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tdGFy
Z2V0LXdlYi1wcm9jZXNzIik7Cit9CisKIHN1YiByZWxhdGl2ZVNjcmlwdHNEaXIoKQogewogICAg
IG15ICRzY3JpcHREaXIgPSBGaWxlOjpTcGVjLT5jYXRwYXRoKCIiLCBGaWxlOjpTcGVjLT5hYnMy
cmVsKCRGaW5kQmluOjpCaW4sIGdldGN3ZCgpKSwgIiIpOwpAQCAtMjMyOSwxMSArMjM0MiwyMSBA
QCBzdWIgZXhlY01hY1dlYktpdEFwcEZvckRlYnVnZ2luZygkKQogICAgIGRpZSAiQ2FuJ3QgZmlu
ZCBnZGIgZXhlY3V0YWJsZS4gSXMgZ2RiIGluc3RhbGxlZD9cbiIgdW5sZXNzIC14ICRnZGJQYXRo
OwogCiAgICAgbXkgJHByb2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7Ci0gICAgcHJpbnQgIlN0YXJ0
aW5nIEB7W2Jhc2VuYW1lKCRhcHBQYXRoKV19IHVuZGVyIGdkYiB3aXRoIERZTERfRlJBTUVXT1JL
X1BBVEggc2V0IHRvIHBvaW50IHRvIGJ1aWx0IFdlYktpdCBpbiAkcHJvZHVjdERpci5cbiI7CiAg
ICAgJEVOVntEWUxEX0ZSQU1FV09SS19QQVRIfSA9ICRwcm9kdWN0RGlyOwogICAgICRFTlZ7V0VC
S0lUX1VOU0VUX0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gIllFUyI7CiAgICAgbXkgQGFyY2hpdGVj
dHVyZUZsYWdzID0gKCItYXJjaCIsIGFyY2hpdGVjdHVyZSgpKTsKLSAgICBleGVjIHsgJGdkYlBh
dGggfSAkZ2RiUGF0aCwgQGFyY2hpdGVjdHVyZUZsYWdzLCAiLS1hcmdzIiwgJGFwcFBhdGgsIGFy
Z3VtZW50c0ZvclJ1bkFuZERlYnVnTWFjV2ViS2l0QXBwKCkgb3IgZGllOworICAgIGlmICghc2hv
dWxkVGFyZ2V0V2ViUHJvY2VzcygpKSB7CisgICAgICAgIHByaW50ICJTdGFydGluZyBAe1tiYXNl
bmFtZSgkYXBwUGF0aCldfSB1bmRlciBnZGIgd2l0aCBEWUxEX0ZSQU1FV09SS19QQVRIIHNldCB0
byBwb2ludCB0byBidWlsdCBXZWJLaXQgaW4gJHByb2R1Y3REaXIuXG4iOworICAgICAgICBleGVj
IHsgJGdkYlBhdGggfSAkZ2RiUGF0aCwgQGFyY2hpdGVjdHVyZUZsYWdzLCAiLS1hcmdzIiwgJGFw
cFBhdGgsIGFyZ3VtZW50c0ZvclJ1bkFuZERlYnVnTWFjV2ViS2l0QXBwKCkgb3IgZGllOworICAg
IH0gZWxzZSB7CisgICAgICAgIG15ICR3ZWJQcm9jZXNzU2hpbVBhdGggPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCRwcm9kdWN0RGlyLCAiV2ViUHJvY2Vzc1NoaW0uZHlsaWIiKTsKKyAgICAgICAgbXkg
JHdlYlByb2Nlc3NQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKCRwcm9kdWN0RGlyLCAiV2ViUHJv
Y2Vzcy5hcHAiKTsKKyAgICAgICAgbXkgJHdlYktpdDJFeGVjdXRhYmxlUGF0aCA9IEZpbGU6OlNw
ZWMtPmNhdGZpbGUoJHByb2R1Y3REaXIsICJXZWJLaXQyLmZyYW1ld29yayIsICJXZWJLaXQyIik7
CisgICAgICAgICRFTlZ7RFlMRF9JTlNFUlRfTElCUkFSSUVTfSA9ICR3ZWJQcm9jZXNzU2hpbVBh
dGg7CisKKyAgICAgICAgcHJpbnQgIlN0YXJ0aW5nIFdlYlByb2Nlc3MgdW5kZXIgZ2RiIHdpdGgg
RFlMRF9GUkFNRVdPUktfUEFUSCBzZXQgdG8gcG9pbnQgdG8gYnVpbHQgV2ViS2l0IGluICRwcm9k
dWN0RGlyLlxuIjsKKyAgICAgICAgZXhlYyB7ICRnZGJQYXRoIH0gJGdkYlBhdGgsIEBhcmNoaXRl
Y3R1cmVGbGFncywgIi0tYXJncyIsICR3ZWJQcm9jZXNzUGF0aCwgJHdlYktpdDJFeGVjdXRhYmxl
UGF0aCwgIi10eXBlIiwgIndlYnByb2Nlc3MiLCAiLWNsaWVudC1leGVjdXRhYmxlIiwgJGFwcFBh
dGggb3IgZGllOworICAgIH0KIH0KIAogc3ViIGRlYnVnU2FmYXJpCg==
</data>
<flag name="review"
          id="121238"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120893</attachid>
            <date>2012-01-02 13:18:23 -0800</date>
            <delta_ts>2012-01-04 18:11:19 -0800</delta_ts>
            <desc>WebKit2 source diffs ignoring whitespace changes</desc>
            <filename>75444-no-whitespace.diff</filename>
            <type>text/plain</type>
            <size>10578</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRW
YXJpYWJsZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmgJKHJldmlzaW9uIDEwMzkwOSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTEgQEAKIAogICAgIGNoYXIqKiBlbnZpcm9ubWVu
dFBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBtX2Vudmlyb25tZW50UG9pbnRlcjsgfQogCisjaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtleSgpOworICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBjb25zdCBjaGFyKiB2YWx1ZUlmVmFyaWFibGVIYXNOYW1lKGNvbnN0IGNoYXIqIGVudmlyb25t
ZW50VmFyaWFibGUsIGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0OwogICAgIGNvbnN0IGNoYXIqIGNy
ZWF0ZVN0cmluZ0ZvclZhcmlhYmxlKGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZhbHVl
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAxMDM5MDkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNDEgQEAKICAgICAvLyBJbnNlcnQgYSBzZW5kIHJp
Z2h0IHNvIHdlIGNhbiBzZW5kIHRvIGl0LgogICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFj
aF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgbGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQ
RV9NQUtFX1NFTkQpOwogCisgICAgcGlkX3QgcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworCisgICAg
RW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7CisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcmVleGlz
dGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSA9IGVudmlyb25tZW50VmFyaWFibGVzLmdldChFbnZpcm9u
bWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKSk7CisgICAg
UHJvY2Vzc1R5cGUgcHJlZXhpc3RpbmdQcm9jZXNzVHlwZTsKKyAgICBpZiAocHJlZXhpc3RpbmdQ
cm9jZXNzU2VydmljZU5hbWUpCisgICAgICAgIGdldFByb2Nlc3NUeXBlRnJvbVN0cmluZyhlbnZp
cm9ubWVudFZhcmlhYmxlcy5nZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJv
Y2Vzc1R5cGVLZXkoKSksIHByZWV4aXN0aW5nUHJvY2Vzc1R5cGUpOworCisgICAgYm9vbCB1c2VQ
cmVleGlzdGluZ1Byb2Nlc3MgPSBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSAmJiBwcmVl
eGlzdGluZ1Byb2Nlc3NUeXBlID09IG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZTsKKworICAg
IGlmICh1c2VQcmVleGlzdGluZ1Byb2Nlc3MpIHsKKyAgICAgICAgbWFjaF9wb3J0X3QgbG9va3Vw
UG9ydDsKKyAgICAgICAgYm9vdHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3BvcnQsIHByZWV4aXN0
aW5nUHJvY2Vzc1NlcnZpY2VOYW1lLCAmbG9va3VwUG9ydCk7CisKKyAgICAgICAgbWFjaF9tc2df
aGVhZGVyX3QgaGVhZGVyOworICAgICAgICBoZWFkZXIubXNnaF9iaXRzID0gTUFDSF9NU0dIX0JJ
VFMoTUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAg
ICAgICAgaGVhZGVyLm1zZ2hfaWQgPSAwOworICAgICAgICBoZWFkZXIubXNnaF9sb2NhbF9wb3J0
ID0gbGlzdGVuaW5nUG9ydDsKKyAgICAgICAgaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQgPSBsb29r
dXBQb3J0OworICAgICAgICBoZWFkZXIubXNnaF9zaXplID0gc2l6ZW9mKGhlYWRlcik7CisgICAg
ICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21zZygmaGVhZGVyLCBNQUNIX1NFTkRfTVNHLCBz
aXplb2YoaGVhZGVyKSwgMCwgTUFDSF9QT1JUX05VTEwsIE1BQ0hfTVNHX1RJTUVPVVRfTk9ORSwg
TUFDSF9QT1JUX05VTEwpOworCisgICAgICAgIGlmIChrcikgeworICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gcGljayB1cCBwcmVleGlzdGluZyBwcm9jZXNzIGF0ICVzICgleCkuIExh
dW5jaGluZyBhIG5ldyBwcm9jZXNzIG9mIHR5cGUgJXMgaW5zdGVhZC4iLCBwcmVleGlzdGluZ1By
b2Nlc3NTZXJ2aWNlTmFtZSwga3IsIHByb2Nlc3NUeXBlQXNTdHJpbmcobV9sYXVuY2hPcHRpb25z
LnByb2Nlc3NUeXBlKSk7CisgICAgICAgICAgICB1c2VQcmVleGlzdGluZ1Byb2Nlc3MgPSBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19z
ZWxmKCksIGxvb2t1cFBvcnQpOworCisgICAgICAgIHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VO
YW1lID0gMDsKKyAgICB9CisKKyAgICBpZiAoIXVzZVByZWV4aXN0aW5nUHJvY2VzcykgeworI2Vu
ZGlmCiAgICAgTlNCdW5kbGUgKndlYktpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlV2l0aElk
ZW50aWZpZXI6QCJjb20uYXBwbGUuV2ViS2l0MiJdOwogICAgIE5TU3RyaW5nICpmcmFtZXdvcmtz
UGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBidW5kbGVQYXRoXSBzdHJpbmdCeURlbGV0aW5nTGFzdFBh
dGhDb21wb25lbnRdOwogICAgIGNvbnN0IGNoYXIqIGZyYW1ld29ya0V4ZWN1dGFibGVQYXRoID0g
W1t3ZWJLaXQyQnVuZGxlIGV4ZWN1dGFibGVQYXRoXSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb25d
OwpAQCAtMTMzLDEwICsxNjgsNiBAQAogCiAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZh
dHRyLCBmbGFncyk7CiAKLSAgICBwaWRfdCBwcm9jZXNzSWRlbnRpZmllcjsKLQotICAgIEVudmly
b25tZW50VmFyaWFibGVzIGVudmlyb25tZW50VmFyaWFibGVzOwotCiAjaWZuZGVmIEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRAogICAgIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3RvciBl
bnZpcm9ubWVudEV4dHJhY3RvcihbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4ZWN1dGFibGVQYXRo
XSwgYXJjaGl0ZWN0dXJlKTsKICAgICBlbnZpcm9ubWVudEV4dHJhY3Rvci5nZXRFeHRyYWN0ZWRF
bnZpcm9ubWVudFZhcmlhYmxlcyhlbnZpcm9ubWVudFZhcmlhYmxlcyk7CkBAIC0xODAsNiArMjEx
LDkgQEAKICAgICAgICAgbGlzdGVuaW5nUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogICAgICAgICBw
cm9jZXNzSWRlbnRpZmllciA9IDA7CiAgICAgfQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyAgICB9CisjZW5kaWYKICAgICAKICAgICAvLyBXZSd2ZSBmaW5pc2hlZCBs
YXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFpbiBydW4gbG9vcC4K
ICAgICBSdW5Mb29wOjptYWluKCktPmRpc3BhdGNoKGJpbmQoJlByb2Nlc3NMYXVuY2hlcjo6ZGlk
RmluaXNoTGF1bmNoaW5nUHJvY2VzcywgdGhpcywgcHJvY2Vzc0lkZW50aWZpZXIsIGxpc3Rlbmlu
Z1BvcnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52
aXJvbm1lbnRWYXJpYWJsZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJsZXMuY3BwCShyZXZpc2lvbiAxMDM5
MDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50
VmFyaWFibGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDQgKzEzNiwxOCBAQAogICAgIG1f
ZW52aXJvbm1lbnRQb2ludGVyID0gbV9lbnZpcm9ubWVudFZhcmlhYmxlcy5kYXRhKCk7CiB9CiAK
KyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisKK2NvbnN0IGNoYXIqIEVu
dmlyb25tZW50VmFyaWFibGVzOjpwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtleSgpCit7
CisgICAgcmV0dXJuICJXRUJLSVRfUFJFRVhJU1RJTkdfUFJPQ0VTU19TRVJWSUNFX05BTUUiOwor
fQorCitjb25zdCBjaGFyKiBFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNz
VHlwZUtleSgpCit7CisgICAgcmV0dXJuICJXRUJLSVRfUFJFRVhJU1RJTkdfUFJPQ0VTU19UWVBF
IjsKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21h
Yy9XZWJQcm9jZXNzTWFpbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQkocmV2aXNpb24gMTAzOTA5KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBv
cnQgIkVudmlyb25tZW50VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxl
cy5oIgogI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9y
dCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCkBAIC0zOCw2ICszOSw3IEBACiAjaW1wb3J0IDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+
CiAjaW1wb3J0IDxzaWduYWwuaD4KKyNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDxzdGRpby5o
PgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHVuaXN0ZC5oPgpAQCAtNDYsNiArNDgs
MTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
K2V4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90
LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CisjZW5kaWYKKwogQGludGVyZmFjZSBO
U0FwcGxpY2F0aW9uIChXZWJOU0FwcGxpY2F0aW9uRGV0YWlscykKIC0odm9pZClfaW5zdGFsbEF1
dG9yZWxlYXNlUG9vbHNPbkN1cnJlbnRUaHJlYWRJZk5lY2Vzc2FyeTsKIEBlbmQKQEAgLTU4LDI2
ICs2NCw4MSBAQAogCiBpbnQgV2ViUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1h
bmRMaW5lKQogewotI2lmZGVmIEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRAogICAgIC8vIFJlbW92
ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZp
cm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKICAgICAvLyB0aGUg
V2ViUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KICAgICBF
bnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lO
U0VSVF9MSUJSQVJJRVMiLCAiL1dlYlByb2Nlc3NTaGltLmR5bGliIik7Ci0jZW5kaWYKIAogICAg
IE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5p
dF07CiAKICAgICBTdHJpbmcgc2VydmljZU5hbWUgPSBjb21tYW5kTGluZVsic2VydmljZW5hbWUi
XTsKLSAgICBpZiAoc2VydmljZU5hbWUuaXNFbXB0eSgpKQorICAgIFN0cmluZyBjbGllbnRFeGVj
dXRhYmxlOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBjbGll
bnRFeGVjdXRhYmxlID0gY29tbWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07CisjZW5kaWYK
KworICAgIGlmIChzZXJ2aWNlTmFtZS5pc0VtcHR5KCkgJiYgY2xpZW50RXhlY3V0YWJsZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAKICAgICAvLyBHZXQgdGhlIHNl
cnZlciBwb3J0LgogICAgIG1hY2hfcG9ydF90IHNlcnZlclBvcnQ7CisgICAgaWYgKGNsaWVudEV4
ZWN1dGFibGUuaXNFbXB0eSgpKSB7CiAgICAga2Vybl9yZXR1cm5fdCBrciA9IGJvb3RzdHJhcF9s
b29rX3VwKGJvb3RzdHJhcF9wb3J0LCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCAmc2VydmVy
UG9ydCk7CiAgICAgaWYgKGtyKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiYm9vdHN0cmFw
X2xvb2tfdXAgcmVzdWx0OiAlcyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Cisg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJvb3RzdHJhcF9sb29rX3VwIHJlc3VsdDogJXMg
KCV4KVxuIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7CiAgICAgICAgIHJldHVybiAyOwog
ICAgIH0KKyAgICB9CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAg
IGVsc2UgeworICAgICAgICBtYWNoX3BvcnRfbmFtZV90IHB1Ymxpc2hlZFNlcnZpY2U7CisgICAg
ICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRf
UkVDRUlWRSwgJnB1Ymxpc2hlZFNlcnZpY2UpOworICAgICAgICAvLyBGSVhNRTogSXQgaXMgbm90
IGNsZWFyIHdoeSB3ZSBuZWVkIHRvIGhhdmUgdGhpcyBzZW5kIHJpZ2h0LgorICAgICAgICBtYWNo
X3BvcnRfaW5zZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIHB1Ymxpc2hlZFNlcnZpY2UsIHB1
Ymxpc2hlZFNlcnZpY2UsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICAgICAgLy8gTWFr
ZSBpdCBwb3NzaWJsZSB0byBsb29rIHVwLgorICAgICAgICBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6
Zm9ybWF0KCJjb20uYXBwbGUuV2ViS2l0LldlYlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7CisgICAg
ICAgIGlmIChrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBf
cG9ydCwgY29uc3RfY2FzdDxjaGFyKj4oc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxp
c2hlZFNlcnZpY2UsIDApKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0
byByZWdpc3RlciBzZXJ2aWNlIG5hbWUgXCIlc1wiLiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51
dGY4KCkuZGF0YSgpLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgIH0KIAorICAgICAgICBDU3RyaW5nIGNvbW1hbmQg
PSBjbGllbnRFeGVjdXRhYmxlLnV0ZjgoKTsKKyAgICAgICAgY29uc3QgY2hhciogYXJnc1tdID0g
eyBjb21tYW5kLmRhdGEoKSwgMCB9OworCisgICAgICAgIEVudmlyb25tZW50VmFyaWFibGVzIGVu
dmlyb25tZW50VmFyaWFibGVzOworICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlcy5zZXQoRW52
aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lS2V5KCksIHNl
cnZpY2VOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlcy5z
ZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1R5cGVLZXkoKSwgY29t
bWFuZExpbmVbInR5cGUiXS51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICBwb3NpeF9zcGF3bl9m
aWxlX2FjdGlvbnNfdCBmaWxlQWN0aW9uczsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rp
b25zX2luaXQoJmZpbGVBY3Rpb25zKTsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25z
X2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERJTl9GSUxFTk8pOworICAgICAgICBwb3Np
eF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkaW5oZXJpdF9ucCgmZmlsZUFjdGlvbnMsIFNURE9VVF9G
SUxFTk8pOworICAgICAgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkaW5oZXJpdF9ucCgm
ZmlsZUFjdGlvbnMsIFNUREVSUl9GSUxFTk8pOworCisgICAgICAgIHBvc2l4X3NwYXduYXR0cl90
IGF0dHJpYnV0ZXM7CisgICAgICAgIHBvc2l4X3NwYXduYXR0cl9pbml0KCZhdHRyaWJ1dGVzKTsK
KyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZhdHRyaWJ1dGVzLCBQT1NJWF9TUEFX
Tl9DTE9FWEVDX0RFRkFVTFQpOworCisgICAgICAgIGludCBzcGF3blJlc3VsdCA9IHBvc2l4X3Nw
YXduKDAsIGNvbW1hbmQuZGF0YSgpLCAmZmlsZUFjdGlvbnMsICZhdHRyaWJ1dGVzLCBjb25zdF9j
YXN0PGNoYXIqKj4oYXJncyksIGVudmlyb25tZW50VmFyaWFibGVzLmVudmlyb25tZW50UG9pbnRl
cigpKTsKKyAgICAgICAgaWYgKHNwYXduUmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIDI7CisK
KyAgICAgICAgbWFjaF9tc2dfZW1wdHlfcmN2X3QgbWVzc2FnZTsKKyAgICAgICAgaWYgKGtlcm5f
cmV0dXJuX3Qga3IgPSBtYWNoX21zZygmbWVzc2FnZS5oZWFkZXIsIE1BQ0hfUkNWX01TRywgMCwg
c2l6ZW9mKG1lc3NhZ2UpLCBwdWJsaXNoZWRTZXJ2aWNlLCBNQUNIX01TR19USU1FT1VUX05PTkUs
IE1BQ0hfUE9SVF9OVUxMKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQg
dG8gcmVjZWl2ZSBwb3J0IGZyb20gdGhlIFVJIHByb2Nlc3MuICVzICgleClcbiIsIG1hY2hfZXJy
b3Jfc3RyaW5nKGtyKSwga3IpOworICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAg
ICAgICAgfQorCisgICAgICAgIG1hY2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBw
dWJsaXNoZWRTZXJ2aWNlLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgLTEpOworICAgICAgICBz
ZXJ2ZXJQb3J0ID0gbWVzc2FnZS5oZWFkZXIubXNnaF9yZW1vdGVfcG9ydDsKKyAgICAgICAgbWFj
aF9wb3J0X3R5cGVfdCBwb3J0VHlwZTsKKyAgICAgICAga2Vybl9yZXR1cm5fdCBrciA9IG1hY2hf
cG9ydF90eXBlKG1hY2hfdGFza19zZWxmKCksIHNlcnZlclBvcnQsICZwb3J0VHlwZSk7CisgICAg
ICAgIGlmIChrciB8fCAhKHBvcnRUeXBlICYgTUFDSF9QT1JUX1RZUEVfU0VORCkpIHsKKyAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG9idGFpbiBzZW5kIHJpZ2h0IGZvciBw
b3J0IHJlY2VpdmVkIGZyb20gdGhlIFVJIHByb2Nlc3MuXG4iKTsKKyAgICAgICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYgLy8gIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorCiAgICAgU3RyaW5nIGxvY2FsaXphdGlvbiA9IGNvbW1h
bmRMaW5lWyJsb2NhbGl6YXRpb24iXTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmTG9j
YWxpemF0aW9uKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4obG9jYWxpemF0aW9uLmNoYXJhY3RlcnMoKSksIGxv
Y2FsaXphdGlvbi5sZW5ndGgoKSkpOwogICAgIGlmIChjZkxvY2FsaXphdGlvbikKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NNYWluTWFjLm1tCShyZXZpc2lvbiAxMDM5MDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYs
NyArNzYsNyBAQAogICAgIG1hY2hfcG9ydF90IHNlcnZlclBvcnQ7CiAgICAga2Vybl9yZXR1cm5f
dCBrciA9IGJvb3RzdHJhcF9sb29rX3VwKGJvb3RzdHJhcF9wb3J0LCBzZXJ2aWNlTmFtZS51dGY4
KCkuZGF0YSgpLCAmc2VydmVyUG9ydCk7CiAgICAgaWYgKGtyKSB7Ci0gICAgICAgIGZwcmludGYo
c3RkZXJyLCAiYm9vdHN0cmFwX2xvb2tfdXAgcmVzdWx0OiAlcyAoJXgpIiwgbWFjaF9lcnJvcl9z
dHJpbmcoa3IpLCBrcik7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYm9vdHN0cmFwX2xvb2tf
dXAgcmVzdWx0OiAlcyAoJXgpXG4iLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>