<?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>103866</bug_id>
          
          <creation_ts>2012-12-03 00:57:05 -0800</creation_ts>
          <short_desc>Replace JSValue::description() with JSValue::dump(PrintStream&amp;)</short_desc>
          <delta_ts>2012-12-04 11:30:21 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>ojan</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781205</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-03 00:57:05 -0800</bug_when>
    <thetext>JSValue::description() does the horrible static char buf[thingy] thingy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781213</commentid>
    <comment_count>1</comment_count>
      <attachid>177205</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-03 01:06:21 -0800</bug_when>
    <thetext>Created attachment 177205
the patch

Let&apos;s see how many bots this breaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781231</commentid>
    <comment_count>2</comment_count>
      <attachid>177205</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 01:49:05 -0800</bug_when>
    <thetext>Comment on attachment 177205
the patch

Attachment 177205 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15119276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781584</commentid>
    <comment_count>3</comment_count>
      <attachid>177205</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 10:17:15 -0800</bug_when>
    <thetext>Comment on attachment 177205
the patch

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

Looks like your only build problem is an .exp file on Windows.

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        (JSValue):

Please remove bogus lines like these from your change log.

&gt; Source/WTF/ChangeLog:12
&gt; +        (WTF):

Please remove bogus lines like this.

&gt; Source/WTF/ChangeLog:15
&gt; +        (WTF):

Please remove bogus lines like this.

&gt; Source/WTF/wtf/StringPrintStream.cpp:98
&gt; +    return String::fromUTF8(m_buffer, m_next);

This can fail if there are invalid UTF-8 sequences in the buffer. And then we’ll get a null string back from the fromUTF8 function. Do we want/need to handle that?

&gt; Source/WTF/wtf/StringPrintStream.h:63
&gt; +// Convert to a String using UTF8 conversion.

I don’t think the UTF8 emphasis in this comment is helpful. If we wanted to emphasize UTF-8, then we should have done that in the name StringPrintStream::toString. Since we don’t want to emphasize it there, there no reason to emphasize it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781919</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-03 15:05:55 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 177205 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177205&amp;action=review
&gt; 
&gt; Looks like your only build problem is an .exp file on Windows.
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:32
&gt; &gt; +        (JSValue):
&gt; 
&gt; Please remove bogus lines like these from your change log.

Fixed.

&gt; 
&gt; &gt; Source/WTF/ChangeLog:12
&gt; &gt; +        (WTF):
&gt; 
&gt; Please remove bogus lines like this.

Fixed.

&gt; 
&gt; &gt; Source/WTF/ChangeLog:15
&gt; &gt; +        (WTF):
&gt; 
&gt; Please remove bogus lines like this.

Fixed.

&gt; 
&gt; &gt; Source/WTF/wtf/StringPrintStream.cpp:98
&gt; &gt; +    return String::fromUTF8(m_buffer, m_next);
&gt; 
&gt; This can fail if there are invalid UTF-8 sequences in the buffer. And then we’ll get a null string back from the fromUTF8 function. Do we want/need to handle that?

I don&apos;t think so.  This is used for debugging exclusively at this point, and I believe that in all cases the input is currently some combination of:

- String constants from our own code.

- Things that used to WTF::String but were converted to a CString via String::utf8().

