<?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>97162</bug_id>
          
          <creation_ts>2012-09-19 19:08:59 -0700</creation_ts>
          <short_desc>OSR exit sometimes neglects to create the arguments object</short_desc>
          <delta_ts>2012-09-19 21:44:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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 name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>724083</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-19 19:08:59 -0700</bug_when>
    <thetext>OSR exit sometimes neglects to create the arguments object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724096</commentid>
    <comment_count>1</comment_count>
      <attachid>164827</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-19 19:43:02 -0700</bug_when>
    <thetext>Created attachment 164827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724099</commentid>
    <comment_count>2</comment_count>
      <attachid>164827</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-19 19:47:43 -0700</bug_when>
    <thetext>Comment on attachment 164827
Patch

Attachment 164827 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13950032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724103</commentid>
    <comment_count>3</comment_count>
      <attachid>164828</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-19 19:53:46 -0700</bug_when>
    <thetext>Created attachment 164828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724113</commentid>
    <comment_count>4</comment_count>
      <attachid>164828</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-09-19 20:54:29 -0700</bug_when>
    <thetext>Comment on attachment 164828
Patch

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

Your call on the hash traits thingy.  I think they might be useful in other cases, too, so having them in the DFG, and particularly in the header of one phase of the DFG, seems awkward.  But I can&apos;t bring myself to care too much.

&gt; Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.h:44
&gt; +template&lt;typename T&gt;
&gt; +struct NullableHashTraits : public HashTraits&lt;T&gt; {
&gt; +    static const bool emptyValueIsZero = false;
&gt; +    static T emptyValue() { return reinterpret_cast&lt;T&gt;(1); }
&gt; +};
&gt; +

It&apos;s not a big deal but it would be super fabulous if this was in HashTraits.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724114</commentid>
    <comment_count>5</comment_count>
      <attachid>164828</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-09-19 20:56:12 -0700</bug_when>
    <thetext>Comment on attachment 164828
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:434
&gt;                             || unmodifiedArgumentsRegister(m_graph.argumentsRegisterFor(node.codeOrigin)) == variableAccessData-&gt;local()) {
&gt; -                        // The child of this store should really be the empty value.
&gt; -                        Node emptyJSValue(JSConstant, node.codeOrigin, OpInfo(codeBlock()-&gt;addOrFindConstant(JSValue())));
&gt; -                        emptyJSValue.ref();
&gt; -                        NodeIndex emptyJSValueIndex = m_graph.size();
&gt; -                        m_graph.deref(node.child1());
&gt; -                        node.children.child1() = Edge(emptyJSValueIndex);
&gt; -                        m_graph.append(emptyJSValue);
&gt; -                        insertionSet.append(indexInBlock, emptyJSValueIndex);
&gt; -                        changed = true;
&gt;                          break;
&gt;                      }

Doesn&apos;t this create one of those situations where we would omit the { and }?  I think style checker is agnostic since the if itself spans two lines.  I would drop the { and }.  But it&apos;s not a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724116</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-19 21:05:06 -0700</bug_when>
    <thetext>&gt; It&apos;s not a big deal but it would be super fabulous if this was in HashTraits.h.

Will do.

&gt; Doesn&apos;t this create one of those situations where we would omit the { and }?

You&apos;re right. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724130</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-19 21:44:10 -0700</bug_when>
    <thetext>Committed r129089: &lt;http://trac.webkit.org/changeset/129089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164827</attachid>
            <date>2012-09-19 19:43:02 -0700</date>
            <delta_ts>2012-09-19 19:53:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97162-20120919194229.patch</filename>
            <type>text/plain</type>
            <size>16877</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5MDg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEyLTA5LTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgT1NSIGV4aXQgc29tZXRpbWVzIG5lZ2xlY3RzIHRvIGNyZWF0ZSB0aGUgYXJndW1lbnRzIG9i
amVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcx
NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBw
ZXJmb3JtYW5jZSBjaGFuZ2UuCisKKyAgICAgICAgSSBkb24ndCBrbm93IG9mIGFueSBjYXNlIHdo
ZXJlIHRoaXMgaXMgYSByZWFsIHByb2JsZW0gaW4gVE9ULCBidXQgaXQKKyAgICAgICAgd2lsbCBi
ZWNvbWUgYSBwcm9ibGVtIGlmIHdlIHN0YXJ0IGNvbXBpbGluZyBldmFsLCB3aXRoLCBvciBjYXRj
aCwgYW5kL29yCisgICAgICAgIHNvbWV0aW1lcyBzdG9wIGRvaW5nIGFyZ3VtZW50cyBvcHRpbWl6
YXRpb25zIGluIHRoZSBieXRlY29kZS4KKworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1w
bGlmaWNhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcmd1bWVudHNTaW1wbGlm
aWNhdGlvblBoYXNlOjpydW4pOiBBY2NvdW50IGZvciBhCisgICAgICAgIENyZWF0ZUFyZ3VtZW50
cyB0aGF0IGhhcyB0cmFuc2Zvcm1lZCBpbnRvIFBoYW50b21Bcmd1bWVudHMuIFdlIHVzZWQgdG8K
KyAgICAgICAgY2xlYXIgb3VyIHJlZmVyZW5jZSB0byB0aGUgQ3JlYXRlQXJndW1lbnRzIG5vZGUs
IGJ1dCBub3cgd2UgaG9sZCBvbnRvIGl0LCAKKyAgICAgICAgc28gd2UgbmVlZCB0byBhY2NvdW50
IGZvciBpdCB0cmFuc2Zvcm1pbmcuCisKKyAgICAgICAgRG9uJ3QgcmVwbGFjZSBhIFNldExvY2Fs
KENyZWF0ZUFyZ3VtZW50cykgd2l0aCBhIFNldExvY2FsKEpTVmFsdWUoKSkKKyAgICAgICAgYmVj
YXVzZSB0aGF0IGRvZXNuJ3QgbGVhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGJlaGluZCBmb3IgT1NS
IGV4aXQgdG8gZG8KKyAgICAgICAgdGhlIHJpZ2h0IHRoaW5nLiBJbnN0ZWFkLCBtYWludGFpbiBv
dXIgcmVmZXJlbmNlIHRvIENyZWF0ZUFyZ3VtZW50cywgYW5kCisgICAgICAgIHJlbHkgb24gQ3Jl
YXRlQXJndW1lbnRzIHRyYW5zZm9ybWluZyBpbnRvIFBoYW50b21Bcmd1bWVudHMgYWZ0ZXIKKyAg
ICAgICAgb3B0aW1pemF0aW9uLiBTZXRMb2NhbChQaGFudG9tQXJndW1lbnRzKSBpcyBlZmZpY2ll
bnQsIGFuZCBpdCdzIGEgbWFya2VyCisgICAgICAgIGZvciBPU1IgZXhpdCB0byBjcmVhdGUgdGhl
IGFyZ3VtZW50cyBvYmplY3QuCisKKyAgICAgICAgRG9uJ3QgQVNTRVJUIHRoYXQgYWxsIFBoYW50
b21Bcmd1bWVudHMgYXJlIHVucmVmZXJlbmNlZCBiZWNhdXNlIHdlIG5vdworICAgICAgICBsZWF2
ZSB0aGVtIGluIHRoZSBncmFwaCBhcyBTZXRMb2NhbChQaGFudG9tQXJndW1lbnRzKSwgYW5kIHRo
YXQncyBoYXJtbGVzcy4KKworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNhdGlv
blBoYXNlLmg6CisgICAgICAgIChOdWxsYWJsZUhhc2hUcmFpdHMpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok51bGxhYmxlSGFzaFRyYWl0czo6ZW1wdHlWYWx1ZSk6IEV4cG9ydCBvdXIgc3BlY2lhbCBo
YXNoIHRhYmxlCisgICAgICAgIGZvciBpbmxpbmUgY2FsbCBmcmFtZXMgc28gdGhlIE9TUiBleGl0
IGNvbXBpbGVyIGNhbiB1c2UgaXQuCisKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVy
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4
aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6IERvbid0IGxvYWQgdGhlICdh
cmd1bWVudHMnCisgICAgICAgIHJlZ2lzdGVyIHRvIGRlY2lkZSBpZiB3ZSBuZWVkIHRvIGNyZWF0
ZSB0aGUgYXJndW1lbnRzIG9iamVjdC4gT3B0aW1pemF0aW9uCisgICAgICAgIG1heSBoYXZlIGVs
aW1pbmF0ZWQgdGhlIGluaXRpYWxpemluZyBzdG9yZSB0byB0aGlzIHJlZ2lzdGVyLCBpbiB3aGlj
aAorICAgICAgICBjYXNlIHdlJ2xsIGxvYWQgZ2FyYmFnZS4gSW5zdGVhZCwgdXNlIHRoZSBnbG9i
YWwga25vd2xlZGdlIHRoYXQgYWxsIGNhbGwKKyAgICAgICAgZnJhbWVzIHRoYXQgb3B0aW1pemVk
IG91dCAnYXJndW1lbnRzJyBub3cgbmVlZCB0byBjcmVhdGUgaXQsIGFuZCB1c2UgYSBoYXNoCisg
ICAgICAgIHRhYmxlIHRvIG1ha2Ugc3VyZSB3ZSBkbyBzbyBvbmx5IG9uY2UgcGVyIGNhbGwgZnJh
bWUuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBTZXRMb2NhbChQaGFudG9tQXJndW1l
bnRzKSBpcyB1bmlxdWUKKyAgICAgICAgYmVjYXVzZSB3ZSBoYXZlbid0IGp1c3QgY2hhbmdlZCBh
IHZhbHVlJ3MgZm9ybWF0IG9yIGVsaWRlZCBhIGxvYWQgb3Igc3RvcmU7CisgICAgICAgIGluc3Rl
YWQsIHdlJ3ZlIHJlcGxhY2VkIGFuIG9iamVjdCB3aXRoIEpTVmFsdWUoKS4gV2UgY291bGQgdHJ5
IHRvIGFjY291bnQKKyAgICAgICAgZm9yIHRoaXMgaW4gYSBnZW5lcmFsIHdheSwgYnV0IGZvciBu
b3cgaXQncyBhIHNwZWNpYWwtY2FzZSBvcHRpbWl6YXRpb24sCisgICAgICAgIHNvIHdlIGdpdmUg
aXQgYSBzcGVjaWZpYyBPU1IgaGludCBpbnN0ZWFkLgorCiAyMDEyLTA5LTE5ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTI4ODAyKTogSXQg
bWFkZSBzb21lIEpTIHRlc3RzIGNyYXNoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJ
KHJldmlzaW9uIDEyODk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEyICs0MSw2
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogbmFtZXNwYWNlIHsKIAotdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLXN0cnVjdCBOdWxsYWJsZUhhc2hUcmFpdHMgOiBwdWJsaWMgSGFz
aFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZh
bHNlOwotICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFQ+KDEpOyB9Ci19OwotCiBzdHJ1Y3QgQXJndW1lbnRzQWxpYXNpbmdEYXRhIHsKICAgICBJbmxp
bmVDYWxsRnJhbWUqIGNhbGxDb250ZXh0OwogICAgIGJvb2wgY2FsbENvbnRleHRTZXQ7CkBAIC0x
ODEsNyArMTc1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vz
c0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG5vZGUudmFyaWFibGVBY2Nlc3NEYXRhKCk7CiAg
ICAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudHNSZWdpc3RlciA9CiAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2dyYXBoLnVuY2hlY2tlZEFyZ3VtZW50c1JlZ2lzdGVyRm9yKG5vZGUuY29k
ZU9yaWdpbik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2Uub3AoKSAhPSBDcmVhdGVB
cmd1bWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5vcCgpICE9IENyZWF0
ZUFyZ3VtZW50cyAmJiBzb3VyY2Uub3AoKSAhPSBQaGFudG9tQXJndW1lbnRzKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc291cmNlIG9mIHRoZSBTZXRM
b2NhbCBrbm93cyB0aGF0IGlmIGl0J3MKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgdmFy
aWFibGUgdGhhdCB3ZSB0aGluayBpcyBhbGlhc2VkIHRvIHRoZSBhcmd1bWVudHMsIHRoZW4gaXQK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1heSBlc2NhcGUgYXQgdGhpcyBwb2ludC4gSW4g
ZnV0dXJlLCB3ZSBjb3VsZCB0cmFjayB0cmFuc2l0aXZlCkBAIC00MzYsMTUgKzQzMCw2IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dy
YXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKG5vZGUuY29kZU9yaWdpbikgPT0gdmFyaWFibGVBY2Nl
c3NEYXRhLT5sb2NhbCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB1bm1vZGlmaWVk
QXJndW1lbnRzUmVnaXN0ZXIobV9ncmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihub2RlLmNvZGVP
cmlnaW4pKSA9PSB2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBjaGlsZCBvZiB0aGlzIHN0b3JlIHNob3VsZCByZWFsbHkgYmUgdGhl
IGVtcHR5IHZhbHVlLgotICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSBlbXB0eUpTVmFsdWUo
SlNDb25zdGFudCwgbm9kZS5jb2RlT3JpZ2luLCBPcEluZm8oY29kZUJsb2NrKCktPmFkZE9yRmlu
ZENvbnN0YW50KEpTVmFsdWUoKSkpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5SlNW
YWx1ZS5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5vZGVJbmRleCBlbXB0eUpTVmFs
dWVJbmRleCA9IG1fZ3JhcGguc2l6ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFw
aC5kZXJlZihub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuY2hp
bGRyZW4uY2hpbGQxKCkgPSBFZGdlKGVtcHR5SlNWYWx1ZUluZGV4KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGguYXBwZW5kKGVtcHR5SlNWYWx1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpbnNlcnRpb25TZXQuYXBwZW5kKGluZGV4SW5CbG9jaywgZW1wdHlKU1ZhbHVlSW5k
ZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoIXZhcmlhYmxlQWNjZXNzRGF0YS0+aXNDYXB0dXJlZCgpKTsKQEAgLTY2
MSwyNSArNjQ2LDggQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUo
KmJsb2NrKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKGNoYW5nZWQpIHsKKyAg
ICAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgICAgICBtX2dyYXBoLmNvbGxlY3RHYXJiYWdlKCk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IFBoYW50b21Bcmd1bWVu
dHMgbm9kZXMgYXJlIG5vdCBzaG91bGRHZW5lcmF0ZSgpLgotI2lmICFBU1NFUlRfRElTQUJMRUQK
LSAgICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8
IG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpOyArK2Jsb2NrSW5kZXgpIHsKLSAgICAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGgubV9ibG9ja3NbYmxvY2tJbmRleF0uZ2V0KCk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFibG9jaykKLSAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleEluQmxvY2sgPSAwOyBpbmRl
eEluQmxvY2sgPCBibG9jay0+c2l6ZSgpOyArK2luZGV4SW5CbG9jaykgewotICAgICAgICAgICAg
ICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gYmxvY2stPmF0KGluZGV4SW5CbG9jayk7Ci0g
ICAgICAgICAgICAgICAgICAgIE5vZGUmIG5vZGUgPSBtX2dyYXBoW25vZGVJbmRleF07Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChub2RlLm9wKCkgIT0gUGhhbnRvbUFyZ3VtZW50cykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
IW5vZGUuc2hvdWxkR2VuZXJhdGUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotI2VuZGlmCi0gICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHJldHVybiBjaGFuZ2VkOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxp
ZmljYXRpb25QaGFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5oCShyZXZpc2lvbiAxMjg5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDE4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJ
VCkKIAorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgR3JhcGg7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1
Y3QgTnVsbGFibGVIYXNoVHJhaXRzIDogcHVibGljIEhhc2hUcmFpdHM8VD4geworICAgIHN0YXRp
YyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgVCBlbXB0
eVZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUPigxKTsgfQorfTsKKwogLy8gU2lt
cGxpZmllcyByZWZsZWN0aXZlIHVzZXMgb2YgdGhlIEFyZ3VtZW50cyBvYmplY3Q6CiAvLwogLy8g
SW5saW5lZCBhcmd1bWVudHMubGVuZ3RoIC0+IGNvbnN0YW50CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2
aXNpb24gMTI4OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxMiw2ICs2MTIsOSBAQCB2b2lkIE9T
UkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgLy8gICAgIHJlZ2lzdGVycy4K
ICAgICAKICAgICBpZiAoaGF2ZUFyZ3VtZW50cykgeworICAgICAgICBIYXNoU2V0PElubGluZUNh
bGxGcmFtZSosIERlZmF1bHRIYXNoPElubGluZUNhbGxGcmFtZSo+OjpIYXNoLAorICAgICAgICAg
ICAgTnVsbGFibGVIYXNoVHJhaXRzPElubGluZUNhbGxGcmFtZSo+ID4gZGlkQ3JlYXRlQXJndW1l
bnRzT2JqZWN0OworCiAgICAgICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBvcGVy
YW5kcy5zaXplKCk7ICsraW5kZXgpIHsKICAgICAgICAgICAgIGNvbnN0IFZhbHVlUmVjb3Zlcnkm
IHJlY292ZXJ5ID0gb3BlcmFuZHNbaW5kZXhdOwogICAgICAgICAgICAgaWYgKHJlY292ZXJ5LnRl
Y2huaXF1ZSgpICE9IEFyZ3VtZW50c1RoYXRXZXJlTm90Q3JlYXRlZCkKQEAgLTYyNyw0NCArNjMw
LDQyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBpbnQgYXJndW1lbnRzUmVnaXN0ZXIgPSBtX2ppdC5hcmd1bWVudHNSZWdpc3Rl
ckZvcihpbmxpbmVDYWxsRnJhbWUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBtX2ppdC5s
b2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKGFyZ3VtZW50c1JlZ2lzdGVyKSwgR1BS
SW5mbzo6cmVnVDApOwotICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGhhdmVBcmd1
bWVudHMgPSBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6
Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKGFyZ3Vt
ZW50c1JlZ2lzdGVyKSwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmIChpbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoCi0gICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKAotICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
Ci0gICAgICAgICAgICAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbkNy
ZWF0ZUlubGluZWRBcmd1bWVudHMpKSwKLSAgICAgICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9u
QXJnR1BSMCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZSgKLSAg
ICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKAotICAgICAg
ICAgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb25DcmVhdGVBcmd1
bWVudHMpKSwKLSAgICAgICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAg
ICAgICAgICBpZiAoZGlkQ3JlYXRlQXJndW1lbnRzT2JqZWN0LmFkZChpbmxpbmVDYWxsRnJhbWUp
LmlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHRoaXMgY2FsbCBmcmFt
ZSBvcHRpbWl6ZWQgb3V0IGFuIGFyZ3VtZW50cyBvYmplY3QgdGhhdAorICAgICAgICAgICAgICAg
IC8vIHRoZSBiYXNlbGluZSBKSVQgd291bGQgaGF2ZSBjcmVhdGVkLiBEbyB0aGF0IGNyZWF0aW9u
IG5vdy4KKyAgICAgICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lKSB7CisgICAgICAgICAg
ICAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJh
bWUpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQubW92ZSgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbkNyZWF0ZUlubGluZWRBcmd1
bWVudHMpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzRXhlY1N0YXRlKCk7CisgICAgICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoCisg
ICAgICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb25D
cmVhdGVBcmd1bWVudHMpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFy
Z0dQUjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2ppdC5jYWxsKEdQ
UkluZm86Om5vbkFyZ0dQUjApOworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCisgICAg
ICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLAorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcihhcmd1
bWVudHNSZWdpc3RlcikpOworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCisgICAgICAg
ICAgICAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSLAorICAgICAgICAgICAgICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoYXJndW1lbnRzUmVnaXN0ZXIpKTsKKyAgICAg
ICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKKyAgICAgICAgICAgICAgICAg
ICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IodW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKGFy
Z3VtZW50c1JlZ2lzdGVyKSkpOworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCisgICAg
ICAgICAgICAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSLAorICAgICAgICAgICAgICAg
ICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IodW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lz
dGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsgLy8gbm8tb3AgbW92ZSBvbiBh
bG1vc3QgYWxsIHBsYXRmb3Jtcy4KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1faml0LmNh
bGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAotICAg
ICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKGFyZ3VtZW50c1Jl
Z2lzdGVyKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6
cGF5bG9hZEZvcihhcmd1bWVudHNSZWdpc3RlcikpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcih1bm1v
ZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoYXJndW1lbnRzUmVnaXN0ZXIpKSk7Ci0gICAgICAgICAg
ICBtX2ppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BS
LAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcih1bm1vZGlmaWVk
QXJndW1lbnRzUmVnaXN0ZXIoYXJndW1lbnRzUmVnaXN0ZXIpKSk7Ci0gICAgICAgICAgICBtX2pp
dC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7IC8vIG5vLW9w
IG1vdmUgb24gYWxtb3N0IGFsbCBwbGF0Zm9ybXMuCi0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGhhdmVBcmd1bWVudHMubGluaygmbV9qaXQpOworCisgICAgICAgICAgICBtX2ppdC5sb2FkMzIo
QXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKGFyZ3VtZW50c1JlZ2lzdGVyKSwgR1BSSW5mbzo6
cmVnVDApOwogICAgICAgICAgICAgbV9qaXQuc3RvcmUzMigKICAgICAgICAgICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKICAgICAgICAgICAg
ICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihvcGVyYW5kKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNp
b24gMTI4OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShE
RkdfSklUKSAmJiBVU0UoSlNWQUxVRTY0KQogCisjaW5jbHVkZSAiREZHQXJndW1lbnRzU2ltcGxp
ZmljYXRpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvRGF0YUxvZy5oPgogCkBAIC01ODcsNiArNTg4LDkgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6
OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgIC8vICAgICByZWdpc3RlcnMuCiAgICAgCiAgICAgaWYg
KGhhdmVBcmd1bWVudHMpIHsKKyAgICAgICAgSGFzaFNldDxJbmxpbmVDYWxsRnJhbWUqLCBEZWZh
dWx0SGFzaDxJbmxpbmVDYWxsRnJhbWUqPjo6SGFzaCwKKyAgICAgICAgICAgIE51bGxhYmxlSGFz
aFRyYWl0czxJbmxpbmVDYWxsRnJhbWUqPiA+IGRpZENyZWF0ZUFyZ3VtZW50c09iamVjdDsKKwog
ICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgb3BlcmFuZHMuc2l6ZSgpOyAr
K2luZGV4KSB7CiAgICAgICAgICAgICBjb25zdCBWYWx1ZVJlY292ZXJ5JiByZWNvdmVyeSA9IG9w
ZXJhbmRzW2luZGV4XTsKICAgICAgICAgICAgIGlmIChyZWNvdmVyeS50ZWNobmlxdWUoKSAhPSBB
cmd1bWVudHNUaGF0V2VyZU5vdENyZWF0ZWQpCkBAIC02MDIsMjkgKzYwNiwyOSBAQCB2b2lkIE9T
UkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaW50
IGFyZ3VtZW50c1JlZ2lzdGVyID0gbV9qaXQuYXJndW1lbnRzUmVnaXN0ZXJGb3IoaW5saW5lQ2Fs
bEZyYW1lKTsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZENyZWF0ZUFyZ3VtZW50
c09iamVjdC5hZGQoaW5saW5lQ2FsbEZyYW1lKS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICAg
ICAgLy8gV2Uga25vdyB0aGlzIGNhbGwgZnJhbWUgb3B0aW1pemVkIG91dCBhbiBhcmd1bWVudHMg
b2JqZWN0IHRoYXQKKyAgICAgICAgICAgICAgICAvLyB0aGUgYmFzZWxpbmUgSklUIHdvdWxkIGhh
dmUgY3JlYXRlZC4gRG8gdGhhdCBjcmVhdGlvbiBub3cuCisgICAgICAgICAgICAgICAgaWYgKGlu
bGluZUNhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGRQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5m
bzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50cyhHUFJJ
bmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CisgICAgICAgICAgICAgICAgbV9qaXQu
bW92ZSgKKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KAorICAgICAgICAgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb25D
cmVhdGVBcmd1bWVudHMpKSwKKyAgICAgICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BS
MCk7CisgICAgICAgICAgICAgICAgbV9qaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAg
ICAgICAgICAgICAgICBtX2ppdC5zdG9yZVB0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQXNz
ZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKGFyZ3VtZW50c1JlZ2lzdGVyKSk7CisgICAgICAgICAg
ICAgICAgbV9qaXQuc3RvcmVQdHIoCisgICAgICAgICAgICAgICAgICAgIEdQUkluZm86OnJldHVy
blZhbHVlR1BSLAorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3IodW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpOworICAg
ICAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86
OnJlZ1QwKTsgLy8gbm8tb3AgbW92ZSBvbiBhbG1vc3QgYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OmFkZHJl
c3NGb3IoYXJndW1lbnRzUmVnaXN0ZXIpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBB
c3NlbWJseUhlbHBlcnM6Okp1bXAgaGF2ZUFyZ3VtZW50cyA9IG1faml0LmJyYW5jaFRlc3RQdHIo
Ci0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUpIHsKLSAg
ICAgICAgICAgICAgICBtX2ppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzKEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0g
ICAgICAgICAgICBtX2ppdC5tb3ZlKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbVB0cigKLSAgICAgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihv
cGVyYXRpb25DcmVhdGVBcmd1bWVudHMpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpub25B
cmdHUFIwKTsKLSAgICAgICAgICAgIG1faml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0g
ICAgICAgICAgICBtX2ppdC5zdG9yZVB0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQXNzZW1i
bHlIZWxwZXJzOjphZGRyZXNzRm9yKGFyZ3VtZW50c1JlZ2lzdGVyKSk7Ci0gICAgICAgICAgICBt
X2ppdC5zdG9yZVB0cigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwK
LSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodW5tb2RpZmllZEFy
Z3VtZW50c1JlZ2lzdGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpOwotICAgICAgICAgICAgbV9qaXQu
bW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBuby1vcCBt
b3ZlIG9uIGFsbW9zdCBhbGwgcGxhdGZvcm1zLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBo
YXZlQXJndW1lbnRzLmxpbmsoJm1faml0KTsKICAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKEdQ
UkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwogICAg
ICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMjg5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTE5LDkgKzIxMTksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUp
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBQaGFudG9tQXJndW1lbnRzOgotICAgICAgICAv
LyBUaGlzIHNob3VsZCBuZXZlciBiZSBtdXN0LWdlbmVyYXRlLgotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgLy8gQnV0IGFzIGEgcmVsZWFzZS1tb2RlIGZhbGwtYmFjayBt
YWtlIGl0IHRoZSBlbXB0eSB2YWx1ZS4KICAgICAgICAgaW5pdENvbnN0YW50SW5mbyhtX2NvbXBp
bGVJbmRleCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC0yMjgwLDYgKzIyNzcsMTUgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBub1Jlc3VsdChtX2Nv
bXBpbGVJbmRleCk7CiAKICAgICAgICAgcmVjb3JkU2V0TG9jYWwobm9kZS5sb2NhbCgpLCBWYWx1
ZVNvdXJjZShWYWx1ZUluUmVnaXN0ZXJGaWxlKSk7CisKKyAgICAgICAgLy8gSWYgd2UncmUgc3Rv
cmluZyBhbiBhcmd1bWVudHMgb2JqZWN0IHRoYXQgaGFzIGJlZW4gb3B0aW1pemVkIGF3YXksCisg
ICAgICAgIC8vIG91ciB2YXJpYWJsZSBldmVudCBzdHJlYW0gZm9yIE9TUiBleGl0IG5vdyByZWZs
ZWN0cyB0aGUgb3B0aW1pemVkCisgICAgICAgIC8vIHZhbHVlIChKU1ZhbHVlKCkpLiBPbiB0aGUg
c2xvdyBwYXRoLCB3ZSB3YW50IGFuIGFyZ3VtZW50cyBvYmplY3QKKyAgICAgICAgLy8gaW5zdGVh
ZC4gV2UgYWRkIGFuIGFkZGl0aW9uYWwgbW92ZSBoaW50IHRvIHNob3cgT1NSIGV4aXQgdGhhdCBp
dAorICAgICAgICAvLyBuZWVkcyB0byByZWNvbnN0cnVjdCB0aGUgYXJndW1lbnRzIG9iamVjdC4K
KyAgICAgICAgaWYgKGF0KG5vZGUuY2hpbGQxKCkpLm9wKCkgPT0gUGhhbnRvbUFyZ3VtZW50cykK
KyAgICAgICAgICAgIGNvbXBpbGVNb3ZIaW50KG5vZGUpOworCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164828</attachid>
            <date>2012-09-19 19:53:46 -0700</date>
            <delta_ts>2012-09-19 20:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97162-20120919195313.patch</filename>
            <type>text/plain</type>
            <size>17043</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5MDg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEyLTA5LTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgT1NSIGV4aXQgc29tZXRpbWVzIG5lZ2xlY3RzIHRvIGNyZWF0ZSB0aGUgYXJndW1lbnRzIG9i
amVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcx
NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBw
ZXJmb3JtYW5jZSBjaGFuZ2UuCisKKyAgICAgICAgSSBkb24ndCBrbm93IG9mIGFueSBjYXNlIHdo
ZXJlIHRoaXMgaXMgYSByZWFsIHByb2JsZW0gaW4gVE9ULCBidXQgaXQKKyAgICAgICAgd2lsbCBi
ZWNvbWUgYSBwcm9ibGVtIGlmIHdlIHN0YXJ0IGNvbXBpbGluZyBldmFsLCB3aXRoLCBvciBjYXRj
aCwgYW5kL29yCisgICAgICAgIHNvbWV0aW1lcyBzdG9wIGRvaW5nIGFyZ3VtZW50cyBvcHRpbWl6
YXRpb25zIGluIHRoZSBieXRlY29kZS4KKworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1w
bGlmaWNhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcmd1bWVudHNTaW1wbGlm
aWNhdGlvblBoYXNlOjpydW4pOiBBY2NvdW50IGZvciBhCisgICAgICAgIENyZWF0ZUFyZ3VtZW50
cyB0aGF0IGhhcyB0cmFuc2Zvcm1lZCBpbnRvIFBoYW50b21Bcmd1bWVudHMuIFdlIHVzZWQgdG8K
KyAgICAgICAgY2xlYXIgb3VyIHJlZmVyZW5jZSB0byB0aGUgQ3JlYXRlQXJndW1lbnRzIG5vZGUs
IGJ1dCBub3cgd2UgaG9sZCBvbnRvIGl0LCAKKyAgICAgICAgc28gd2UgbmVlZCB0byBhY2NvdW50
IGZvciBpdCB0cmFuc2Zvcm1pbmcuCisKKyAgICAgICAgRG9uJ3QgcmVwbGFjZSBhIFNldExvY2Fs
KENyZWF0ZUFyZ3VtZW50cykgd2l0aCBhIFNldExvY2FsKEpTVmFsdWUoKSkKKyAgICAgICAgYmVj
YXVzZSB0aGF0IGRvZXNuJ3QgbGVhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGJlaGluZCBmb3IgT1NS
IGV4aXQgdG8gZG8KKyAgICAgICAgdGhlIHJpZ2h0IHRoaW5nLiBJbnN0ZWFkLCBtYWludGFpbiBv
dXIgcmVmZXJlbmNlIHRvIENyZWF0ZUFyZ3VtZW50cywgYW5kCisgICAgICAgIHJlbHkgb24gQ3Jl
YXRlQXJndW1lbnRzIHRyYW5zZm9ybWluZyBpbnRvIFBoYW50b21Bcmd1bWVudHMgYWZ0ZXIKKyAg
ICAgICAgb3B0aW1pemF0aW9uLiBTZXRMb2NhbChQaGFudG9tQXJndW1lbnRzKSBpcyBlZmZpY2ll
bnQsIGFuZCBpdCdzIGEgbWFya2VyCisgICAgICAgIGZvciBPU1IgZXhpdCB0byBjcmVhdGUgdGhl
IGFyZ3VtZW50cyBvYmplY3QuCisKKyAgICAgICAgRG9uJ3QgQVNTRVJUIHRoYXQgYWxsIFBoYW50
b21Bcmd1bWVudHMgYXJlIHVucmVmZXJlbmNlZCBiZWNhdXNlIHdlIG5vdworICAgICAgICBsZWF2
ZSB0aGVtIGluIHRoZSBncmFwaCBhcyBTZXRMb2NhbChQaGFudG9tQXJndW1lbnRzKSwgYW5kIHRo
YXQncyBoYXJtbGVzcy4KKworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNhdGlv
blBoYXNlLmg6CisgICAgICAgIChOdWxsYWJsZUhhc2hUcmFpdHMpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok51bGxhYmxlSGFzaFRyYWl0czo6ZW1wdHlWYWx1ZSk6IEV4cG9ydCBvdXIgc3BlY2lhbCBo
YXNoIHRhYmxlCisgICAgICAgIGZvciBpbmxpbmUgY2FsbCBmcmFtZXMgc28gdGhlIE9TUiBleGl0
IGNvbXBpbGVyIGNhbiB1c2UgaXQuCisKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVy
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4
aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6IERvbid0IGxvYWQgdGhlICdh
cmd1bWVudHMnCisgICAgICAgIHJlZ2lzdGVyIHRvIGRlY2lkZSBpZiB3ZSBuZWVkIHRvIGNyZWF0
ZSB0aGUgYXJndW1lbnRzIG9iamVjdC4gT3B0aW1pemF0aW9uCisgICAgICAgIG1heSBoYXZlIGVs
aW1pbmF0ZWQgdGhlIGluaXRpYWxpemluZyBzdG9yZSB0byB0aGlzIHJlZ2lzdGVyLCBpbiB3aGlj
aAorICAgICAgICBjYXNlIHdlJ2xsIGxvYWQgZ2FyYmFnZS4gSW5zdGVhZCwgdXNlIHRoZSBnbG9i
YWwga25vd2xlZGdlIHRoYXQgYWxsIGNhbGwKKyAgICAgICAgZnJhbWVzIHRoYXQgb3B0aW1pemVk
IG91dCAnYXJndW1lbnRzJyBub3cgbmVlZCB0byBjcmVhdGUgaXQsIGFuZCB1c2UgYSBoYXNoCisg
ICAgICAgIHRhYmxlIHRvIG1ha2Ugc3VyZSB3ZSBkbyBzbyBvbmx5IG9uY2UgcGVyIGNhbGwgZnJh
bWUuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBTZXRMb2NhbChQaGFudG9tQXJndW1l
bnRzKSBpcyB1bmlxdWUKKyAgICAgICAgYmVjYXVzZSB3ZSBoYXZlbid0IGp1c3QgY2hhbmdlZCBh
IHZhbHVlJ3MgZm9ybWF0IG9yIGVsaWRlZCBhIGxvYWQgb3Igc3RvcmU7CisgICAgICAgIGluc3Rl
YWQsIHdlJ3ZlIHJlcGxhY2VkIGFuIG9iamVjdCB3aXRoIEpTVmFsdWUoKS4gV2UgY291bGQgdHJ5
IHRvIGFjY291bnQKKyAgICAgICAgZm9yIHRoaXMgaW4gYSBnZW5lcmFsIHdheSwgYnV0IGZvciBu
b3cgaXQncyBhIHNwZWNpYWwtY2FzZSBvcHRpbWl6YXRpb24sCisgICAgICAgIHNvIHdlIGdpdmUg
aXQgYSBzcGVjaWZpYyBPU1IgaGludCBpbnN0ZWFkLgorCiAyMDEyLTA5LTE5ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTI4ODAyKTogSXQg
bWFkZSBzb21lIEpTIHRlc3RzIGNyYXNoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJ
KHJldmlzaW9uIDEyODk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEyICs0MSw2
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogbmFtZXNwYWNlIHsKIAotdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLXN0cnVjdCBOdWxsYWJsZUhhc2hUcmFpdHMgOiBwdWJsaWMgSGFz
aFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZh
bHNlOwotICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFQ+KDEpOyB9Ci19OwotCiBzdHJ1Y3QgQXJndW1lbnRzQWxpYXNpbmdEYXRhIHsKICAgICBJbmxp
bmVDYWxsRnJhbWUqIGNhbGxDb250ZXh0OwogICAgIGJvb2wgY2FsbENvbnRleHRTZXQ7CkBAIC0x
ODEsNyArMTc1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vz
c0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG5vZGUudmFyaWFibGVBY2Nlc3NEYXRhKCk7CiAg
ICAgICAgICAgICAgICAgICAgIGludCBhcmd1bWVudHNSZWdpc3RlciA9CiAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2dyYXBoLnVuY2hlY2tlZEFyZ3VtZW50c1JlZ2lzdGVyRm9yKG5vZGUuY29k
ZU9yaWdpbik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2Uub3AoKSAhPSBDcmVhdGVB
cmd1bWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5vcCgpICE9IENyZWF0
ZUFyZ3VtZW50cyAmJiBzb3VyY2Uub3AoKSAhPSBQaGFudG9tQXJndW1lbnRzKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc291cmNlIG9mIHRoZSBTZXRM
b2NhbCBrbm93cyB0aGF0IGlmIGl0J3MKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgdmFy
aWFibGUgdGhhdCB3ZSB0aGluayBpcyBhbGlhc2VkIHRvIHRoZSBhcmd1bWVudHMsIHRoZW4gaXQK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1heSBlc2NhcGUgYXQgdGhpcyBwb2ludC4gSW4g
ZnV0dXJlLCB3ZSBjb3VsZCB0cmFjayB0cmFuc2l0aXZlCkBAIC00MzYsMTUgKzQzMCw2IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dy
YXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKG5vZGUuY29kZU9yaWdpbikgPT0gdmFyaWFibGVBY2Nl
c3NEYXRhLT5sb2NhbCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB1bm1vZGlmaWVk
QXJndW1lbnRzUmVnaXN0ZXIobV9ncmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihub2RlLmNvZGVP
cmlnaW4pKSA9PSB2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBjaGlsZCBvZiB0aGlzIHN0b3JlIHNob3VsZCByZWFsbHkgYmUgdGhl
IGVtcHR5IHZhbHVlLgotICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSBlbXB0eUpTVmFsdWUo
SlNDb25zdGFudCwgbm9kZS5jb2RlT3JpZ2luLCBPcEluZm8oY29kZUJsb2NrKCktPmFkZE9yRmlu
ZENvbnN0YW50KEpTVmFsdWUoKSkpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5SlNW
YWx1ZS5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5vZGVJbmRleCBlbXB0eUpTVmFs
dWVJbmRleCA9IG1fZ3JhcGguc2l6ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFw
aC5kZXJlZihub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuY2hp
bGRyZW4uY2hpbGQxKCkgPSBFZGdlKGVtcHR5SlNWYWx1ZUluZGV4KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGguYXBwZW5kKGVtcHR5SlNWYWx1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpbnNlcnRpb25TZXQuYXBwZW5kKGluZGV4SW5CbG9jaywgZW1wdHlKU1ZhbHVlSW5k
ZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoIXZhcmlhYmxlQWNjZXNzRGF0YS0+aXNDYXB0dXJlZCgpKTsKQEAgLTY2
MSwyNSArNjQ2LDggQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUo
KmJsb2NrKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKGNoYW5nZWQpIHsKKyAg
ICAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgICAgICBtX2dyYXBoLmNvbGxlY3RHYXJiYWdlKCk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IFBoYW50b21Bcmd1bWVu
dHMgbm9kZXMgYXJlIG5vdCBzaG91bGRHZW5lcmF0ZSgpLgotI2lmICFBU1NFUlRfRElTQUJMRUQK
LSAgICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8
IG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpOyArK2Jsb2NrSW5kZXgpIHsKLSAgICAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGgubV9ibG9ja3NbYmxvY2tJbmRleF0uZ2V0KCk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFibG9jaykKLSAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleEluQmxvY2sgPSAwOyBpbmRl
eEluQmxvY2sgPCBibG9jay0+c2l6ZSgpOyArK2luZGV4SW5CbG9jaykgewotICAgICAgICAgICAg
ICAgICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gYmxvY2stPmF0KGluZGV4SW5CbG9jayk7Ci0g
ICAgICAgICAgICAgICAgICAgIE5vZGUmIG5vZGUgPSBtX2dyYXBoW25vZGVJbmRleF07Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChub2RlLm9wKCkgIT0gUGhhbnRvbUFyZ3VtZW50cykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
IW5vZGUuc2hvdWxkR2VuZXJhdGUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotI2VuZGlmCi0gICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHJldHVybiBjaGFuZ2VkOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzU2ltcGxp
ZmljYXRpb25QaGFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS5oCShyZXZpc2lvbiAxMjg5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDE4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJ
VCkKIAorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgR3JhcGg7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1
Y3QgTnVsbGFibGVIYXNoVHJhaXRzIDogcHVibGljIEhhc2hUcmFpdHM8VD4geworICAgIHN0YXRp
YyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgVCBlbXB0
eVZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUPigxKTsgfQorfTsKKwogLy8gU2lt
cGxpZmllcyByZWZsZWN0aXZlIHVzZXMgb2YgdGhlIEFyZ3VtZW50cyBvYmplY3Q6CiAvLwogLy8g
SW5saW5lZCBhcmd1bWVudHMubGVuZ3RoIC0+IGNvbnN0YW50CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2
aXNpb24gMTI4OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShERkdfSklUKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQogCisjaW5jbHVkZSAiREZHQXJndW1l
bnRzU2ltcGxpZmljYXRpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCkBAIC02MTIsNiArNjEzLDkgQEAgdm9pZCBPU1JFeGl0
Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgIC8vICAgICByZWdpc3RlcnMuCiAgICAg
CiAgICAgaWYgKGhhdmVBcmd1bWVudHMpIHsKKyAgICAgICAgSGFzaFNldDxJbmxpbmVDYWxsRnJh
bWUqLCBEZWZhdWx0SGFzaDxJbmxpbmVDYWxsRnJhbWUqPjo6SGFzaCwKKyAgICAgICAgICAgIE51
bGxhYmxlSGFzaFRyYWl0czxJbmxpbmVDYWxsRnJhbWUqPiA+IGRpZENyZWF0ZUFyZ3VtZW50c09i
amVjdDsKKwogICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgb3BlcmFuZHMu
c2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAgICAgICBjb25zdCBWYWx1ZVJlY292ZXJ5JiByZWNv
dmVyeSA9IG9wZXJhbmRzW2luZGV4XTsKICAgICAgICAgICAgIGlmIChyZWNvdmVyeS50ZWNobmlx
dWUoKSAhPSBBcmd1bWVudHNUaGF0V2VyZU5vdENyZWF0ZWQpCkBAIC02MjcsNDQgKzYzMSw0MiBA
QCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgaW50IGFyZ3VtZW50c1JlZ2lzdGVyID0gbV9qaXQuYXJndW1lbnRzUmVnaXN0ZXJGb3Io
aW5saW5lQ2FsbEZyYW1lKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9qaXQubG9hZDMy
KEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihhcmd1bWVudHNSZWdpc3RlciksIEdQUkluZm86
OnJlZ1QwKTsKLSAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBoYXZlQXJndW1lbnRz
ID0gbV9qaXQuYnJhbmNoMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpOb3RF
cXVhbCwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcihhcmd1bWVudHNS
ZWdpc3RlciksCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAo
aW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKAotICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lKSk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZSgK
LSAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKAotICAg
ICAgICAgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb25DcmVhdGVJ
bmxpbmVkQXJndW1lbnRzKSksCi0gICAgICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQ
UjApOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtX2ppdC5zZXR1cEFy
Z3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoCi0gICAgICAg
ICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRz
KSksCi0gICAgICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgICAgICAg
ICAgaWYgKGRpZENyZWF0ZUFyZ3VtZW50c09iamVjdC5hZGQoaW5saW5lQ2FsbEZyYW1lKS5pc05l
d0VudHJ5KSB7CisgICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGlzIGNhbGwgZnJhbWUgb3B0
aW1pemVkIG91dCBhbiBhcmd1bWVudHMgb2JqZWN0IHRoYXQKKyAgICAgICAgICAgICAgICAvLyB0
aGUgYmFzZWxpbmUgSklUIHdvdWxkIGhhdmUgY3JlYXRlZC4gRG8gdGhhdCBjcmVhdGlvbiBub3cu
CisgICAgICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZSkgeworICAgICAgICAgICAgICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAgICAgICAg
ICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lKSk7
CisgICAgICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoCisgICAgICAgICAgICAgICAgICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb25DcmVhdGVJbmxpbmVkQXJndW1lbnRz
KSksCisgICAgICAgICAgICAgICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKAorICAgICAg
ICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uQ3JlYXRl
QXJndW1lbnRzKSksCisgICAgICAgICAgICAgICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIw
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9qaXQuY2FsbChHUFJJbmZv
Ojpub25BcmdHUFIwKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAg
ICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwKKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoYXJndW1lbnRz
UmVnaXN0ZXIpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAgICAg
ICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKKyAgICAgICAgICAgICAgICAgICAgQXNz
ZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKGFyZ3VtZW50c1JlZ2lzdGVyKSk7CisgICAgICAgICAg
ICAgICAgbV9qaXQuc3RvcmUzMigKKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCisgICAgICAgICAgICAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6dGFnRm9yKHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihhcmd1bWVu
dHNSZWdpc3RlcikpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAg
ICAgICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKKyAgICAgICAgICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihh
cmd1bWVudHNSZWdpc3RlcikpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7IC8vIG5vLW9wIG1vdmUgb24gYWxtb3N0
IGFsbCBwbGF0Zm9ybXMuCiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2ppdC5jYWxsKEdQ
UkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAg
ICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwK
LSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcihhcmd1bWVudHNSZWdpc3Rl
cikpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxv
YWRGb3IoYXJndW1lbnRzUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCi0g
ICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IodW5tb2RpZmll
ZEFyZ3VtZW50c1JlZ2lzdGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpOwotICAgICAgICAgICAgbV9q
aXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKLSAg
ICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IodW5tb2RpZmllZEFyZ3Vt
ZW50c1JlZ2lzdGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpOwotICAgICAgICAgICAgbV9qaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBuby1vcCBtb3Zl
IG9uIGFsbW9zdCBhbGwgcGxhdGZvcm1zLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBoYXZl
QXJndW1lbnRzLmxpbmsoJm1faml0KTsKKworICAgICAgICAgICAgbV9qaXQubG9hZDMyKEFzc2Vt
Ymx5SGVscGVyczo6cGF5bG9hZEZvcihhcmd1bWVudHNSZWdpc3RlciksIEdQUkluZm86OnJlZ1Qw
KTsKICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCiAgICAgICAgICAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCiAgICAgICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjp0YWdGb3Iob3BlcmFuZCkpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDEy
ODk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJ
VCkgJiYgVVNFKEpTVkFMVUU2NCkKIAorI2luY2x1ZGUgIkRGR0FyZ3VtZW50c1NpbXBsaWZpY2F0
aW9uUGhhc2UuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Rh
dGFMb2cuaD4KIApAQCAtNTg3LDYgKzU4OCw5IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21w
aWxlRXhpdChjb25zdCAKICAgICAvLyAgICAgcmVnaXN0ZXJzLgogICAgIAogICAgIGlmIChoYXZl
QXJndW1lbnRzKSB7CisgICAgICAgIEhhc2hTZXQ8SW5saW5lQ2FsbEZyYW1lKiwgRGVmYXVsdEhh
c2g8SW5saW5lQ2FsbEZyYW1lKj46Okhhc2gsCisgICAgICAgICAgICBOdWxsYWJsZUhhc2hUcmFp
dHM8SW5saW5lQ2FsbEZyYW1lKj4gPiBkaWRDcmVhdGVBcmd1bWVudHNPYmplY3Q7CisKICAgICAg
ICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG9wZXJhbmRzLnNpemUoKTsgKytpbmRl
eCkgewogICAgICAgICAgICAgY29uc3QgVmFsdWVSZWNvdmVyeSYgcmVjb3ZlcnkgPSBvcGVyYW5k
c1tpbmRleF07CiAgICAgICAgICAgICBpZiAocmVjb3ZlcnkudGVjaG5pcXVlKCkgIT0gQXJndW1l
bnRzVGhhdFdlcmVOb3RDcmVhdGVkKQpAQCAtNjAyLDI5ICs2MDYsMjkgQEAgdm9pZCBPU1JFeGl0
Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGludCBhcmd1
bWVudHNSZWdpc3RlciA9IG1faml0LmFyZ3VtZW50c1JlZ2lzdGVyRm9yKGlubGluZUNhbGxGcmFt
ZSk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkaWRDcmVhdGVBcmd1bWVudHNPYmpl
Y3QuYWRkKGlubGluZUNhbGxGcmFtZSkuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgICAgIC8v
IFdlIGtub3cgdGhpcyBjYWxsIGZyYW1lIG9wdGltaXplZCBvdXQgYW4gYXJndW1lbnRzIG9iamVj
dCB0aGF0CisgICAgICAgICAgICAgICAgLy8gdGhlIGJhc2VsaW5lIEpJVCB3b3VsZCBoYXZlIGNy
ZWF0ZWQuIERvIHRoYXQgY3JlYXRpb24gbm93LgorICAgICAgICAgICAgICAgIGlmIChpbmxpbmVD
YWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJl
Z1QwKTsKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHMoR1BSSW5mbzo6
cmVnVDApOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUo
CisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uQ3JlYXRl
QXJndW1lbnRzKSksCisgICAgICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwor
ICAgICAgICAgICAgICAgIG1faml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAgICAg
ICAgICAgICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEFzc2VtYmx5
SGVscGVyczo6YWRkcmVzc0Zvcihhcmd1bWVudHNSZWdpc3RlcikpOworICAgICAgICAgICAgICAg
IG1faml0LnN0b3JlUHRyKAorICAgICAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwKKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHVu
bW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihhcmd1bWVudHNSZWdpc3RlcikpKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdU
MCk7IC8vIG5vLW9wIG1vdmUgb24gYWxtb3N0IGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICAgICB9
CisKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9y
KGFyZ3VtZW50c1JlZ2lzdGVyKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgQXNzZW1i
bHlIZWxwZXJzOjpKdW1wIGhhdmVBcmd1bWVudHMgPSBtX2ppdC5icmFuY2hUZXN0UHRyKAotICAg
ICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDApOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgbV9qaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50cyhHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAg
ICAgICAgbV9qaXQubW92ZSgKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoCi0gICAgICAgICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0
aW9uQ3JlYXRlQXJndW1lbnRzKSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BS
MCk7Ci0gICAgICAgICAgICBtX2ppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAg
ICAgICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0Zvcihhcmd1bWVudHNSZWdpc3RlcikpOwotICAgICAgICAgICAgbV9qaXQu
c3RvcmVQdHIoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsCi0gICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHVubW9kaWZpZWRBcmd1bWVu
dHNSZWdpc3Rlcihhcmd1bWVudHNSZWdpc3RlcikpKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsgLy8gbm8tb3AgbW92ZSBv
biBhbG1vc3QgYWxsIHBsYXRmb3Jtcy4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaGF2ZUFy
Z3VtZW50cy5saW5rKCZtX2ppdCk7CiAgICAgICAgICAgICBtX2ppdC5zdG9yZVB0cihHUFJJbmZv
OjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKG9wZXJhbmQpKTsKICAgICAgICAg
fQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTI4OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjExOSw5
ICsyMTE5LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKLSAgICAgICAgLy8gVGhp
cyBzaG91bGQgbmV2ZXIgYmUgbXVzdC1nZW5lcmF0ZS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIC8vIEJ1dCBhcyBhIHJlbGVhc2UtbW9kZSBmYWxsLWJhY2sgbWFrZSBp
dCB0aGUgZW1wdHkgdmFsdWUuCiAgICAgICAgIGluaXRDb25zdGFudEluZm8obV9jb21waWxlSW5k
ZXgpOwogICAgICAgICBicmVhazsKIApAQCAtMjI4MCw2ICsyMjc3LDE1IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgbm9SZXN1bHQobV9jb21waWxl
SW5kZXgpOwogCiAgICAgICAgIHJlY29yZFNldExvY2FsKG5vZGUubG9jYWwoKSwgVmFsdWVTb3Vy
Y2UoVmFsdWVJblJlZ2lzdGVyRmlsZSkpOworCisgICAgICAgIC8vIElmIHdlJ3JlIHN0b3Jpbmcg
YW4gYXJndW1lbnRzIG9iamVjdCB0aGF0IGhhcyBiZWVuIG9wdGltaXplZCBhd2F5LAorICAgICAg
ICAvLyBvdXIgdmFyaWFibGUgZXZlbnQgc3RyZWFtIGZvciBPU1IgZXhpdCBub3cgcmVmbGVjdHMg
dGhlIG9wdGltaXplZAorICAgICAgICAvLyB2YWx1ZSAoSlNWYWx1ZSgpKS4gT24gdGhlIHNsb3cg
cGF0aCwgd2Ugd2FudCBhbiBhcmd1bWVudHMgb2JqZWN0CisgICAgICAgIC8vIGluc3RlYWQuIFdl
IGFkZCBhbiBhZGRpdGlvbmFsIG1vdmUgaGludCB0byBzaG93IE9TUiBleGl0IHRoYXQgaXQKKyAg
ICAgICAgLy8gbmVlZHMgdG8gcmVjb25zdHJ1Y3QgdGhlIGFyZ3VtZW50cyBvYmplY3QuCisgICAg
ICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5vcCgpID09IFBoYW50b21Bcmd1bWVudHMpCisgICAg
ICAgICAgICBjb21waWxlTW92SGludChub2RlKTsKKwogICAgICAgICBicmVhazsKICAgICB9CiAK
</data>
<flag name="review"
          id="176727"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>