If it ever becomes a problem I guess we could use fromUTF8WithLatin1Fallback.  Also, do we happen to have a fromUTF8() variant that inserts a &apos;?&apos; or other dummy marker character for cases where it encountered garbage?  This could be useful for example in the new profiler (https://bugs.webkit.org/show_bug.cgi?id=102999) if at some point something internally in JSC created an invalid UTF8 sequence - we&apos;d still want to get some output rather than a null string, and falling all the way back to Latin1 might not be appropriate.

&gt; 
&gt; &gt; Source/WTF/wtf/StringPrintStream.h:63
&gt; &gt; +// Convert to a String using UTF8 conversion.
&gt; 
&gt; I don’t think the UTF8 emphasis in this comment is helpful. If we wanted to emphasize UTF-8, then we should have done that in the name StringPrintStream::toString. Since we don’t want to emphasize it there, there no reason to emphasize it here.

I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781925</commentid>
    <comment_count>5</comment_count>
      <attachid>177344</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-03 15:10:07 -0800</bug_when>
    <thetext>Created attachment 177344
patch for landing

I think that Windows will still have problems.  I will wait for Win EWS before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782048</commentid>
    <comment_count>6</comment_count>
      <attachid>177344</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 17:02:48 -0800</bug_when>
    <thetext>Comment on attachment 177344
patch for landing

Attachment 177344 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15132173</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782218</commentid>
    <comment_count>7</comment_count>
      <attachid>177416</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-03 22:06:40 -0800</bug_when>
    <thetext>Created attachment 177416
patch for landing

Trying this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782751</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-04 11:30:21 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/136539</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177205</attachid>
            <date>2012-12-03 01:06:21 -0800</date>
            <delta_ts>2012-12-03 15:10:07 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>valuedump.patch</filename>
            <type>text/plain</type>
            <size>16804</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM2MzcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEyLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBKU1ZhbHVlOjpkZXNjcmlwdGlvbigpIHdpdGggSlNWYWx1ZTo6ZHVtcChQcmludFN0
cmVhbSYpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM4NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBK
U1ZhbHVlIG5vdyBoYXMgYSBkdW1wKCkgbWV0aG9kLiBBbnl3aGVyZSB0aGF0IHlvdSB3b3VsZCBo
YXZlIHdhbnRlZCB0byB1c2UKKyAgICAgICAgZGVzY3JpcHRpb24oKSwgeW91IGNhbiBlaXRoZXIg
ZG8gdG9DU3RyaW5nKHZhbHVlKS5kYXRhKCksIG9yIGlmIHRoZSBjYWxsZWUKKyAgICAgICAgaXMg
YSBwcmludCgpL2RhdGFMb2coKSBtZXRob2QgdGhlbiB5b3UganVzdCBwYXNzIHRoZSB2YWx1ZSBk
aXJlY3RseS4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChK
U0M6OnZhbHVlVG9Tb3VyY2VTdHJpbmcpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmFs
aXplVW5jb25kaXRpb25hbGx5KToKKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVByb2ZpbGUuaDoK
KyAgICAgICAgKEpTQzo6VmFsdWVQcm9maWxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogYnl0ZWNv
ZGUvVmFsdWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpkdW1wKToK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0VmFsdWU6OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMpOgorICAg
ICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkRlc2NyaWJlKToKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF90cmFj
ZV92YWx1ZSk6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmg6CisgICAgICAgIChK
U1ZhbHVlKToKKwogMjAxMi0xMi0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIERGRyBDU0Ugc2hvdWxkIG5vdCBrZWVwIGFsaXZlIHRoaW5ncyB0aGF0IGFyZW4n
dCByZWxldmFudCB0byBPU1IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxMzYz
NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1N0cmlu
Z1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAj
aWYgIU9TKFdJTkRPV1MpCkBAIC0zMTEsNyArMzEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRlYgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRGVzY3JpYmUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiLS0+
ICVzXG4iLCBleGVjLT5hcmd1bWVudCgwKS5kZXNjcmlwdGlvbigpKTsKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIi0tPiAlc1xuIiwgdG9DU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApKS5kYXRhKCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAx
MzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5s
aW5lcy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVz
ZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC05OSw3ICsxMDAsNyBAQCBzdGF0
aWMgU3RyaW5nIHZhbHVlVG9Tb3VyY2VTdHJpbmcoRXhlY1N0CiAgICAgaWYgKHZhbC5pc1N0cmlu
ZygpKQogICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiXCIiLCBlc2NhcGVRdW90ZXModmFsLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSksICJcIiIpOwogCi0gICAgcmV0dXJuIHZhbC5kZXNj
cmlwdGlvbigpOworICAgIHJldHVybiB0b1N0cmluZyh2YWwpOwogfQogCiBzdGF0aWMgQ1N0cmlu
ZyBjb25zdGFudE5hbWUoRXhlY1N0YXRlKiBleGVjLCBpbnQgaywgSlNWYWx1ZSB2YWx1ZSkKQEAg
LTIyMzMsMTUgKzIyMzQsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25h
bGx5KAogICAgICAgICAgICAgICAgIEpTQ2VsbCogdG8gPSB0cmFuc2l0aW9uLm1fdG8uZ2V0KCk7
CiAgICAgICAgICAgICAgICAgaWYgKCghb3JpZ2luIHx8IEhlYXA6OmlzTWFya2VkKG9yaWdpbikp
ICYmIEhlYXA6OmlzTWFya2VkKGZyb20pKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgICAgICBkYXRhTG9nRigiICAgIFRyYW5zaXRpb24gdW5kZXIgJXMsICIsIEpT
VmFsdWUob3JpZ2luKS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigi
JXMgLT4gIiwgSlNWYWx1ZShmcm9tKS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgICAgICAgICBk
YXRhTG9nRigiJXMuXG4iLCBKU1ZhbHVlKHRvKS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCIgICAgVHJhbnNpdGlvbiB1bmRlciAiLCBKU1ZhbHVlKG9yaWdpbiksICIs
ICIsIEpTVmFsdWUoZnJvbSksICIgLT4gIiwgSlNWYWx1ZSh0byksICIuXG4iKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2RmZ0RhdGEtPndl
YWtSZWZlcmVuY2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgSlNDZWxsKiB3ZWFr
ID0gbV9kZmdEYXRhLT53ZWFrUmVmZXJlbmNlc1tpXS5nZXQoKTsKICAgICAgICAgICAgICAgICBp
ZiAoSGVhcDo6aXNNYXJrZWQod2VhaykpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgV2VhayByZWZlcmVuY2UgJXMuXG4iLCBKU1Zh
bHVlKHdlYWspLmRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBX
ZWFrIHJlZmVyZW5jZSAiLCBKU1ZhbHVlKHdlYWspLCAiLlxuIik7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsx
MTcsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgIGlmIChtX3NpbmdsZXRv
blZhbHVlSXNUb3ApCiAgICAgICAgICAgICBvdXQucHJpbnRmKCJUT1AiKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMiLCBtX3NpbmdsZXRvblZhbHVlLmRlc2NyaXB0
aW9uKCkpOworICAgICAgICAgICAgb3V0LnByaW50KG1fc2luZ2xldG9uVmFsdWUpOwogICAgICAg
ICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRv
dGFsTnVtYmVyT2ZCdWNrZXRzOyArK2kpIHsKICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUobV9idWNrZXRzW2ldKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdHJ1Y3Qg
VmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAg
ICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiwg
Iik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJXMiLCB2YWx1ZS5kZXNjcmlwdGlvbigp
KTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQodmFsdWUpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVl
UmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsNyArMzMx
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgb3V0LnByaW50ZigiYXJndW1lbnRzIik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb25zdGFudDoKLSAgICAgICAgICAgIG91dC5w
cmludGYoIlslc10iLCBjb25zdGFudCgpLmRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgb3V0
LnByaW50KCJbIiwgY29uc3RhbnQoKSwgIl0iKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIERvbnRLbm93OgogICAgICAgICAgICAgb3V0LnByaW50ZigiISIpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgJKHJldmlzaW9uIDEz
NjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNzcsNyArMzc3LDcgQEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewog
ICAgICAgICAgICAgIigiLCBTcGVjdWxhdGlvbkR1bXAobV90eXBlKSwgIiwgIiwgYXJyYXlNb2Rl
c1RvU3RyaW5nKG1fYXJyYXlNb2RlcyksICIsICIsCiAgICAgICAgICAgICBtX2N1cnJlbnRLbm93
blN0cnVjdHVyZSwgIiwgIiwgbV9mdXR1cmVQb3NzaWJsZVN0cnVjdHVyZSk7CiAgICAgICAgIGlm
ICghIW1fdmFsdWUpCi0gICAgICAgICAgICBvdXQucHJpbnQoIiwgIiwgbV92YWx1ZS5kZXNjcmlw
dGlvbigpKTsKKyAgICAgICAgICAgIG91dC5wcmludCgiLCAiLCBtX3ZhbHVlKTsKICAgICAgICAg
b3V0LnByaW50KCIpIik7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9p
ZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdAogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbm9kZS5udW1Db25zdGFudHMoKTsgKytpKSB7CiAgICAgICAgICAgICBp
ZiAoaSkKICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIiwgIik7Ci0gICAgICAgICAgICBvdXQu
cHJpbnQobV9jb2RlQmxvY2stPmNvbnN0YW50QnVmZmVyKG5vZGUuc3RhcnRDb25zdGFudCgpKVtp
XS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIG91dC5wcmludChtX2NvZGVCbG9jay0+Y29u
c3RhbnRCdWZmZXIobm9kZS5zdGFydENvbnN0YW50KCkpW2ldKTsKICAgICAgICAgfQogICAgICAg
ICBvdXQucHJpbnQoIl0iKTsKICAgICAgICAgaGFzUHJpbnRlZCA9IHRydWU7CkBAIC0yNTgsNyAr
MjU4LDcgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdAogICAgIGlm
IChvcCA9PSBKU0NvbnN0YW50KSB7CiAgICAgICAgIG91dC5wcmludChoYXNQcmludGVkID8gIiwg
IiA6ICIiLCAiJCIsIG5vZGUuY29uc3RhbnROdW1iZXIoKSk7CiAgICAgICAgIEpTVmFsdWUgdmFs
dWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpOwotICAgICAgICBvdXQucHJpbnQoIiA9
ICIsIHZhbHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAgICBvdXQucHJpbnQoIiA9ICIsIHZhbHVl
KTsKICAgICAgICAgaGFzUHJpbnRlZCA9IHRydWU7CiAgICAgfQogICAgIGlmIChvcCA9PSBXZWFr
SlNDb25zdGFudCkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNp
bmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFk
RGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTQwMSw3ICs0
MDIsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtCiAgICAgICAg
IEpTVmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAgICAgIGludCByZWdpc3Rlck51bWJlciA9
IGl0IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBjb2Rl
QmxvY2stPm5hbWVGb3JSZWdpc3RlcihyZWdpc3Rlck51bWJlcik7Ci0gICAgICAgIGRhdGFMb2dG
KCJbciUgM2QgJTE0c10gICAgICB8ICUxMHAgfCAlLTE2cyAweCVsbGQgXG4iLCByZWdpc3Rlck51
bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQsIHYuZGVzY3JpcHRpb24oKSwgKGxvbmcgbG9u
ZylKU1ZhbHVlOjplbmNvZGUodikpOworICAgICAgICBkYXRhTG9nRigiW3IlIDNkICUxNHNdICAg
ICAgfCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVnaXN0ZXJOdW1iZXIsIG5hbWUuYXNjaWko
KS5kYXRhKCksIGl0LCB0b0NTdHJpbmcodikuZGF0YSgpLCAobG9uZyBsb25nKUpTVmFsdWU6OmVu
Y29kZSh2KSk7CiAgICAgICAgIGl0Kys7CiAgICAgfQogICAgIApAQCAtNDM2LDcgKzQzNyw3IEBA
IHZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW0KICAgICAgICAgICAgIEpT
VmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAgICAgICAgICBpbnQgcmVnaXN0ZXJOdW1iZXIg
PSBpdCAtIGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9
IGNvZGVCbG9jay0+bmFtZUZvclJlZ2lzdGVyKHJlZ2lzdGVyTnVtYmVyKTsKLSAgICAgICAgICAg
IGRhdGFMb2dGKCJbciUgM2QgJTE0c10gICAgICB8ICUxMHAgfCAlLTE2cyAweCVsbGQgXG4iLCBy
ZWdpc3Rlck51bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQsIHYuZGVzY3JpcHRpb24oKSwg
KGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOworICAgICAgICAgICAgZGF0YUxvZ0YoIlty
JSAzZCAlMTRzXSAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBcbiIsIHJlZ2lzdGVyTnVtYmVy
LCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBpdCwgdG9DU3RyaW5nKHYpLmRhdGEoKSwgKGxvbmcgbG9u
ZylKU1ZhbHVlOjplbmNvZGUodikpOwogICAgICAgICAgICAgKytpdDsKICAgICAgICAgICAgICsr
cmVnaXN0ZXJDb3VudDsKICAgICAgICAgfSB3aGlsZSAoaXQgIT0gZW5kKTsKQEAgLTQ0Nyw3ICs0
NDgsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtCiAgICAgaWYg
KGl0ICE9IGVuZCkgewogICAgICAgICBkbyB7CiAgICAgICAgICAgICBKU1ZhbHVlIHYgPSAoKml0
KS5qc1ZhbHVlKCk7Ci0gICAgICAgICAgICBkYXRhTG9nRigiW3IlIDNkXSAgICAgICAgICAgICAg
ICAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBcbiIsIHJlZ2lzdGVyQ291bnQsIGl0LCB2LmRl
c2NyaXB0aW9uKCksIChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2RlKHYpKTsKKyAgICAgICAgICAg
IGRhdGFMb2dGKCJbciUgM2RdICAgICAgICAgICAgICAgICAgICAgfCAlMTBwIHwgJS0xNnMgMHgl
bGxkIFxuIiwgcmVnaXN0ZXJDb3VudCwgaXQsIHRvQ1N0cmluZyh2KS5kYXRhKCksIChsb25nIGxv
bmcpSlNWYWx1ZTo6ZW5jb2RlKHYpKTsKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICAr
K3JlZ2lzdGVyQ291bnQ7CiAgICAgICAgIH0gd2hpbGUgKGl0ICE9IGVuZCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9u
IDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJMTEludEV4Y2Vw
dGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApAQCAtMTg0LDE3ICsxODUsMTggQEAgZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogICAgICAgICBFbmNvZGVkSlNWYWx1
ZSBhc1ZhbHVlOwogICAgIH0gdTsKICAgICB1LmFzVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFs
dWUpOwotICAgIGRhdGFMb2dGKCIlcCAvICVwOiBleGVjdXRpbmcgYmMjJXp1LCBvcCMldTogVHJh
Y2UoJWQpOiAlZDogJWQ6ICUwOHg6JTA4eDogJXNcbiIsCi0gICAgICAgICAgICBleGVjLT5jb2Rl
QmxvY2soKSwKLSAgICAgICAgICAgIGV4ZWMsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRw
dHJfdD4ocGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCi0g
ICAgICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBj
WzBdLnUub3Bjb2RlKSwKLSAgICAgICAgICAgIGZyb21XaGVyZSwKLSAgICAgICAgICAgIG9wZXJh
bmQsCi0gICAgICAgICAgICBwY1tvcGVyYW5kXS51Lm9wZXJhbmQsCi0gICAgICAgICAgICB1LmJp
dHMudGFnLAotICAgICAgICAgICAgdS5iaXRzLnBheWxvYWQsCi0gICAgICAgICAgICB2YWx1ZS5k
ZXNjcmlwdGlvbigpKTsKKyAgICBkYXRhTG9nRigKKyAgICAgICAgIiVwIC8gJXA6IGV4ZWN1dGlu
ZyBiYyMlenUsIG9wIyV1OiBUcmFjZSglZCk6ICVkOiAlZDogJTA4eDolMDh4OiAlc1xuIiwKKyAg
ICAgICAgZXhlYy0+Y29kZUJsb2NrKCksCisgICAgICAgIGV4ZWMsCisgICAgICAgIHN0YXRpY19j
YXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpKSwKKyAgICAgICAgZXhlYy0+Z2xvYmFsRGF0YSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJ
RChwY1swXS51Lm9wY29kZSksCisgICAgICAgIGZyb21XaGVyZSwKKyAgICAgICAgb3BlcmFuZCwK
KyAgICAgICAgcGNbb3BlcmFuZF0udS5vcGVyYW5kLAorICAgICAgICB1LmJpdHMudGFnLAorICAg
ICAgICB1LmJpdHMucGF5bG9hZCwKKyAgICAgICAgdG9DU3RyaW5nKHZhbHVlKS5kYXRhKCkpOwog
ICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuY3BwCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDUxICsxOTMs
NDYgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1pdGl2ZUJ5SW5kZXgoRXhlYwogICAgICAgICB0
aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3Ip
OwogfQogCi1jaGFyKiBKU1ZhbHVlOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit2b2lkIEpTVmFsdWU6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNpemUgPSAyNTY7Ci0gICAgc3RhdGljIGNoYXIgZGVzY3JpcHRpb25bc2l6ZV07Ci0KICAgICBp
ZiAoISp0aGlzKQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIjxKU1ZhbHVl
KCk+Iik7CisgICAgICAgIG91dC5wcmludCgiPEpTVmFsdWUoKT4iKTsKICAgICBlbHNlIGlmIChp
c0ludDMyKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2NyaXB0aW9uLCBzaXplLCAiSW50MzI6ICVk
IiwgYXNJbnQzMigpKTsKKyAgICAgICAgb3V0LnByaW50ZigiSW50MzI6ICVkIiwgYXNJbnQzMigp
KTsKICAgICBlbHNlIGlmIChpc0RvdWJsZSgpKSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAg
ICAgc25wcmludGYoZGVzY3JpcHRpb24sIHNpemUsICJEb3VibGU6ICVsbGQsICVsZiIsIChsb25n
IGxvbmcpcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGFzRG91YmxlKCkpLCBhc0RvdWJsZSgpKTsK
KyAgICAgICAgb3V0LnByaW50ZigiRG91YmxlOiAlbGxkLCAlbGYiLCAobG9uZyBsb25nKXJlaW50
ZXJwcmV0RG91YmxlVG9JbnQ2NChhc0RvdWJsZSgpKSwgYXNEb3VibGUoKSk7CiAjZWxzZQogICAg
ICAgICB1bmlvbiB7CiAgICAgICAgICAgICBkb3VibGUgYXNEb3VibGU7CiAgICAgICAgICAgICB1
aW50MzJfdCBhc1R3b0ludDMyc1syXTsKICAgICAgICAgfSB1OwogICAgICAgICB1LmFzRG91Ymxl
ID0gYXNEb3VibGUoKTsKLSAgICAgICAgc25wcmludGYoZGVzY3JpcHRpb24sIHNpemUsICJEb3Vi
bGU6ICUwOHg6JTA4eCwgJWxmIiwgdS5hc1R3b0ludDMyc1sxXSwgdS5hc1R3b0ludDMyc1swXSwg
YXNEb3VibGUoKSk7CisgICAgICAgIG91dC5wcmludGYoIkRvdWJsZTogJTA4eDolMDh4LCAlbGYi
LCB1LmFzVHdvSW50MzJzWzFdLCB1LmFzVHdvSW50MzJzWzBdLCBhc0RvdWJsZSgpKTsKICNlbmRp
ZgogICAgIH0gZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAgICAgaWYgKGFzQ2VsbCgpLT5pbmhl
cml0cygmU3RydWN0dXJlOjpzX2luZm8pKSB7CiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSA9IGpzQ2FzdDxTdHJ1Y3R1cmUqPihhc0NlbGwoKSk7Ci0gICAgICAgICAgICBzbnByaW50
ZigKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwgc2l6ZSwgIlN0cnVjdHVyZTogJXA6ICVz
LCAlcyIsCisgICAgICAgICAgICBvdXQucHJpbnRmKAorICAgICAgICAgICAgICAgICJTdHJ1Y3R1
cmU6ICVwOiAlcywgJXMiLAogICAgICAgICAgICAgICAgIHN0cnVjdHVyZSwgc3RydWN0dXJlLT5j
bGFzc0luZm8oKS0+Y2xhc3NOYW1lLAogICAgICAgICAgICAgICAgIGluZGV4aW5nVHlwZVRvU3Ry
aW5nKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlSW5jbHVkaW5nSGlzdG9yeSgpKSk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBzbnByaW50ZigKLSAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbiwgc2l6ZSwgIkNlbGw6ICVwIC0+ICVwICglcDogJXMsICVzKSIsCisgICAgICAgICAgICBv
dXQucHJpbnRmKAorICAgICAgICAgICAgICAgICJDZWxsOiAlcCAtPiAlcCAoJXA6ICVzLCAlcyki
LAogICAgICAgICAgICAgICAgIGFzQ2VsbCgpLCBpc09iamVjdCgpID8gYXNPYmplY3QoKnRoaXMp
LT5idXR0ZXJmbHkoKSA6IDAsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSwgYXNDZWxsKCktPnN0cnVj
dHVyZSgpLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lLAogICAgICAgICAgICAgICAgIGluZGV4aW5n
VHlwZVRvU3RyaW5nKGFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+aW5kZXhpbmdUeXBlSW5jbHVkaW5n
SGlzdG9yeSgpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGlzVHJ1ZSgpKQotICAgICAg
ICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIlRydWUiKTsKKyAgICAgICAgb3V0LnByaW50
KCJUcnVlIik7CiAgICAgZWxzZSBpZiAoaXNGYWxzZSgpKQotICAgICAgICBzbnByaW50ZihkZXNj
cmlwdGlvbiwgc2l6ZSwgIkZhbHNlIik7CisgICAgICAgIG91dC5wcmludCgiRmFsc2UiKTsKICAg
ICBlbHNlIGlmIChpc051bGwoKSkKLSAgICAgICAgc25wcmludGYoZGVzY3JpcHRpb24sIHNpemUs
ICJOdWxsIik7CisgICAgICAgIG91dC5wcmludCgiTnVsbCIpOwogICAgIGVsc2UgaWYgKGlzVW5k
ZWZpbmVkKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2NyaXB0aW9uLCBzaXplLCAiVW5kZWZpbmVk
Iik7CisgICAgICAgIG91dC5wcmludCgiVW5kZWZpbmVkIik7CiAgICAgZWxzZQotICAgICAgICBz
bnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIklOVkFMSUQiKTsKLQotICAgIHJldHVybiBkZXNj
cmlwdGlvbjsKKyAgICAgICAgb3V0LnByaW50KCJJTlZBTElEIik7CiB9CiAKIC8vIFRoaXMgaW4g
dGhlIFRvSW50MzIgb3BlcmF0aW9uIGlzIGRlZmluZWQgaW4gc2VjdGlvbiA5LjUgb2YgdGhlIEVD
TUEtMjYyIHNwZWMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5o
CShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsyNTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IAogICAgIEpTVmFsdWUgc3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdDsKIAotICAgIEpTX0VY
UE9SVF9QUklWQVRFIGNoYXIqIGRlc2NyaXB0aW9uKCkgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBKU09iamVjdCogc3ludGhlc2l6ZVByb3RvdHlwZShFeGVjU3RhdGUqKSBjb25zdDsKIApJ
bmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEzNjM3MSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMDMgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIEpTVmFsdWU6OmRlc2NyaXB0aW9uKCkgd2l0
aCBKU1ZhbHVlOjpkdW1wKFByaW50U3RyZWFtJikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgZWFzaWVyIHRvIGdldCBhIFN0cmluZyBmcm9t
IGEgU3RyaW5nUHJpbnRTdHJlYW0uCisKKyAgICAgICAgKiB3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
Y3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdQcmludFN0cmVhbTo6dG9TdHJpbmcpOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKiB3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKFN0
cmluZ1ByaW50U3RyZWFtKToKKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OnRvU3RyaW5n
KToKKwogMjAxMi0xMi0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBidWlsZCBhbmQgcnVuIHdpdGggREZHX0VOQUJM
RShQUk9QQUdBVElPTl9WRVJCT1NFKQpJbmRleDogU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFt
LmNwcAkocmV2aXNpb24gMTM2MzY5KQorKysgU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJl
YW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMiBAQCBDU3RyaW5nIFN0cmluZ1By
aW50U3RyZWFtOjp0b0NTdHJpbmcoKQogICAgIHJldHVybiBDU3RyaW5nKG1fYnVmZmVyLCBtX25l
eHQpOwogfQogCitTdHJpbmcgU3RyaW5nUHJpbnRTdHJlYW06OnRvU3RyaW5nKCkKK3sKKyAgICBB
U1NFUlQobV9uZXh0ID09IHN0cmxlbihtX2J1ZmZlcikpOworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KG1fYnVmZmVyLCBtX25leHQpOworfQorCiB2b2lkIFN0cmluZ1ByaW50U3RyZWFtOjpp
bmNyZWFzZVNpemUoc2l6ZV90IG5ld1NpemUpCiB7CiAgICAgQVNTRVJUKG5ld1NpemUgPiBtX3Np
emUpOwpJbmRleDogU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCShyZXZpc2lvbiAxMzYzNjkp
CisrKyBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxNyArMjgsMTkgQEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIFN0cmluZ1ByaW50U3RyZWFtIDogcHVibGljIFBy
aW50U3RyZWFtIHsKIHB1YmxpYzoKLSAgICBTdHJpbmdQcmludFN0cmVhbSgpOwotICAgIH5TdHJp
bmdQcmludFN0cmVhbSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmdQcmludFN0cmVh
bSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+U3RyaW5nUHJpbnRTdHJlYW0oKTsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIFdU
Rl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwogICAgIAotICAgIENTdHJpbmcgdG9DU3RyaW5nKCk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdG9DU3RyaW5nKCk7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIFN0cmluZyB0b1N0cmluZygpOwogICAgIAogcHJpdmF0ZToKICAgICB2b2lk
IGluY3JlYXNlU2l6ZShzaXplX3QpOwpAQCAtNTgsMTAgKzYwLDIwIEBAIENTdHJpbmcgdG9DU3Ry
aW5nKGNvbnN0IFQmIHZhbHVlKQogICAgIHJldHVybiBzdHJlYW0udG9DU3RyaW5nKCk7CiB9CiAK
Ky8vIENvbnZlcnQgdG8gYSBTdHJpbmcgdXNpbmcgVVRGOCBjb252ZXJzaW9uLgordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK1N0cmluZyB0b1N0cmluZyhjb25zdCBUJiB2YWx1ZSkKK3sKKyAgICBTdHJp
bmdQcmludFN0cmVhbSBzdHJlYW07CisgICAgc3RyZWFtLnByaW50KHZhbHVlKTsKKyAgICByZXR1
cm4gc3RyZWFtLnRvU3RyaW5nKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBX
VEY6OlN0cmluZ1ByaW50U3RyZWFtOwogdXNpbmcgV1RGOjp0b0NTdHJpbmc7Cit1c2luZyBXVEY6
OnRvU3RyaW5nOwogCiAjZW5kaWYgLy8gU3RyaW5nUHJpbnRTdHJlYW1faAogCg==
</data>
<flag name="review"
          id="193246"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="193251"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177344</attachid>
            <date>2012-12-03 15:10:07 -0800</date>
            <delta_ts>2012-12-03 22:06:40 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>valuedump.patch</filename>
            <type>text/plain</type>
            <size>17538</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM2MzcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEyLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBKU1ZhbHVlOjpkZXNjcmlwdGlvbigpIHdpdGggSlNWYWx1ZTo6ZHVtcChQcmludFN0
cmVhbSYpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM4NjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKU1Zh
bHVlIG5vdyBoYXMgYSBkdW1wKCkgbWV0aG9kLiBBbnl3aGVyZSB0aGF0IHlvdSB3b3VsZCBoYXZl
IHdhbnRlZCB0byB1c2UKKyAgICAgICAgZGVzY3JpcHRpb24oKSwgeW91IGNhbiBlaXRoZXIgZG8g
dG9DU3RyaW5nKHZhbHVlKS5kYXRhKCksIG9yIGlmIHRoZSBjYWxsZWUKKyAgICAgICAgaXMgYSBw
cmludCgpL2RhdGFMb2coKSBtZXRob2QgdGhlbiB5b3UganVzdCBwYXNzIHRoZSB2YWx1ZSBkaXJl
Y3RseS4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OnZhbHVlVG9Tb3VyY2VTdHJpbmcpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmFsaXpl
VW5jb25kaXRpb25hbGx5KToKKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVByb2ZpbGUuaDoKKyAg
ICAgICAgKEpTQzo6VmFsdWVQcm9maWxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogYnl0ZWNvZGUv
VmFsdWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpkdW1wKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0VmFsdWU6OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6R3JhcGg6OmR1bXApOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMpOgorICAgICAg
ICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkRlc2NyaWJlKToKKyAgICAgICAgKiBsbGlu
dC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF90cmFjZV92
YWx1ZSk6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNW
YWx1ZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmg6CisKIDIwMTItMTItMDIg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgQ1NFIHNob3Vs
ZCBub3Qga2VlcCBhbGl2ZSB0aGluZ3MgdGhhdCBhcmVuJ3QgcmVsZXZhbnQgdG8gT1NSCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTM2MzY5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
IDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmICFPUyhXSU5ET1dTKQpAQCAtMzEx
LDcgKzMxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWIKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJlKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIi0tPiAlc1xuIiwgZXhlYy0+YXJndW1lbnQo
MCkuZGVzY3JpcHRpb24oKSk7CisgICAgZnByaW50ZihzdGRlcnIsICItLT4gJXNcbiIsIHRvQ1N0
cmluZyhleGVjLT5hcmd1bWVudCgwKSkuZGF0YSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gMTM2MzY5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNiBAQCBFWFBP
UlRTCiAgICAgP2RlbGV0ZVByb3BlcnR5QnlJbmRleEBKU09iamVjdEBKU0NAQFNBX05QQVZKU0Nl
bGxAMkBQQVZFeGVjU3RhdGVAMkBJQFoKICAgICA/ZGVsZXRlUHJvcGVydHlCeUluZGV4QEpTUHJv
eHlASlNDQEBLQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASUBaCiAgICAgP2RlbGV0ZVRh
YmxlQEhhc2hUYWJsZUBKU0NAQFFCRVhYWgotICAgID9kZXNjcmlwdGlvbkBKU1ZhbHVlQEpTQ0BA
UUJFUEFEWFoKICAgICA/ZGVzcGVjaWZ5RGljdGlvbmFyeUZ1bmN0aW9uQFN0cnVjdHVyZUBKU0NA
QFFBRVhBQVZKU0dsb2JhbERhdGFAMkBWUHJvcGVydHlOYW1lQDJAQFoKICAgICA/ZGVzcGVjaWZ5
RnVuY3Rpb25UcmFuc2l0aW9uQFN0cnVjdHVyZUBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRh
QDJAUEFWMTJAVlByb3BlcnR5TmFtZUAyQEBaCiAgICAgP2Rlc3Ryb3lASlNDZWxsQEpTQ0BAS0FY
UEFWMTJAQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1
ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
d3RmL1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgog
I2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC05
OSw3ICsxMDAsNyBAQCBzdGF0aWMgU3RyaW5nIHZhbHVlVG9Tb3VyY2VTdHJpbmcoRXhlY1N0CiAg
ICAgaWYgKHZhbC5pc1N0cmluZygpKQogICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiXCIiLCBl
c2NhcGVRdW90ZXModmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSksICJcIiIpOwogCi0g
ICAgcmV0dXJuIHZhbC5kZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0b1N0cmluZyh2YWwpOwog
fQogCiBzdGF0aWMgQ1N0cmluZyBjb25zdGFudE5hbWUoRXhlY1N0YXRlKiBleGVjLCBpbnQgaywg
SlNWYWx1ZSB2YWx1ZSkKQEAgLTIyMzMsMTUgKzIyMzQsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmZp
bmFsaXplVW5jb25kaXRpb25hbGx5KAogICAgICAgICAgICAgICAgIEpTQ2VsbCogdG8gPSB0cmFu
c2l0aW9uLm1fdG8uZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKCghb3JpZ2luIHx8IEhlYXA6
OmlzTWFya2VkKG9yaWdpbikpICYmIEhlYXA6OmlzTWFya2VkKGZyb20pKQogICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiICAgIFRyYW5zaXRp
b24gdW5kZXIgJXMsICIsIEpTVmFsdWUob3JpZ2luKS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAg
ICAgICAgICBkYXRhTG9nRigiJXMgLT4gIiwgSlNWYWx1ZShmcm9tKS5kZXNjcmlwdGlvbigpKTsK
LSAgICAgICAgICAgICAgICBkYXRhTG9nRigiJXMuXG4iLCBKU1ZhbHVlKHRvKS5kZXNjcmlwdGlv
bigpKTsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgVHJhbnNpdGlvbiB1bmRlciAiLCBK
U1ZhbHVlKG9yaWdpbiksICIsICIsIEpTVmFsdWUoZnJvbSksICIgLT4gIiwgSlNWYWx1ZSh0byks
ICIuXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2RmZ0RhdGEtPndlYWtSZWZlcmVuY2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICAgICAgSlNDZWxsKiB3ZWFrID0gbV9kZmdEYXRhLT53ZWFrUmVmZXJlbmNlc1tpXS5nZXQoKTsK
ICAgICAgICAgICAgICAgICBpZiAoSGVhcDo6aXNNYXJrZWQod2VhaykpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgV2VhayByZWZl
cmVuY2UgJXMuXG4iLCBKU1ZhbHVlKHdlYWspLmRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAg
ICAgIGRhdGFMb2coIiAgICBXZWFrIHJlZmVyZW5jZSAiLCBKU1ZhbHVlKHdlYWspLCAiLlxuIik7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAxMzYzNjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAg
ICAgIGlmIChtX3NpbmdsZXRvblZhbHVlSXNUb3ApCiAgICAgICAgICAgICBvdXQucHJpbnRmKCJU
T1AiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMiLCBtX3Npbmds
ZXRvblZhbHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgb3V0LnByaW50KG1fc2luZ2xl
dG9uVmFsdWUpOwogICAgICAgICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRvdGFsTnVtYmVyT2ZCdWNrZXRzOyArK2kpIHsKICAgICAgICAgICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUobV9idWNrZXRzW2ldKTsKQEAgLTEyNyw3
ICsxMjcsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgICAgICAgICAgICAg
IGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIG91dC5wcmludGYoIiwgIik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJXMiLCB2
YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQodmFsdWUpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxMzYzNjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzEsNyArMzMxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgb3V0LnByaW50Zigi
YXJndW1lbnRzIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb25zdGFudDoK
LSAgICAgICAgICAgIG91dC5wcmludGYoIlslc10iLCBjb25zdGFudCgpLmRlc2NyaXB0aW9uKCkp
OworICAgICAgICAgICAgb3V0LnByaW50KCJbIiwgY29uc3RhbnQoKSwgIl0iKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIERvbnRLbm93OgogICAgICAgICAgICAgb3V0LnByaW50
ZigiISIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZh
bHVlLmgJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzcsNyArMzc3LDcgQEAgc3RydWN0
IEFic3RyYWN0VmFsdWUgewogICAgICAgICAgICAgIigiLCBTcGVjdWxhdGlvbkR1bXAobV90eXBl
KSwgIiwgIiwgYXJyYXlNb2Rlc1RvU3RyaW5nKG1fYXJyYXlNb2RlcyksICIsICIsCiAgICAgICAg
ICAgICBtX2N1cnJlbnRLbm93blN0cnVjdHVyZSwgIiwgIiwgbV9mdXR1cmVQb3NzaWJsZVN0cnVj
dHVyZSk7CiAgICAgICAgIGlmICghIW1fdmFsdWUpCi0gICAgICAgICAgICBvdXQucHJpbnQoIiwg
IiwgbV92YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIG91dC5wcmludCgiLCAiLCBt
X3ZhbHVlKTsKICAgICAgICAgb3V0LnByaW50KCIpIik7CiAgICAgfQogICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDUsNyArMjQ1LDcgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdAog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZS5udW1Db25zdGFudHMoKTsgKytp
KSB7CiAgICAgICAgICAgICBpZiAoaSkKICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIiwgIik7
Ci0gICAgICAgICAgICBvdXQucHJpbnQobV9jb2RlQmxvY2stPmNvbnN0YW50QnVmZmVyKG5vZGUu
c3RhcnRDb25zdGFudCgpKVtpXS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dChtX2NvZGVCbG9jay0+Y29uc3RhbnRCdWZmZXIobm9kZS5zdGFydENvbnN0YW50KCkpW2ldKTsK
ICAgICAgICAgfQogICAgICAgICBvdXQucHJpbnQoIl0iKTsKICAgICAgICAgaGFzUHJpbnRlZCA9
IHRydWU7CkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYg
b3V0LCBjb25zdAogICAgIGlmIChvcCA9PSBKU0NvbnN0YW50KSB7CiAgICAgICAgIG91dC5wcmlu
dChoYXNQcmludGVkID8gIiwgIiA6ICIiLCAiJCIsIG5vZGUuY29uc3RhbnROdW1iZXIoKSk7CiAg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpOwotICAg
ICAgICBvdXQucHJpbnQoIiA9ICIsIHZhbHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAgICBvdXQu
cHJpbnQoIiA9ICIsIHZhbHVlKTsKICAgICAgICAgaGFzUHJpbnRlZCA9IHRydWU7CiAgICAgfQog
ICAgIGlmIChvcCA9PSBXZWFrSlNDb25zdGFudCkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxMzYzNjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgorI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNs
dWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KQEAgLTQwMSw3ICs0MDIsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJz
KENhbGxGcmFtCiAgICAgICAgIEpTVmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAgICAgIGlu
dCByZWdpc3Rlck51bWJlciA9IGl0IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsKICAgICAgICAg
U3RyaW5nIG5hbWUgPSBjb2RlQmxvY2stPm5hbWVGb3JSZWdpc3RlcihyZWdpc3Rlck51bWJlcik7
Ci0gICAgICAgIGRhdGFMb2dGKCJbciUgM2QgJTE0c10gICAgICB8ICUxMHAgfCAlLTE2cyAweCVs
bGQgXG4iLCByZWdpc3Rlck51bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQsIHYuZGVzY3Jp
cHRpb24oKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOworICAgICAgICBkYXRhTG9n
RigiW3IlIDNkICUxNHNdICAgICAgfCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVnaXN0ZXJO
dW1iZXIsIG5hbWUuYXNjaWkoKS5kYXRhKCksIGl0LCB0b0NTdHJpbmcodikuZGF0YSgpLCAobG9u
ZyBsb25nKUpTVmFsdWU6OmVuY29kZSh2KSk7CiAgICAgICAgIGl0Kys7CiAgICAgfQogICAgIApA
QCAtNDM2LDcgKzQzNyw3IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZy
YW0KICAgICAgICAgICAgIEpTVmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAgICAgICAgICBp
bnQgcmVnaXN0ZXJOdW1iZXIgPSBpdCAtIGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCk7CiAgICAgICAg
ICAgICBTdHJpbmcgbmFtZSA9IGNvZGVCbG9jay0+bmFtZUZvclJlZ2lzdGVyKHJlZ2lzdGVyTnVt
YmVyKTsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbciUgM2QgJTE0c10gICAgICB8ICUxMHAgfCAl
LTE2cyAweCVsbGQgXG4iLCByZWdpc3Rlck51bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQs
IHYuZGVzY3JpcHRpb24oKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOworICAgICAg
ICAgICAgZGF0YUxvZ0YoIltyJSAzZCAlMTRzXSAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBc
biIsIHJlZ2lzdGVyTnVtYmVyLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBpdCwgdG9DU3RyaW5nKHYp
LmRhdGEoKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOwogICAgICAgICAgICAgKytp
dDsKICAgICAgICAgICAgICsrcmVnaXN0ZXJDb3VudDsKICAgICAgICAgfSB3aGlsZSAoaXQgIT0g
ZW5kKTsKQEAgLTQ0Nyw3ICs0NDgsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJz
KENhbGxGcmFtCiAgICAgaWYgKGl0ICE9IGVuZCkgewogICAgICAgICBkbyB7CiAgICAgICAgICAg
ICBKU1ZhbHVlIHYgPSAoKml0KS5qc1ZhbHVlKCk7Ci0gICAgICAgICAgICBkYXRhTG9nRigiW3Il
IDNkXSAgICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBcbiIsIHJlZ2lz
dGVyQ291bnQsIGl0LCB2LmRlc2NyaXB0aW9uKCksIChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2Rl
KHYpKTsKKyAgICAgICAgICAgIGRhdGFMb2dGKCJbciUgM2RdICAgICAgICAgICAgICAgICAgICAg
fCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVnaXN0ZXJDb3VudCwgaXQsIHRvQ1N0cmluZyh2
KS5kYXRhKCksIChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2RlKHYpKTsKICAgICAgICAgICAgICsr
aXQ7CiAgICAgICAgICAgICArK3JlZ2lzdGVyQ291bnQ7CiAgICAgICAgIH0gd2hpbGUgKGl0ICE9
IGVuZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5jcHAJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNp
bmNsdWRlICJMTEludEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVy
LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApAQCAtMTg0LDE3
ICsxODUsMTggQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogICAg
ICAgICBFbmNvZGVkSlNWYWx1ZSBhc1ZhbHVlOwogICAgIH0gdTsKICAgICB1LmFzVmFsdWUgPSBK
U1ZhbHVlOjplbmNvZGUodmFsdWUpOwotICAgIGRhdGFMb2dGKCIlcCAvICVwOiBleGVjdXRpbmcg
YmMjJXp1LCBvcCMldTogVHJhY2UoJWQpOiAlZDogJWQ6ICUwOHg6JTA4eDogJXNcbiIsCi0gICAg
ICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwKLSAgICAgICAgICAgIGV4ZWMsCi0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4ocGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rp
b25zKCkuYmVnaW4oKSksCi0gICAgICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0
ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSwKLSAgICAgICAgICAgIGZyb21XaGVyZSwK
LSAgICAgICAgICAgIG9wZXJhbmQsCi0gICAgICAgICAgICBwY1tvcGVyYW5kXS51Lm9wZXJhbmQs
Ci0gICAgICAgICAgICB1LmJpdHMudGFnLAotICAgICAgICAgICAgdS5iaXRzLnBheWxvYWQsCi0g
ICAgICAgICAgICB2YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICBkYXRhTG9nRigKKyAgICAgICAg
IiVwIC8gJXA6IGV4ZWN1dGluZyBiYyMlenUsIG9wIyV1OiBUcmFjZSglZCk6ICVkOiAlZDogJTA4
eDolMDh4OiAlc1xuIiwKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksCisgICAgICAgIGV4ZWMs
CisgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKKyAgICAgICAgZXhlYy0+Z2xvYmFsRGF0YSgpLmludGVy
cHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSksCisgICAgICAgIGZyb21XaGVyZSwK
KyAgICAgICAgb3BlcmFuZCwKKyAgICAgICAgcGNbb3BlcmFuZF0udS5vcGVyYW5kLAorICAgICAg
ICB1LmJpdHMudGFnLAorICAgICAgICB1LmJpdHMucGF5bG9hZCwKKyAgICAgICAgdG9DU3RyaW5n
KHZhbHVlKS5kYXRhKCkpOwogICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwCShyZXZpc2lvbiAxMzYzNjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTkzLDUxICsxOTMsNDYgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1pdGl2ZUJ5SW5k
ZXgoRXhlYwogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQ
cm9wZXJ0eVdyaXRlRXJyb3IpOwogfQogCi1jaGFyKiBKU1ZhbHVlOjpkZXNjcmlwdGlvbigpIGNv
bnN0Cit2b2lkIEpTVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IHNpemUgPSAyNTY7Ci0gICAgc3RhdGljIGNoYXIgZGVzY3JpcHRp
b25bc2l6ZV07Ci0KICAgICBpZiAoISp0aGlzKQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlv
biwgc2l6ZSwgIjxKU1ZhbHVlKCk+Iik7CisgICAgICAgIG91dC5wcmludCgiPEpTVmFsdWUoKT4i
KTsKICAgICBlbHNlIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2NyaXB0aW9u
LCBzaXplLCAiSW50MzI6ICVkIiwgYXNJbnQzMigpKTsKKyAgICAgICAgb3V0LnByaW50ZigiSW50
MzI6ICVkIiwgYXNJbnQzMigpKTsKICAgICBlbHNlIGlmIChpc0RvdWJsZSgpKSB7CiAjaWYgVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgc25wcmludGYoZGVzY3JpcHRpb24sIHNpemUsICJEb3VibGU6
ICVsbGQsICVsZiIsIChsb25nIGxvbmcpcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGFzRG91Ymxl
KCkpLCBhc0RvdWJsZSgpKTsKKyAgICAgICAgb3V0LnByaW50ZigiRG91YmxlOiAlbGxkLCAlbGYi
LCAobG9uZyBsb25nKXJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChhc0RvdWJsZSgpKSwgYXNEb3Vi
bGUoKSk7CiAjZWxzZQogICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICBkb3VibGUgYXNEb3Vi
bGU7CiAgICAgICAgICAgICB1aW50MzJfdCBhc1R3b0ludDMyc1syXTsKICAgICAgICAgfSB1Owog
ICAgICAgICB1LmFzRG91YmxlID0gYXNEb3VibGUoKTsKLSAgICAgICAgc25wcmludGYoZGVzY3Jp
cHRpb24sIHNpemUsICJEb3VibGU6ICUwOHg6JTA4eCwgJWxmIiwgdS5hc1R3b0ludDMyc1sxXSwg
dS5hc1R3b0ludDMyc1swXSwgYXNEb3VibGUoKSk7CisgICAgICAgIG91dC5wcmludGYoIkRvdWJs
ZTogJTA4eDolMDh4LCAlbGYiLCB1LmFzVHdvSW50MzJzWzFdLCB1LmFzVHdvSW50MzJzWzBdLCBh
c0RvdWJsZSgpKTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAgICAg
aWYgKGFzQ2VsbCgpLT5pbmhlcml0cygmU3RydWN0dXJlOjpzX2luZm8pKSB7CiAgICAgICAgICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGpzQ2FzdDxTdHJ1Y3R1cmUqPihhc0NlbGwoKSk7Ci0g
ICAgICAgICAgICBzbnByaW50ZigKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwgc2l6ZSwg
IlN0cnVjdHVyZTogJXA6ICVzLCAlcyIsCisgICAgICAgICAgICBvdXQucHJpbnRmKAorICAgICAg
ICAgICAgICAgICJTdHJ1Y3R1cmU6ICVwOiAlcywgJXMiLAogICAgICAgICAgICAgICAgIHN0cnVj
dHVyZSwgc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lLAogICAgICAgICAgICAgICAg
IGluZGV4aW5nVHlwZVRvU3RyaW5nKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlSW5jbHVkaW5nSGlz
dG9yeSgpKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzbnByaW50ZigKLSAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiwgc2l6ZSwgIkNlbGw6ICVwIC0+ICVwICglcDogJXMsICVz
KSIsCisgICAgICAgICAgICBvdXQucHJpbnRmKAorICAgICAgICAgICAgICAgICJDZWxsOiAlcCAt
PiAlcCAoJXA6ICVzLCAlcykiLAogICAgICAgICAgICAgICAgIGFzQ2VsbCgpLCBpc09iamVjdCgp
ID8gYXNPYmplY3QoKnRoaXMpLT5idXR0ZXJmbHkoKSA6IDAsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUo
KSwgYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lLAogICAgICAg
ICAgICAgICAgIGluZGV4aW5nVHlwZVRvU3RyaW5nKGFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+aW5k
ZXhpbmdUeXBlSW5jbHVkaW5nSGlzdG9yeSgpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYg
KGlzVHJ1ZSgpKQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIlRydWUiKTsK
KyAgICAgICAgb3V0LnByaW50KCJUcnVlIik7CiAgICAgZWxzZSBpZiAoaXNGYWxzZSgpKQotICAg
ICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIkZhbHNlIik7CisgICAgICAgIG91dC5w
cmludCgiRmFsc2UiKTsKICAgICBlbHNlIGlmIChpc051bGwoKSkKLSAgICAgICAgc25wcmludGYo
ZGVzY3JpcHRpb24sIHNpemUsICJOdWxsIik7CisgICAgICAgIG91dC5wcmludCgiTnVsbCIpOwog
ICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2NyaXB0aW9u
LCBzaXplLCAiVW5kZWZpbmVkIik7CisgICAgICAgIG91dC5wcmludCgiVW5kZWZpbmVkIik7CiAg
ICAgZWxzZQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIklOVkFMSUQiKTsK
LQotICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICAgICAgb3V0LnByaW50KCJJTlZBTElEIik7
CiB9CiAKIC8vIFRoaXMgaW4gdGhlIFRvSW50MzIgb3BlcmF0aW9uIGlzIGRlZmluZWQgaW4gc2Vj
dGlvbiA5LjUgb2YgdGhlIEVDTUEtMjYyIHNwZWMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNWYWx1ZS5oCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsyNTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIAogICAgIEpTVmFsdWUgc3RydWN0dXJlT3JVbmRlZmluZWQoKSBj
b25zdDsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNoYXIqIGRlc2NyaXB0aW9uKCkgY29uc3Q7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAK
ICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogc3ludGhlc2l6ZVByb3RvdHlwZShFeGVj
U3RhdGUqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjM3MSkKKysrIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTItMDMgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIEpTVmFsdWU6
OmRlc2NyaXB0aW9uKCkgd2l0aCBKU1ZhbHVlOjpkdW1wKFByaW50U3RyZWFtJikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1ha2UgaXQgZWFzaWVyIHRvIGdl
dCBhIFN0cmluZyBmcm9tIGEgU3RyaW5nUHJpbnRTdHJlYW0uCisKKyAgICAgICAgKiB3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdQcmludFN0cmVhbTo6dG9T
dHJpbmcpOgorICAgICAgICAqIHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oOgorICAgICAgICAoU3Ry
aW5nUHJpbnRTdHJlYW0pOgorICAgICAgICAoV1RGOjp0b1N0cmluZyk6CisKIDIwMTItMTItMDIg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBJdCBzaG91bGQgYmUg
cG9zc2libGUgdG8gYnVpbGQgYW5kIHJ1biB3aXRoIERGR19FTkFCTEUoUFJPUEFHQVRJT05fVkVS
Qk9TRSkKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5jcHAJKHJldmlzaW9uIDEz
NjM2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTIsNiArOTIsMTIgQEAgQ1N0cmluZyBTdHJpbmdQcmludFN0cmVhbTo6dG9DU3Ry
aW5nKCkKICAgICByZXR1cm4gQ1N0cmluZyhtX2J1ZmZlciwgbV9uZXh0KTsKIH0KIAorU3RyaW5n
IFN0cmluZ1ByaW50U3RyZWFtOjp0b1N0cmluZygpCit7CisgICAgQVNTRVJUKG1fbmV4dCA9PSBz
dHJsZW4obV9idWZmZXIpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChtX2J1ZmZlciwg
bV9uZXh0KTsKK30KKwogdm9pZCBTdHJpbmdQcmludFN0cmVhbTo6aW5jcmVhc2VTaXplKHNpemVf
dCBuZXdTaXplKQogewogICAgIEFTU0VSVChuZXdTaXplID4gbV9zaXplKTsKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAkocmV2aXNpb24gMTM2MzY5KQorKysgU291cmNlL1dURi93
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTcgKzI4LDE5IEBA
CiAKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYg
ewogCiBjbGFzcyBTdHJpbmdQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0cmVhbSB7CiBwdWJs
aWM6Ci0gICAgU3RyaW5nUHJpbnRTdHJlYW0oKTsKLSAgICB+U3RyaW5nUHJpbnRTdHJlYW0oKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nUHJpbnRTdHJlYW0oKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgflN0cmluZ1ByaW50U3RyZWFtKCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBXVEZfQVRUUklCVVRFX1BSSU5U
RigyLCAwKTsKICAgICAKLSAgICBDU3RyaW5nIHRvQ1N0cmluZygpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBDU3RyaW5nIHRvQ1N0cmluZygpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJp
bmcgdG9TdHJpbmcoKTsKICAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBpbmNyZWFzZVNpemUoc2l6
ZV90KTsKQEAgLTU4LDEwICs2MCwxOSBAQCBDU3RyaW5nIHRvQ1N0cmluZyhjb25zdCBUJiB2YWx1
ZSkKICAgICByZXR1cm4gc3RyZWFtLnRvQ1N0cmluZygpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFQmIHZhbHVlKQoreworICAgIFN0cmluZ1ByaW50
U3RyZWFtIHN0cmVhbTsKKyAgICBzdHJlYW0ucHJpbnQodmFsdWUpOworICAgIHJldHVybiBzdHJl
YW0udG9TdHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6U3Ry
aW5nUHJpbnRTdHJlYW07CiB1c2luZyBXVEY6OnRvQ1N0cmluZzsKK3VzaW5nIFdURjo6dG9TdHJp
bmc7CiAKICNlbmRpZiAvLyBTdHJpbmdQcmludFN0cmVhbV9oCiAK
</data>
<flag name="commit-queue"
          id="193495"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177416</attachid>
            <date>2012-12-03 22:06:40 -0800</date>
            <delta_ts>2012-12-03 22:06:40 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>valuedump.patch</filename>
            <type>text/plain</type>
            <size>19938</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM2MzcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEyLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBKU1ZhbHVlOjpkZXNjcmlwdGlvbigpIHdpdGggSlNWYWx1ZTo6ZHVtcChQcmludFN0
cmVhbSYpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM4NjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKU1Zh
bHVlIG5vdyBoYXMgYSBkdW1wKCkgbWV0aG9kLiBBbnl3aGVyZSB0aGF0IHlvdSB3b3VsZCBoYXZl
IHdhbnRlZCB0byB1c2UKKyAgICAgICAgZGVzY3JpcHRpb24oKSwgeW91IGNhbiBlaXRoZXIgZG8g
dG9DU3RyaW5nKHZhbHVlKS5kYXRhKCksIG9yIGlmIHRoZSBjYWxsZWUKKyAgICAgICAgaXMgYSBw
cmludCgpL2RhdGFMb2coKSBtZXRob2QgdGhlbiB5b3UganVzdCBwYXNzIHRoZSB2YWx1ZSBkaXJl
Y3RseS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6dmFsdWVUb1NvdXJjZVN0cmluZyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVByb2ZpbGVCYXNlOjpkdW1wKToKKyAgICAgICAg
KiBieXRlY29kZS9WYWx1ZVJlY292ZXJ5Lmg6CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6
OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6QWJzdHJhY3RWYWx1ZTo6ZHVtcCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVtcCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVy
cyk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uRGVzY3JpYmUpOgorICAg
ICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6Omxs
aW50X3RyYWNlX3ZhbHVlKToKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpkdW1wKToKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUuaDoKKwog
MjAxMi0xMi0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERG
RyBDU0Ugc2hvdWxkIG5vdCBrZWVwIGFsaXZlIHRoaW5ncyB0aGF0IGFyZW4ndCByZWxldmFudCB0
byBPU1IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBA
QAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFt
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgIU9TKFdJTkRP
V1MpCkBAIC0zMTEsNyArMzEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkRlYgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVzY3JpYmUo
RXhlY1N0YXRlKiBleGVjKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiLS0+ICVzXG4iLCBleGVj
LT5hcmd1bWVudCgwKS5kZXNjcmlwdGlvbigpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIi0tPiAl
c1xuIiwgdG9DU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApKS5kYXRhKCkpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCShyZXZpc2lvbiAxMzYz
NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEs
NiBAQCBFWFBPUlRTCiAgICAgPz8wRHJvcEFsbExvY2tzQEpTTG9ja0BKU0NAQFFBRUBQQVZKU0ds
b2JhbERhdGFAMkBAWgogICAgID8/MER5bmFtaWNHbG9iYWxPYmplY3RTY29wZUBKU0NAQFFBRUBB
QVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQEBaIAogICAgID8/MEVycm9ySGFu
ZGxpbmdNb2RlQEludGVycHJldGVyQEpTQ0BAUUFFQFBBVkV4ZWNTdGF0ZUAyQEBaCi0gICAgPz8x
RXJyb3JIYW5kbGluZ01vZGVASW50ZXJwcmV0ZXJASlNDQEBRQUVAWFoKICAgICA/PzBJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZUBNZW1vcnlJbnN0cnVtZW50YXRpb25AV1RGQEBRQUVAUEFWTWVtb3J5
T2JqZWN0SW5mb0AyQEBaCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0ds
b2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNHbG9iYWxPYmplY3RASlND
QEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAUEJVR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGVAMUBAWgpAQCAtMjcsNiArMjYsNyBAQCBFWFBPUlRTCiAgICAgPz8wUmVnRXhwT2Jq
ZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhw
QDFAQFoKICAgICA/PzBTSEExQFdURkBAUUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BA
SUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBaCisgICAgPz8wU3RyaW5nUHJp
bnRTdHJlYW1AV1RGQEBRQUVAWFoKICAgICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVAQUFWSlNHbG9i
YWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5cGVJbmZvQDFAUEJV
Q2xhc3NJbmZvQDFARUhAWgogICAgID8/MFRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAg
ID8/MFdURlRocmVhZERhdGFAV1RGQEBRQUVAWFoKQEAgLTM2LDYgKzM2LDcgQEAgRVhQT1JUUwog
ICAgID8/MUNvbGxhdG9yQFdURkBAUUFFQFhaCiAgICAgPz8xRGVidWdnZXJASlNDQEBVQUVAWFoK
ICAgICA/PzFEcm9wQWxsTG9ja3NASlNMb2NrQEpTQ0BAUUFFQFhaCisgICAgPz8xRXJyb3JIYW5k
bGluZ01vZGVASW50ZXJwcmV0ZXJASlNDQEBRQUVAWFoKICAgICA/PzFKU0dsb2JhbERhdGFASlND
QEBRQUVAWFoKICAgICA/PzFKU0dsb2JhbE9iamVjdEBKU0NAQFFBRUBYWgogICAgID8/MUpTTG9j
a0hvbGRlckBKU0NAQFFBRUBYWgpAQCAtNDQsNiArNDUsNyBAQCBFWFBPUlRTCiAgICAgPz8xTXV0
ZXhAV1RGQEBRQUVAWFoKICAgICA/PzFSZWZDb3VudGVkTGVha0NvdW50ZXJAV1RGQEBRQUVAWFoK
ICAgICA/PzFTb3VyY2VQcm92aWRlckNhY2hlQEpTQ0BAUUFFQFhaCisgICAgPz8xU3RyaW5nUHJp
bnRTdHJlYW1AV1RGQEBVQUVAWFoKICAgICA/PzFUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVAWFoK
ICAgICA/PzFXZWFrSGFuZGxlT3duZXJASlNDQEBVQUVAWFoKICAgICA/PzFXVEZUaHJlYWREYXRh
QFdURkBAUUFFQFhaCkBAIC0xNzUsNyArMTc3LDYgQEAgRVhQT1JUUwogICAgID9kZWxldGVQcm9w
ZXJ0eUJ5SW5kZXhASlNPYmplY3RASlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJA
SUBaCiAgICAgP2RlbGV0ZVByb3BlcnR5QnlJbmRleEBKU1Byb3h5QEpTQ0BAS0FfTlBBVkpTQ2Vs
bEAyQFBBVkV4ZWNTdGF0ZUAyQElAWgogICAgID9kZWxldGVUYWJsZUBIYXNoVGFibGVASlNDQEBR
QkVYWFoKLSAgICA/ZGVzY3JpcHRpb25ASlNWYWx1ZUBKU0NAQFFCRVBBRFhaCiAgICAgP2Rlc3Bl
Y2lmeURpY3Rpb25hcnlGdW5jdGlvbkBTdHJ1Y3R1cmVASlNDQEBRQUVYQUFWSlNHbG9iYWxEYXRh
QDJAVlByb3BlcnR5TmFtZUAyQEBaCiAgICAgP2Rlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbkBT
dHJ1Y3R1cmVASlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVjEyQFZQcm9wZXJ0eU5h
bWVAMkBAWgogICAgID9kZXN0cm95QEpTQ2VsbEBKU0NAQEtBWFBBVjEyQEBaCkBAIC0xODYsNiAr
MTg3LDcgQEAgRVhQT1JUUwogICAgID9kaWRUaW1lT3V0QFRpbWVvdXRDaGVja2VyQEpTQ0BAUUFF
X05QQVZFeGVjU3RhdGVAMkBAWgogICAgID9kaXNwbGF5TmFtZUBKU0Z1bmN0aW9uQEpTQ0BAUUFF
P0FWU3RyaW5nQFdURkBAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/ZHRvYUBXVEZAQFlBWFFBRE5B
QV9OQUFIQUFJQFoKKyAgICA/ZHVtcEBKU1ZhbHVlQEpTQ0BAUUJFWEFBVlByaW50U3RyZWFtQFdU
RkBAQFoKICAgICA/ZHVtcEFsbE9wdGlvbnNAT3B0aW9uc0BKU0NAQFNBWFBBVV9pb2J1ZkBAQFoK
ICAgICA/ZHVtcENhbGxGcmFtZUBJbnRlcnByZXRlckBKU0NAQFFBRVhQQVZFeGVjU3RhdGVAMkBA
WgogICAgID9kdW1wU2FtcGxlRGF0YUBKU0dsb2JhbERhdGFASlNDQEBRQUVYUEFWRXhlY1N0YXRl
QDJAQFoKQEAgLTM4NCw2ICszODYsNyBAQCBFWFBPUlRTCiAgICAgP3Rsc0tleUNvdW50QFdURkBA
WUFBQUpYWgogICAgID90bHNLZXlzQFdURkBAWUFQQUtYWgogICAgID90b0Jvb2xlYW5ASlNTdHJp
bmdASlNDQEBRQkVfTlhaCisgICAgP3RvQ1N0cmluZ0BTdHJpbmdQcmludFN0cmVhbUBXVEZAQFFB
RT9BVkNTdHJpbmdAMkBYWgogICAgID90b0RvdWJsZUBNZWRpYVRpbWVAV1RGQEBRQkVOWFogCiAg
ICAgP1RvRXhwb25lbnRpYWxARG91YmxlVG9TdHJpbmdDb252ZXJ0ZXJAZG91YmxlX2NvbnZlcnNp
b25AV1RGQEBRQkVfTk5IUEFWU3RyaW5nQnVpbGRlckAyM0BAWgogICAgID9Ub0ZpeGVkQERvdWJs
ZVRvU3RyaW5nQ29udmVydGVyQGRvdWJsZV9jb252ZXJzaW9uQFdURkBAUUJFX05OSFBBVlN0cmlu
Z0J1aWxkZXJAMjNAQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAog
I2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKERGR19KSVQp
CkBAIC05OSw3ICsxMDAsNyBAQCBzdGF0aWMgU3RyaW5nIHZhbHVlVG9Tb3VyY2VTdHJpbmcoRXhl
Y1N0CiAgICAgaWYgKHZhbC5pc1N0cmluZygpKQogICAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
XCIiLCBlc2NhcGVRdW90ZXModmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSksICJcIiIp
OwogCi0gICAgcmV0dXJuIHZhbC5kZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0b1N0cmluZyh2
YWwpOwogfQogCiBzdGF0aWMgQ1N0cmluZyBjb25zdGFudE5hbWUoRXhlY1N0YXRlKiBleGVjLCBp
bnQgaywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTIyMzMsMTUgKzIyMzQsMTMgQEAgdm9pZCBDb2RlQmxv
Y2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KAogICAgICAgICAgICAgICAgIEpTQ2VsbCogdG8g
PSB0cmFuc2l0aW9uLm1fdG8uZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKCghb3JpZ2luIHx8
IEhlYXA6OmlzTWFya2VkKG9yaWdpbikpICYmIEhlYXA6OmlzTWFya2VkKGZyb20pKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiICAgIFRy
YW5zaXRpb24gdW5kZXIgJXMsICIsIEpTVmFsdWUob3JpZ2luKS5kZXNjcmlwdGlvbigpKTsKLSAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiJXMgLT4gIiwgSlNWYWx1ZShmcm9tKS5kZXNjcmlwdGlv
bigpKTsKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiJXMuXG4iLCBKU1ZhbHVlKHRvKS5kZXNj
cmlwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgVHJhbnNpdGlvbiB1bmRl
ciAiLCBKU1ZhbHVlKG9yaWdpbiksICIsICIsIEpTVmFsdWUoZnJvbSksICIgLT4gIiwgSlNWYWx1
ZSh0byksICIuXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX2RmZ0RhdGEtPndlYWtSZWZlcmVuY2VzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgICAgICAgICAgSlNDZWxsKiB3ZWFrID0gbV9kZmdEYXRhLT53ZWFrUmVmZXJlbmNlc1tpXS5n
ZXQoKTsKICAgICAgICAgICAgICAgICBpZiAoSGVhcDo6aXNNYXJrZWQod2VhaykpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgV2Vh
ayByZWZlcmVuY2UgJXMuXG4iLCBKU1ZhbHVlKHdlYWspLmRlc2NyaXB0aW9uKCkpOworICAgICAg
ICAgICAgICAgIGRhdGFMb2coIiAgICBXZWFrIHJlZmVyZW5jZSAiLCBKU1ZhbHVlKHdlYWspLCAi
LlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAxMzYz
NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7
CiAgICAgICAgIGlmIChtX3NpbmdsZXRvblZhbHVlSXNUb3ApCiAgICAgICAgICAgICBvdXQucHJp
bnRmKCJUT1AiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMiLCBt
X3NpbmdsZXRvblZhbHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgb3V0LnByaW50KG1f
c2luZ2xldG9uVmFsdWUpOwogICAgICAgICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdGFsTnVtYmVyT2ZCdWNrZXRzOyArK2kpIHsKICAgICAg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUobV9idWNrZXRzW2ldKTsKQEAg
LTEyNyw3ICsxMjcsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGYoIiwgIik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50Zigi
JXMiLCB2YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQodmFs
dWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxMzYzNjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMzEsNyArMzMxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgb3V0LnBy
aW50ZigiYXJndW1lbnRzIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb25z
dGFudDoKLSAgICAgICAgICAgIG91dC5wcmludGYoIlslc10iLCBjb25zdGFudCgpLmRlc2NyaXB0
aW9uKCkpOworICAgICAgICAgICAgb3V0LnByaW50KCJbIiwgY29uc3RhbnQoKSwgIl0iKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIERvbnRLbm93OgogICAgICAgICAgICAgb3V0
LnByaW50ZigiISIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFZhbHVlLmgJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzcsNyArMzc3LDcgQEAg
c3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgICAgICAgICAgIigiLCBTcGVjdWxhdGlvbkR1bXAo
bV90eXBlKSwgIiwgIiwgYXJyYXlNb2Rlc1RvU3RyaW5nKG1fYXJyYXlNb2RlcyksICIsICIsCiAg
ICAgICAgICAgICBtX2N1cnJlbnRLbm93blN0cnVjdHVyZSwgIiwgIiwgbV9mdXR1cmVQb3NzaWJs
ZVN0cnVjdHVyZSk7CiAgICAgICAgIGlmICghIW1fdmFsdWUpCi0gICAgICAgICAgICBvdXQucHJp
bnQoIiwgIiwgbV92YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIG91dC5wcmludCgi
LCAiLCBtX3ZhbHVlKTsKICAgICAgICAgb3V0LnByaW50KCIpIik7CiAgICAgfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEzNjM2OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBj
b25zdAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZS5udW1Db25zdGFudHMo
KTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoaSkKICAgICAgICAgICAgICAgICBvdXQucHJpbnQo
IiwgIik7Ci0gICAgICAgICAgICBvdXQucHJpbnQobV9jb2RlQmxvY2stPmNvbnN0YW50QnVmZmVy
KG5vZGUuc3RhcnRDb25zdGFudCgpKVtpXS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIG91
dC5wcmludChtX2NvZGVCbG9jay0+Y29uc3RhbnRCdWZmZXIobm9kZS5zdGFydENvbnN0YW50KCkp
W2ldKTsKICAgICAgICAgfQogICAgICAgICBvdXQucHJpbnQoIl0iKTsKICAgICAgICAgaGFzUHJp
bnRlZCA9IHRydWU7CkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0
cmVhbSYgb3V0LCBjb25zdAogICAgIGlmIChvcCA9PSBKU0NvbnN0YW50KSB7CiAgICAgICAgIG91
dC5wcmludChoYXNQcmludGVkID8gIiwgIiA6ICIiLCAiJCIsIG5vZGUuY29uc3RhbnROdW1iZXIo
KSk7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgp
OwotICAgICAgICBvdXQucHJpbnQoIiA9ICIsIHZhbHVlLmRlc2NyaXB0aW9uKCkpOworICAgICAg
ICBvdXQucHJpbnQoIiA9ICIsIHZhbHVlKTsKICAgICAgICAgaGFzUHJpbnRlZCA9IHRydWU7CiAg
ICAgfQogICAgIGlmIChvcCA9PSBXZWFrSlNDb25zdGFudCkgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAx
MzYzNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8bGltaXRzLmg+
CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgorI2luY2x1
ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KQEAgLTQwMSw3ICs0MDIsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVn
aXN0ZXJzKENhbGxGcmFtCiAgICAgICAgIEpTVmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAg
ICAgIGludCByZWdpc3Rlck51bWJlciA9IGl0IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsKICAg
ICAgICAgU3RyaW5nIG5hbWUgPSBjb2RlQmxvY2stPm5hbWVGb3JSZWdpc3RlcihyZWdpc3Rlck51
bWJlcik7Ci0gICAgICAgIGRhdGFMb2dGKCJbciUgM2QgJTE0c10gICAgICB8ICUxMHAgfCAlLTE2
cyAweCVsbGQgXG4iLCByZWdpc3Rlck51bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQsIHYu
ZGVzY3JpcHRpb24oKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOworICAgICAgICBk
YXRhTG9nRigiW3IlIDNkICUxNHNdICAgICAgfCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVn
aXN0ZXJOdW1iZXIsIG5hbWUuYXNjaWkoKS5kYXRhKCksIGl0LCB0b0NTdHJpbmcodikuZGF0YSgp
LCAobG9uZyBsb25nKUpTVmFsdWU6OmVuY29kZSh2KSk7CiAgICAgICAgIGl0Kys7CiAgICAgfQog
ICAgIApAQCAtNDM2LDcgKzQzNyw3IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMo
Q2FsbEZyYW0KICAgICAgICAgICAgIEpTVmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7CiAgICAgICAg
ICAgICBpbnQgcmVnaXN0ZXJOdW1iZXIgPSBpdCAtIGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCk7CiAg
ICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNvZGVCbG9jay0+bmFtZUZvclJlZ2lzdGVyKHJlZ2lz
dGVyTnVtYmVyKTsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbciUgM2QgJTE0c10gICAgICB8ICUx
MHAgfCAlLTE2cyAweCVsbGQgXG4iLCByZWdpc3Rlck51bWJlciwgbmFtZS5hc2NpaSgpLmRhdGEo
KSwgaXQsIHYuZGVzY3JpcHRpb24oKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOwor
ICAgICAgICAgICAgZGF0YUxvZ0YoIltyJSAzZCAlMTRzXSAgICAgIHwgJTEwcCB8ICUtMTZzIDB4
JWxsZCBcbiIsIHJlZ2lzdGVyTnVtYmVyLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBpdCwgdG9DU3Ry
aW5nKHYpLmRhdGEoKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOwogICAgICAgICAg
ICAgKytpdDsKICAgICAgICAgICAgICsrcmVnaXN0ZXJDb3VudDsKICAgICAgICAgfSB3aGlsZSAo
aXQgIT0gZW5kKTsKQEAgLTQ0Nyw3ICs0NDgsNyBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVn
aXN0ZXJzKENhbGxGcmFtCiAgICAgaWYgKGl0ICE9IGVuZCkgewogICAgICAgICBkbyB7CiAgICAg
ICAgICAgICBKU1ZhbHVlIHYgPSAoKml0KS5qc1ZhbHVlKCk7Ci0gICAgICAgICAgICBkYXRhTG9n
RigiW3IlIDNkXSAgICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBcbiIs
IHJlZ2lzdGVyQ291bnQsIGl0LCB2LmRlc2NyaXB0aW9uKCksIChsb25nIGxvbmcpSlNWYWx1ZTo6
ZW5jb2RlKHYpKTsKKyAgICAgICAgICAgIGRhdGFMb2dGKCJbciUgM2RdICAgICAgICAgICAgICAg
ICAgICAgfCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVnaXN0ZXJDb3VudCwgaXQsIHRvQ1N0
cmluZyh2KS5kYXRhKCksIChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2RlKHYpKTsKICAgICAgICAg
ICAgICsraXQ7CiAgICAgICAgICAgICArK3JlZ2lzdGVyQ291bnQ7CiAgICAgICAgIH0gd2hpbGUg
KGl0ICE9IGVuZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDEzNjM2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcg
QEAKICNpbmNsdWRlICJMTEludEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApAQCAt
MTg0LDE3ICsxODUsMTggQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJh
YwogICAgICAgICBFbmNvZGVkSlNWYWx1ZSBhc1ZhbHVlOwogICAgIH0gdTsKICAgICB1LmFzVmFs
dWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwotICAgIGRhdGFMb2dGKCIlcCAvICVwOiBleGVj
dXRpbmcgYmMjJXp1LCBvcCMldTogVHJhY2UoJWQpOiAlZDogJWQ6ICUwOHg6JTA4eDogJXNcbiIs
Ci0gICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwKLSAgICAgICAgICAgIGV4ZWMsCi0gICAg
ICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4ocGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKSksCi0gICAgICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCkuaW50
ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSwKLSAgICAgICAgICAgIGZyb21X
aGVyZSwKLSAgICAgICAgICAgIG9wZXJhbmQsCi0gICAgICAgICAgICBwY1tvcGVyYW5kXS51Lm9w
ZXJhbmQsCi0gICAgICAgICAgICB1LmJpdHMudGFnLAotICAgICAgICAgICAgdS5iaXRzLnBheWxv
YWQsCi0gICAgICAgICAgICB2YWx1ZS5kZXNjcmlwdGlvbigpKTsKKyAgICBkYXRhTG9nRigKKyAg
ICAgICAgIiVwIC8gJXA6IGV4ZWN1dGluZyBiYyMlenUsIG9wIyV1OiBUcmFjZSglZCk6ICVkOiAl
ZDogJTA4eDolMDh4OiAlc1xuIiwKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksCisgICAgICAg
IGV4ZWMsCisgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9j
aygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKKyAgICAgICAgZXhlYy0+Z2xvYmFsRGF0YSgp
LmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSksCisgICAgICAgIGZyb21X
aGVyZSwKKyAgICAgICAgb3BlcmFuZCwKKyAgICAgICAgcGNbb3BlcmFuZF0udS5vcGVyYW5kLAor
ICAgICAgICB1LmJpdHMudGFnLAorICAgICAgICB1LmJpdHMucGF5bG9hZCwKKyAgICAgICAgdG9D
U3RyaW5nKHZhbHVlKS5kYXRhKCkpOwogICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwCShyZXZpc2lvbiAxMzYz
NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTkzLDUxICsxOTMsNDYgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1pdGl2
ZUJ5SW5kZXgoRXhlYwogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVh
ZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogfQogCi1jaGFyKiBKU1ZhbHVlOjpkZXNjcmlwdGlv
bigpIGNvbnN0Cit2b2lkIEpTVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNpemUgPSAyNTY7Ci0gICAgc3RhdGljIGNoYXIgZGVz
Y3JpcHRpb25bc2l6ZV07Ci0KICAgICBpZiAoISp0aGlzKQotICAgICAgICBzbnByaW50ZihkZXNj
cmlwdGlvbiwgc2l6ZSwgIjxKU1ZhbHVlKCk+Iik7CisgICAgICAgIG91dC5wcmludCgiPEpTVmFs
dWUoKT4iKTsKICAgICBlbHNlIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2Ny
aXB0aW9uLCBzaXplLCAiSW50MzI6ICVkIiwgYXNJbnQzMigpKTsKKyAgICAgICAgb3V0LnByaW50
ZigiSW50MzI6ICVkIiwgYXNJbnQzMigpKTsKICAgICBlbHNlIGlmIChpc0RvdWJsZSgpKSB7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgc25wcmludGYoZGVzY3JpcHRpb24sIHNpemUsICJE
b3VibGU6ICVsbGQsICVsZiIsIChsb25nIGxvbmcpcmVpbnRlcnByZXREb3VibGVUb0ludDY0KGFz
RG91YmxlKCkpLCBhc0RvdWJsZSgpKTsKKyAgICAgICAgb3V0LnByaW50ZigiRG91YmxlOiAlbGxk
LCAlbGYiLCAobG9uZyBsb25nKXJlaW50ZXJwcmV0RG91YmxlVG9JbnQ2NChhc0RvdWJsZSgpKSwg
YXNEb3VibGUoKSk7CiAjZWxzZQogICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICBkb3VibGUg
YXNEb3VibGU7CiAgICAgICAgICAgICB1aW50MzJfdCBhc1R3b0ludDMyc1syXTsKICAgICAgICAg
fSB1OwogICAgICAgICB1LmFzRG91YmxlID0gYXNEb3VibGUoKTsKLSAgICAgICAgc25wcmludGYo
ZGVzY3JpcHRpb24sIHNpemUsICJEb3VibGU6ICUwOHg6JTA4eCwgJWxmIiwgdS5hc1R3b0ludDMy
c1sxXSwgdS5hc1R3b0ludDMyc1swXSwgYXNEb3VibGUoKSk7CisgICAgICAgIG91dC5wcmludGYo
IkRvdWJsZTogJTA4eDolMDh4LCAlbGYiLCB1LmFzVHdvSW50MzJzWzFdLCB1LmFzVHdvSW50MzJz
WzBdLCBhc0RvdWJsZSgpKTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAg
ICAgICAgaWYgKGFzQ2VsbCgpLT5pbmhlcml0cygmU3RydWN0dXJlOjpzX2luZm8pKSB7CiAgICAg
ICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGpzQ2FzdDxTdHJ1Y3R1cmUqPihhc0NlbGwo
KSk7Ci0gICAgICAgICAgICBzbnByaW50ZigKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwg
c2l6ZSwgIlN0cnVjdHVyZTogJXA6ICVzLCAlcyIsCisgICAgICAgICAgICBvdXQucHJpbnRmKAor
ICAgICAgICAgICAgICAgICJTdHJ1Y3R1cmU6ICVwOiAlcywgJXMiLAogICAgICAgICAgICAgICAg
IHN0cnVjdHVyZSwgc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lLAogICAgICAgICAg
ICAgICAgIGluZGV4aW5nVHlwZVRvU3RyaW5nKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlSW5jbHVk
aW5nSGlzdG9yeSgpKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzbnByaW50ZigK
LSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwgc2l6ZSwgIkNlbGw6ICVwIC0+ICVwICglcDog
JXMsICVzKSIsCisgICAgICAgICAgICBvdXQucHJpbnRmKAorICAgICAgICAgICAgICAgICJDZWxs
OiAlcCAtPiAlcCAoJXA6ICVzLCAlcykiLAogICAgICAgICAgICAgICAgIGFzQ2VsbCgpLCBpc09i
amVjdCgpID8gYXNPYmplY3QoKnRoaXMpLT5idXR0ZXJmbHkoKSA6IDAsIGFzQ2VsbCgpLT5zdHJ1
Y3R1cmUoKSwgYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lLAog
ICAgICAgICAgICAgICAgIGluZGV4aW5nVHlwZVRvU3RyaW5nKGFzQ2VsbCgpLT5zdHJ1Y3R1cmUo
KS0+aW5kZXhpbmdUeXBlSW5jbHVkaW5nSGlzdG9yeSgpKSk7CiAgICAgICAgIH0KICAgICB9IGVs
c2UgaWYgKGlzVHJ1ZSgpKQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIlRy
dWUiKTsKKyAgICAgICAgb3V0LnByaW50KCJUcnVlIik7CiAgICAgZWxzZSBpZiAoaXNGYWxzZSgp
KQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIkZhbHNlIik7CisgICAgICAg
IG91dC5wcmludCgiRmFsc2UiKTsKICAgICBlbHNlIGlmIChpc051bGwoKSkKLSAgICAgICAgc25w
cmludGYoZGVzY3JpcHRpb24sIHNpemUsICJOdWxsIik7CisgICAgICAgIG91dC5wcmludCgiTnVs
bCIpOwogICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHNucHJpbnRmKGRlc2Ny
aXB0aW9uLCBzaXplLCAiVW5kZWZpbmVkIik7CisgICAgICAgIG91dC5wcmludCgiVW5kZWZpbmVk
Iik7CiAgICAgZWxzZQotICAgICAgICBzbnByaW50ZihkZXNjcmlwdGlvbiwgc2l6ZSwgIklOVkFM
SUQiKTsKLQotICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICAgICAgb3V0LnByaW50KCJJTlZB
TElEIik7CiB9CiAKIC8vIFRoaXMgaW4gdGhlIFRvSW50MzIgb3BlcmF0aW9uIGlzIGRlZmluZWQg
aW4gc2VjdGlvbiA5LjUgb2YgdGhlIEVDTUEtMjYyIHNwZWMuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCShyZXZpc2lvbiAxMzYzNjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw3ICsy
NTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgIEpTVmFsdWUgc3RydWN0dXJlT3JVbmRlZmlu
ZWQoKSBjb25zdDsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNoYXIqIGRlc2NyaXB0aW9uKCkg
Y29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogc3ludGhlc2l6ZVByb3RvdHlw
ZShFeGVjU3RhdGUqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjM3MSkKKysrIFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTIt
MDMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIEpT
VmFsdWU6OmRlc2NyaXB0aW9uKCkgd2l0aCBKU1ZhbHVlOjpkdW1wKFByaW50U3RyZWFtJikKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1ha2UgaXQgZWFzaWVy
IHRvIGdldCBhIFN0cmluZyBmcm9tIGEgU3RyaW5nUHJpbnRTdHJlYW0uCisKKyAgICAgICAgKiB3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdQcmludFN0cmVh
bTo6dG9TdHJpbmcpOgorICAgICAgICAqIHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oOgorICAgICAg
ICAoU3RyaW5nUHJpbnRTdHJlYW0pOgorICAgICAgICAoV1RGOjp0b1N0cmluZyk6CisKIDIwMTIt
MTItMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBJdCBzaG91
bGQgYmUgcG9zc2libGUgdG8gYnVpbGQgYW5kIHJ1biB3aXRoIERGR19FTkFCTEUoUFJPUEFHQVRJ
T05fVkVSQk9TRSkKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5jcHAJKHJldmlz
aW9uIDEzNjM2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMTIgQEAgQ1N0cmluZyBTdHJpbmdQcmludFN0cmVhbTo6
dG9DU3RyaW5nKCkKICAgICByZXR1cm4gQ1N0cmluZyhtX2J1ZmZlciwgbV9uZXh0KTsKIH0KIAor
U3RyaW5nIFN0cmluZ1ByaW50U3RyZWFtOjp0b1N0cmluZygpCit7CisgICAgQVNTRVJUKG1fbmV4
dCA9PSBzdHJsZW4obV9idWZmZXIpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChtX2J1
ZmZlciwgbV9uZXh0KTsKK30KKwogdm9pZCBTdHJpbmdQcmludFN0cmVhbTo6aW5jcmVhc2VTaXpl
KHNpemVfdCBuZXdTaXplKQogewogICAgIEFTU0VSVChuZXdTaXplID4gbV9zaXplKTsKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAkocmV2aXNpb24gMTM2MzY5KQorKysgU291cmNl
L1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTcgKzI4
LDE5IEBACiAKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXVEYgewogCiBjbGFzcyBTdHJpbmdQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0cmVhbSB7
CiBwdWJsaWM6Ci0gICAgU3RyaW5nUHJpbnRTdHJlYW0oKTsKLSAgICB+U3RyaW5nUHJpbnRTdHJl
YW0oKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nUHJpbnRTdHJlYW0oKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgflN0cmluZ1ByaW50U3RyZWFtKCk7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBXVEZfQVRUUklCVVRF
X1BSSU5URigyLCAwKTsKICAgICAKLSAgICBDU3RyaW5nIHRvQ1N0cmluZygpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSBDU3RyaW5nIHRvQ1N0cmluZygpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBTdHJpbmcgdG9TdHJpbmcoKTsKICAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBpbmNyZWFzZVNp
emUoc2l6ZV90KTsKQEAgLTU4LDEwICs2MCwxOSBAQCBDU3RyaW5nIHRvQ1N0cmluZyhjb25zdCBU
JiB2YWx1ZSkKICAgICByZXR1cm4gc3RyZWFtLnRvQ1N0cmluZygpOwogfQogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgorU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFQmIHZhbHVlKQoreworICAgIFN0cmlu
Z1ByaW50U3RyZWFtIHN0cmVhbTsKKyAgICBzdHJlYW0ucHJpbnQodmFsdWUpOworICAgIHJldHVy
biBzdHJlYW0udG9TdHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdU
Rjo6U3RyaW5nUHJpbnRTdHJlYW07CiB1c2luZyBXVEY6OnRvQ1N0cmluZzsKK3VzaW5nIFdURjo6
dG9TdHJpbmc7CiAKICNlbmRpZiAvLyBTdHJpbmdQcmludFN0cmVhbV9oCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>