<?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>124793</bug_id>
          
          <creation_ts>2013-11-22 15:15:57 -0800</creation_ts>
          <short_desc>CodeBlock::m_numCalleeRegisters shouldn&apos;t also mean frame size, frame size needed for exit, or any other unrelated things</short_desc>
          <delta_ts>2013-11-22 16:35:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116888</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>953691</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-22 15:15:57 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953694</commentid>
    <comment_count>1</comment_count>
      <attachid>217719</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-22 15:19:56 -0800</bug_when>
    <thetext>Created attachment 217719
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953702</commentid>
    <comment_count>2</comment_count>
      <attachid>217719</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-22 15:31:11 -0800</bug_when>
    <thetext>Comment on attachment 217719
the patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:709
&gt; +    unsigned count = m_profiledBlock-&gt;m_numCalleeRegisters;

JIT::frameRegisterCountFor(m_profiledBlock)

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:713
&gt; +        unsigned requiredCount = VirtualRegister(inlineCallFrame-&gt;stackOffset).toLocal() + 1 + codeBlock-&gt;m_numCalleeRegisters;

JIT::frameRegisterCountFor(codeBlock)

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:715
&gt; +        if (requiredCount &gt; count)
&gt; +            count = requiredCount;

max?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953720</commentid>
    <comment_count>3</comment_count>
      <attachid>217724</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-22 16:15:17 -0800</bug_when>
    <thetext>Created attachment 217724
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953732</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-22 16:35:48 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/159721</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217719</attachid>
            <date>2013-11-22 15:19:56 -0800</date>
            <delta_ts>2013-11-22 16:15:17 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20132</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NzE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDEzLTExLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVycyBzaG91bGRuJ3QgYWxzbyBtZWFuIGZyYW1l
IHNpemUsIGZyYW1lIHNpemUgbmVlZGVkIGZvciBleGl0LCBvciBhbnkgb3RoZXIgdW5yZWxhdGVk
IHRoaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI0NzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBOb3cgbV9udW1DYWxsZWVSZWdpc3RlcnMgYWx3YXlzIHJlZmVycyB0byB0aGUgbnVt
YmVyIG9mIGxvY2FscyB0aGF0IHRoZSBhdHRhY2hlZAorICAgICAgICBieXRlY29kZSB1c2VzLiBJ
dCBuZXZlciBtZWFucyBhbnl0aGluZyBlbHNlLgorICAgICAgICAKKyAgICAgICAgRm9yIGZyYW1l
IHNpemUsIHdlIG5vdyBoYXZlIGl0IGxhemlseSBjb21wdXRlZCBmcm9tIG1fbnVtQ2FsbGVlUmVn
aXN0ZXJzIGZvciB0aGUKKyAgICAgICAgYmFzZWxpbmUgZW5naW5lcyBhbmQgd2UgaGF2ZSBpdCBz
dG9yZWQgaW4gREZHOjpDb21tb25EYXRhIGZvciB0aGUgb3B0aW1pemluZyBKSVRzLgorICAgICAg
ICAKKyAgICAgICAgRm9yIGZyYW1lLXNpemUtbmVlZGVkLWF0LWV4aXQsIHdlIHN0b3JlIHRoYXQg
aW4gREZHOjpDb21tb25EYXRhLCB0b28uCisgICAgICAgIAorICAgICAgICBUaGUgY29kZSBubyBs
b25nZXIgaW1wbGllcyB0aGF0IHRoZXJlIGlzIGFueSBhcml0aG1ldGljIHJlbGF0aW9uc2hpcCBi
ZXR3ZWVuCisgICAgICAgIG1fbnVtQ2FsbGVlUmVnaXN0ZXJzIGFuZCBmcmFtZVNpemUuIFByZXZp
b3VzbHkgaXQgaW1wbGllZCB0aGF0IHRoZSBsYXR0ZXIgaXMgZ3JlYXRlcgorICAgICAgICB0aGFu
IHRoZSBmb3JtZXIuCisgICAgICAgIAorICAgICAgICBUaGUgY29kZSBubyBsb25nZXIgaW1wbGll
cyB0aGF0IHRoZXJlIGlzIGFueSBhcml0aG1ldGljIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZQor
ICAgICAgICBmcmFtZSBTaXplIGFuZCB0aGUgZnJhbWUtc2l6ZS1uZWVkZWQtYXQtZXhpdC4gUHJl
dmlvdXNseSBpdCBpbXBsaWVkIHRoYXQgdGhlIGxhdHRlcgorICAgICAgICBpcyBncmVhdGVyIHRo
YXQgdGhlIGZvcm1lci4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZnJhbWVSZWdpc3RlckNvdW50KToKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQ29tbW9uRGF0YS5oOgorICAgICAg
ICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OkNvbW1vbkRhdGEpOgorICAgICAgICAoSlNDOjpERkc6
OkNvbW1vbkRhdGE6OnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQpOgor
ICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmZy
YW1lUmVnaXN0ZXJDb3VudCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnJlcXVpcmVkUmVn
aXN0ZXJDb3VudEZvckV4aXQpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpyZXF1aXJlZFJl
Z2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGgu
aDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvbXBpbGVyOjpsaW5rKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29t
cGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6U3BlY3VsYXRpdmVK
SVQpOgorICAgICAgICAqIGRmZy9ERkdWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlZpcnR1YWxSZWdpc3RlckFsbG9jYXRpb25QaGFzZTo6cnVu
KToKKyAgICAgICAgKiBmdGwvRlRMTGluay5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bGluayk6
CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNhbGxPckNvbnN0cnVjdCk6CisgICAgICAgICogZnRs
L0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVwYXJlT1NSRW50cnkpOgor
ICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkNhbGxG
cmFtZTo6ZnJhbWVFeHRlbnRJbnRlcm5hbCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNTdGFj
a0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6cHVzaEZyYW1lKToKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6ZnJhbWVSZWdpc3RlckNvdW50Rm9yKToK
KyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRF
bnRyeXBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZv
cik6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50Lmg6CisKIDIwMTMtMTEtMjEgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21iaW5lIFN5bWJvbFRh
YmxlIGFuZCBTaGFyZWRTeW1ib2xUYWJsZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwx
MSArMzksMTMgQEAKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2Vy
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRl
ICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0pT
VmFsdWUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNOYW1lU2NvcGUu
aCIKKyNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGlj
UHV0QnlJZExpc3QuaCIKQEAgLTMyOTksNiArMzMwMSwzMSBAQCB2b2lkIENvZGVCbG9jazo6ZHVt
cFZhbHVlUHJvZmlsZXMoKQogfQogI2VuZGlmIC8vIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJ
TEUpCiAKK3Vuc2lnbmVkIENvZGVCbG9jazo6ZnJhbWVSZWdpc3RlckNvdW50KCkKK3sKKyAgICBz
d2l0Y2ggKGppdFR5cGUoKSkgeworI2lmIEVOQUJMRShMTElOVCkKKyAgICBjYXNlIEpJVENvZGU6
OkludGVycHJldGVyVGh1bms6CisgICAgICAgIHJldHVybiBMTEludDo6ZnJhbWVSZWdpc3RlckNv
dW50Rm9yKHRoaXMpOworI2VuZGlmIC8vIEVOQUJMRShMTElOVCkKKworI2lmIEVOQUJMRShKSVQp
CisgICAgY2FzZSBKSVRDb2RlOjpCYXNlbGluZUpJVDoKKyAgICAgICAgcmV0dXJuIEpJVDo6ZnJh
bWVSZWdpc3RlckNvdW50Rm9yKHRoaXMpOworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNpZiBF
TkFCTEUoREZHX0pJVCkKKyAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKKyAgICBjYXNlIEpJVENv
ZGU6OkZUTEpJVDoKKyAgICAgICAgcmV0dXJuIGppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmZyYW1l
UmVnaXN0ZXJDb3VudDsKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKyAgICAgICAgCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorfQorCiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNoaW5l
Q29kZVNpemUoKQogewogICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxvY2s6
OkNvZGVCbG9jayBiZWZvcmUgZWl0aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTg5Nyw2ICs4OTcsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZFUkJPU0VfVkFMVUVfUFJPRklM
RSkKICAgICB2b2lkIGR1bXBWYWx1ZVByb2ZpbGVzKCk7CiAjZW5kaWYKKyAgICAKKyAgICB1bnNp
Z25lZCBmcmFtZVJlZ2lzdGVyQ291bnQoKTsKIAogICAgIC8vIEZJWE1FOiBNYWtlIHRoZXNlIHJl
bWFpbmluZyBtZW1iZXJzIHByaXZhdGUuCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5oCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsOCBA
QCBwdWJsaWM6CiAgICAgQ29tbW9uRGF0YSgpCiAgICAgICAgIDogaXNTdGlsbFZhbGlkKHRydWUp
CiAgICAgICAgICwgbWFjaGluZUNhcHR1cmVTdGFydChzdGQ6Om51bWVyaWNfbGltaXRzPGludD46
Om1heCgpKQorICAgICAgICAsIGZyYW1lUmVnaXN0ZXJDb3VudChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkpCisgICAgICAgICwgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhp
dChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgeyB9CiAgICAgCiAg
ICAgdm9pZCBub3RpZnlDb21waWxpbmdTdHJ1Y3R1cmVUcmFuc2l0aW9uKFBsYW4mLCBDb2RlQmxv
Y2sqLCBOb2RlKik7CkBAIC04Miw2ICs4NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaHJpbmtU
b0ZpdCgpOwogICAgIAogICAgIGJvb2wgaW52YWxpZGF0ZSgpOyAvLyBSZXR1cm5zIHRydWUgaWYg
d2UgZGlkIGludmFsaWRhdGUsIG9yIGZhbHNlIGlmIHRoZSBjb2RlIGJsb2NrIHdhcyBhbHJlYWR5
IGludmFsaWRhdGVkLgorICAgIAorICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZv
ckV4ZWN1dGlvbkFuZEV4aXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4
KGZyYW1lUmVnaXN0ZXJDb3VudCwgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCk7CisgICAg
fQogCiAgICAgT3duUHRyPElubGluZUNhbGxGcmFtZVNldD4gaW5saW5lQ2FsbEZyYW1lczsKICAg
ICBWZWN0b3I8Q29kZU9yaWdpbiwgMCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+IGNvZGVPcmlnaW5z
OwpAQCAtMTAwLDYgKzEwNyw5IEBAIHB1YmxpYzoKICAgICAKICAgICBpbnQgbWFjaGluZUNhcHR1
cmVTdGFydDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd0FyZ3VtZW50W10+IHNsb3dBcmd1bWVu
dHM7CisgICAgCisgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50OworICAgIHVuc2lnbmVk
IHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQ7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNp
b24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY5OCw3ICs2OTgsMzAgQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRl
Y29kZShWaXJ0dWFsUmVnaQogICAgIAogICAgIHJldHVybiB0cnVlOwogfQotICAgIAorCit1bnNp
Z25lZCBHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KCkKK3sKKyAgICByZXR1cm4gbV9uZXh0TWFj
aGluZUxvY2FsICsgbV9wYXJhbWV0ZXJTbG90czsKK30KKwordW5zaWduZWQgR3JhcGg6OnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKQoreworICAgIHVuc2lnbmVkIGNvdW50ID0gbV9wcm9m
aWxlZEJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKKyAgICBmb3IgKElubGluZUNhbGxGcmFt
ZVNldDo6aXRlcmF0b3IgaXRlciA9IG1faW5saW5lQ2FsbEZyYW1lcy0+YmVnaW4oKTsgISFpdGVy
OyArK2l0ZXIpIHsKKyAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSAq
aXRlcjsKKyAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zv
cklubGluZUNhbGxGcmFtZShpbmxpbmVDYWxsRnJhbWUpOworICAgICAgICB1bnNpZ25lZCByZXF1
aXJlZENvdW50ID0gVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQp
LnRvTG9jYWwoKSArIDEgKyBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgICAg
ICBpZiAocmVxdWlyZWRDb3VudCA+IGNvdW50KQorICAgICAgICAgICAgY291bnQgPSByZXF1aXJl
ZENvdW50OworICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpy
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkKK3sKKyAgICByZXR1cm4g
c3RkOjptYXgoZnJhbWVSZWdpc3RlckNvdW50KCksIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4
aXQoKSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4Nyw2
ICs3ODcsMTAgQEAgcHVibGljOgogICAgIEZ1bGxCeXRlY29kZUxpdmVuZXNzJiBsaXZlbmVzc0Zv
cihJbmxpbmVDYWxsRnJhbWUqKTsKICAgICBib29sIGlzTGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJl
Z2lzdGVyLCBDb2RlT3JpZ2luKTsKICAgICAKKyAgICB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291
bnQoKTsKKyAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCk7CisgICAg
dW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOworICAg
IAogICAgIFZNJiBtX3ZtOwogICAgIFBsYW4mIG1fcGxhbjsKICAgICBDb2RlQmxvY2sqIG1fY29k
ZUJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiArMTU0LDkgQEAgdm9pZCBK
SVRDb21waWxlcjo6bGluayhMaW5rQnVmZmVyJiBsaW5rQgogICAgIGRhdGFMb2dGKCJKSVQgY29k
ZSBmb3IgJXAgc3RhcnQgYXQgWyVwLCAlcCkuIFNpemUgPSAlenUuXG4iLCBtX2NvZGVCbG9jaywg
bGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3MoKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KGxpbmtCdWZmZXIu
ZGVidWdBZGRyZXNzKCkpICsgbGlua0J1ZmZlci5kZWJ1Z1NpemUoKSwgbGlua0J1ZmZlci5kZWJ1
Z1NpemUoKSk7CiAjZW5kaWYKICAgICAKKyAgICBtX2ppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lz
dGVyQ291bnQgPSBtX2dyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIG1faml0Q29kZS0+
Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgPSBtX2dyYXBoLnJlcXVpcmVkUmVn
aXN0ZXJDb3VudEZvckV4aXQoKTsKKwogICAgIGlmICghbV9ncmFwaC5tX2lubGluZUNhbGxGcmFt
ZXMtPmlzRW1wdHkoKSkKICAgICAgICAgbV9qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZyYW1l
cyA9IG1fZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLnJlbGVhc2UoKTsKICAgICAKQEAgLTMzMSw3
ICszMzQsNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIC8vIHNv
IGVudGVyIGFmdGVyIHRoaXMuCiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7CiAgICAg
Ly8gUGxhbnQgYSBjaGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRo
ZSBKU1N0YWNrLgotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9j
YWwobV9jb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwor
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9mZnNldCgpICogc2l6
ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdU
MSk7CiAgICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJl
c3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAgICAg
Ly8gUmV0dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCiAgICAgTGFiZWwgZnJvbVN0YWNrQ2hl
Y2sgPSBsYWJlbCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRy
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRy
eS5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw4IEBAIHZvaWQqIHByZXBh
cmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
ICAgIAotICAgIE9TUkVudHJ5RGF0YSogZW50cnkgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+ZGZn
KCktPm9zckVudHJ5RGF0YUZvckJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCk7CisgICAgSklU
Q29kZSogaml0Q29kZSA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKTsKKyAgICBPU1JFbnRy
eURhdGEqIGVudHJ5ID0gaml0Q29kZS0+b3NyRW50cnlEYXRhRm9yQnl0ZWNvZGVJbmRleChieXRl
Y29kZUluZGV4KTsKICAgICAKICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgIGlmIChPcHRpb25z
Ojp2ZXJib3NlT1NSKCkpCkBAIC0xODAsNyArMTgxLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5
KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIC8vICAgIGl0IHNlZW1zIHNpbGx5OiB5b3UnZCBiZSBk
aXZlcnRpbmcgdGhlIHByb2dyYW0gdG8gZXJyb3IgaGFuZGxpbmcgd2hlbiBpdAogICAgIC8vICAg
IHdvdWxkIGhhdmUgb3RoZXJ3aXNlIGp1c3Qga2VwdCBydW5uaW5nIGFsYmVpdCBsZXNzIHF1aWNr
bHkuCiAgICAgCi0gICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+
cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5tX251bUNhbGxl
ZVJlZ2lzdGVycykub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFj
aygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGppdENv
ZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9m
ZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAg
ICAgIGRhdGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQu
XG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDcgKzQ2LDcgQEAgU3BlY3VsYXRpdmVKSVQ6OlNwZWN1bGF0aXZlSklUKEpJVENvbXBp
bAogICAgICwgbV9qaXQoaml0KQogICAgICwgbV9jdXJyZW50Tm9kZSgwKQogICAgICwgbV9pbmRl
eEluQmxvY2soMCkKLSAgICAsIG1fZ2VuZXJhdGlvbkluZm8obV9qaXQuY29kZUJsb2NrKCktPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzKQorICAgICwgbV9nZW5lcmF0aW9uSW5mbyhtX2ppdC5ncmFwaCgp
LmZyYW1lUmVnaXN0ZXJDb3VudCgpKQogICAgICwgbV9zdGF0ZShtX2ppdC5ncmFwaCgpKQogICAg
ICwgbV9pbnRlcnByZXRlcihtX2ppdC5ncmFwaCgpLCBtX3N0YXRlKQogICAgICwgbV9zdHJlYW0o
JmppdC5qaXRDb2RlKCktPnZhcmlhYmxlRXZlbnRTdHJlYW0pCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRpb25QaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWaXJ0dWFsUmVnaXN0ZXJBbGxv
Y2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExOSwyOCArMTE5LDYgQEAgcHVibGljOgogICAgICAgICAvLyB0byBmaWd1cmUgb3V0
IHdoZXJlIHRvIHB1dCB0aGUgcGFyYW1ldGVycy4KICAgICAgICAgbV9ncmFwaC5tX25leHRNYWNo
aW5lTG9jYWwgPSBzY29yZUJvYXJkLmhpZ2hXYXRlcm1hcmsoKTsKIAotICAgICAgICAvLyAnbV9u
dW1DYWxsZWVSZWdpc3RlcnMnIGlzIHRoZSBudW1iZXIgb2YgbG9jYWxzIGFuZCB0ZW1wb3Jhcmll
cyBhbGxvY2F0ZWQKLSAgICAgICAgLy8gZm9yIHRoZSBmdW5jdGlvbiAoYW5kIGNoZWNrZWQgZm9y
IG9uIGVudHJ5KS4gU2luY2Ugd2UgcGVyZm9ybSBhIG5ldyBhbmQKLSAgICAgICAgLy8gZGlmZmVy
ZW50IGFsbG9jYXRpb24gb2YgdGVtcG9yYXJpZXMsIG1vcmUgcmVnaXN0ZXJzIG1heSBub3cgYmUg
cmVxdWlyZWQuCi0gICAgICAgIC8vIFRoaXMgYWxzbyBhY2NvdW50cyBmb3IgdGhlIG51bWJlciBv
ZiB0ZW1wb3JhcmllcyB0aGF0IG1heSBiZSBuZWVkZWQgaWYgd2UKLSAgICAgICAgLy8gT1NSIGV4
aXQsIGR1ZSB0byBpbmxpbmluZy4gSGVuY2UgdGhpcyBjb21wdXRlcyB0aGUgbnVtYmVyIG9mIHRl
bXBvcmFyaWVzCi0gICAgICAgIC8vIHRoYXQgY291bGQgYmUgdXNlZCBieSB0aGlzIGNvZGUgYmxv
Y2sgZXZlbiBpZiBpdCBleGl0czsgaXQgbWF5IGJlIG1vcmUKLSAgICAgICAgLy8gdGhhbiB3aGF0
IHRoaXMgY29kZSBibG9jayBuZWVkcyBpZiBpdCBuZXZlciBleGl0cy4KLSAgICAgICAgdW5zaWdu
ZWQgY2FsbGVlUmVnaXN0ZXJzID0gc2NvcmVCb2FyZC5oaWdoV2F0ZXJtYXJrKCkgKyBtX2dyYXBo
Lm1fcGFyYW1ldGVyU2xvdHM7Ci0gICAgICAgIGZvciAoSW5saW5lQ2FsbEZyYW1lU2V0OjppdGVy
YXRvciBpdGVyID0gbV9ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmJlZ2luKCk7ICEhaXRlcjsg
KytpdGVyKSB7Ci0gICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9
ICppdGVyOwotICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiYXNlbGluZUNvZGVC
bG9ja0ZvcklubGluZUNhbGxGcmFtZShpbmxpbmVDYWxsRnJhbWUpOwotICAgICAgICAgICAgdW5z
aWduZWQgcmVxdWlyZWRDYWxsZWVSZWdpc3RlcnMgPSBWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2Fs
bEZyYW1lLT5zdGFja09mZnNldCkudG9Mb2NhbCgpICsgMSArIGNvZGVCbG9jay0+bV9udW1DYWxs
ZWVSZWdpc3RlcnM7Ci0gICAgICAgICAgICBpZiAocmVxdWlyZWRDYWxsZWVSZWdpc3RlcnMgPiBj
YWxsZWVSZWdpc3RlcnMpCi0gICAgICAgICAgICAgICAgY2FsbGVlUmVnaXN0ZXJzID0gcmVxdWly
ZWRDYWxsZWVSZWdpc3RlcnM7Ci0gICAgICAgIH0KLSAgICAgICAgY2FsbGVlUmVnaXN0ZXJzID0g
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIGNhbGxl
ZVJlZ2lzdGVycyk7Ci0gICAgICAgIGlmICgodW5zaWduZWQpY29kZUJsb2NrKCktPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzIDwgY2FsbGVlUmVnaXN0ZXJzKQotICAgICAgICAgICAgY29kZUJsb2NrKCkt
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzID0gY2FsbGVlUmVnaXN0ZXJzOwotI2lmIERGR19FTkFCTEUo
REVCVUdfVkVSQk9TRSkKLSAgICAgICAgZGF0YUxvZ0YoIk51bSBjYWxsZWUgcmVnaXN0ZXJzOiAl
dVxuIiwgY2FsbGVlUmVnaXN0ZXJzKTsKLSNlbmRpZgotICAgICAgICAKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGlu
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNw
cAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5r
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsOSBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0
YXRlKQogICAgIGlmICghc3RhdGUuZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5KCkp
CiAgICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3RkOjpt
b3ZlKHN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7CiAgICAgCisgICAgc3RhdGUuaml0
Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJDb3VudCA9IHN0YXRlLmdyYXBoLmZyYW1lUmVnaXN0
ZXJDb3VudCgpOworICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291
bnRGb3JFeGl0ID0gc3RhdGUuZ3JhcGgucmVxdXJpZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwor
ICAgIAogICAgIC8vIENyZWF0ZSB0aGUgZW50cnlwb2ludC4gTm90ZSB0aGF0IHdlIHVzZSB0aGlz
IGVudHJ5cG9pbnQgdG90YWxseSBkaWZmZXJlbnRseQogICAgIC8vIGRlcGVuZGluZyBvbiB3aGV0
aGVyIHdlJ3JlIGRvaW5nIE9TUiBlbnRyeSBvciBub3QuCiAgICAgLy8gRklYTUU6IEV4Y2VwdCBm
b3IgT1NSIGVudHJ5LCB0aGlzIGlzIGEgdG90YWwga2x1ZGdlIC0gTExWTSBzaG91bGQganVzdCB1
c2Ugb3VyCkBAIC04MCw3ICs4Myw3IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAgICAg
IC8vIFBsYW50IGEgY2hlY2sgdGhhdCBzdWZmaWNpZW50IHNwYWNlIGlzIGF2YWlsYWJsZSBpbiB0
aGUgSlNTdGFjay4KICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjI5MQogICAgICAgICBqaXQuYWRkUHRyKAotICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2Nr
LT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKG1fc3RhdGUuZ3JhcGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhp
dCgpKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLAogICAgICAgICAgICAgR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIHN0YWNrQ2hlY2sgPSBqaXQuYnJhbmNoUHRyKAogICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBYm92ZSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQwNSw3ICsy
NDA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxsZWVGcmFtZSA9
IG1fb3V0LmFkZCgKICAgICAgICAgICAgIG1fY2FsbEZyYW1lLAotICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnRQdHIoc2l6ZW9mKFJlZ2lzdGVyKSAqIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNv
ZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCkpKTsKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihSZWdpc3RlcikgKiB2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbChtX2dyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKSkpOwogICAgICAgICAK
ICAgICAgICAgbV9vdXQuc3RvcmUzMigKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIobnVt
UGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50KSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsMTAg
Kzc4LDEwIEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKICAgICBmb3IgKGludCBsb2NhbCA9IHZh
bHVlcy5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKICAgICAgICAgc2NyYXRjaFtsb2NhbF0g
PSBKU1ZhbHVlOjplbmNvZGUodmFsdWVzLmxvY2FsKGxvY2FsKSk7CiAgICAgCi0gICAgaW50IHN0
YWNrRnJhbWVTaXplID0gZW50cnlDb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOworICAg
IGludCBzdGFja0ZyYW1lU2l6ZSA9IGVudHJ5Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJD
b3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKICAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFj
aygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNr
RnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpCi0gICAgICAgICAgICBkYXRhTG9nKCIgICAgT1NSIGZhaWxlZCBiY2F1c2Ugc3RhY2sgZ3Jv
d3RoIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgZGF0YUxvZygiICAgIE9TUiBmYWlsZWQgYmVj
YXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxs
RnJhbWUuY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBA
IFJlZ2lzdGVyKiBDYWxsRnJhbWU6OmZyYW1lRXh0ZW50SW50ZXJuYWwKIHsKICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwogICAgIEFTU0VSVChjb2RlQmxvY2sp
OwotICAgIHJldHVybiByZWdpc3RlcnMoKSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVC
bG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9mZnNldCgpOworICAgIHJldHVybiByZWdpc3Rl
cnMoKSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNv
dW50KCkpLm9mZnNldCgpOwogfQogCiBKU0dsb2JhbE9iamVjdCogQ2FsbEZyYW1lOjp2bUVudHJ5
R2xvYmFsT2JqZWN0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9K
U1N0YWNrSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9KU1N0YWNrSW5saW5lcy5oCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNzMsNyArNzMsNyBAQCBpbmxpbmUgQ2FsbEZyYW1lKiBKU1N0YWNrOjpwdXNoRnJhbWUoQ2Fs
CiAKICAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1lU2xvdDsKICAgICBpZiAoISFj
b2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2Rl
QmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKTsKKyAgICAgICAgbmV3RW5kICs9
IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkp
Lm9mZnNldCgpOwogCiAgICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNr
IGNhcGFjaXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKICAgICBpZiAoIWdyb3cobmV3RW5kKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDYgKzI0Mywx
MSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBsaW5rRm9yKEV4ZWNT
dGF0ZSosIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENv
ZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBDb2RlUHRyLCBDYWxsTGlua0luZm8qLCBWTSosIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQpOwogICAgICAgICBzdGF0aWMgdm9pZCBsaW5rU2xvd0NhbGwo
Q29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyopOworICAgICAgICAKKyAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnM7CisgICAgICAgIH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpJVChW
TSosIENvZGVCbG9jayogPSAwKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFCiAKICAgICBKU1N0YWNr
JiBzdGFjayA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKTsKIAotICAgIGlmIChVTkxJS0VMWSgh
c3RhY2suZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29k
ZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSkpCisgICAgaWYgKFVOTElL
RUxZKCFzdGFjay5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKV0pKSkKICAgICAgICAg
dm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Io
Y2FsbGVyRnJhbWUpKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RW50cnlwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RW50cnlwb2ludC5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTksNiArMTE5LDExIEBAIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY28K
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCit1bnNpZ25lZCBmcmFtZVJl
Z2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgcmV0dXJuIGNvZGVC
bG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpM
TEludAogCiAjZW5kaWYgLy8gRU5BQkxFKExMSU5UKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBMTEludCB7CiAKIHZvaWQgc2V0RW50cnlwb2lu
dChWTSYsIENvZGVCbG9jayopOwogCit1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29k
ZUJsb2NrKik7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5B
QkxFKExMSU5UKQo=
</data>
<flag name="review"
          id="240904"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217724</attachid>
            <date>2013-11-22 16:15:17 -0800</date>
            <delta_ts>2013-11-22 16:15:17 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20918</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NzE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDEzLTExLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVycyBzaG91bGRuJ3QgYWxzbyBtZWFuIGZyYW1l
IHNpemUsIGZyYW1lIHNpemUgbmVlZGVkIGZvciBleGl0LCBvciBhbnkgb3RoZXIgdW5yZWxhdGVk
IHRoaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI0NzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBIYWhuZW5iZXJnLgorICAgICAgICAK
KyAgICAgICAgTm93IG1fbnVtQ2FsbGVlUmVnaXN0ZXJzIGFsd2F5cyByZWZlcnMgdG8gdGhlIG51
bWJlciBvZiBsb2NhbHMgdGhhdCB0aGUgYXR0YWNoZWQKKyAgICAgICAgYnl0ZWNvZGUgdXNlcy4g
SXQgbmV2ZXIgbWVhbnMgYW55dGhpbmcgZWxzZS4KKyAgICAgICAgCisgICAgICAgIEZvciBmcmFt
ZSBzaXplLCB3ZSBub3cgaGF2ZSBpdCBsYXppbHkgY29tcHV0ZWQgZnJvbSBtX251bUNhbGxlZVJl
Z2lzdGVycyBmb3IgdGhlCisgICAgICAgIGJhc2VsaW5lIGVuZ2luZXMgYW5kIHdlIGhhdmUgaXQg
c3RvcmVkIGluIERGRzo6Q29tbW9uRGF0YSBmb3IgdGhlIG9wdGltaXppbmcgSklUcy4KKyAgICAg
ICAgCisgICAgICAgIEZvciBmcmFtZS1zaXplLW5lZWRlZC1hdC1leGl0LCB3ZSBzdG9yZSB0aGF0
IGluIERGRzo6Q29tbW9uRGF0YSwgdG9vLgorICAgICAgICAKKyAgICAgICAgVGhlIGNvZGUgbm8g
bG9uZ2VyIGltcGxpZXMgdGhhdCB0aGVyZSBpcyBhbnkgYXJpdGhtZXRpYyByZWxhdGlvbnNoaXAg
YmV0d2VlbgorICAgICAgICBtX251bUNhbGxlZVJlZ2lzdGVycyBhbmQgZnJhbWVTaXplLiBQcmV2
aW91c2x5IGl0IGltcGxpZWQgdGhhdCB0aGUgbGF0dGVyIGlzIGdyZWF0ZXIKKyAgICAgICAgdGhh
biB0aGUgZm9ybWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIGNvZGUgbm8gbG9uZ2VyIGltcGxp
ZXMgdGhhdCB0aGVyZSBpcyBhbnkgYXJpdGhtZXRpYyByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUK
KyAgICAgICAgZnJhbWUgU2l6ZSBhbmQgdGhlIGZyYW1lLXNpemUtbmVlZGVkLWF0LWV4aXQuIFBy
ZXZpb3VzbHkgaXQgaW1wbGllZCB0aGF0IHRoZSBsYXR0ZXIKKyAgICAgICAgaXMgZ3JlYXRlciB0
aGF0IHRoZSBmb3JtZXIuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCk6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjpDb21tb25EYXRhKToKKyAgICAgICAgKEpTQzo6REZH
OjpDb21tb25EYXRhOjpyZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KToK
KyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpm
cmFtZVJlZ2lzdGVyQ291bnQpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpyZXF1aXJlZFJl
Z2lzdGVyQ291bnRGb3JFeGl0KToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6cmVxdWlyZWRS
ZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
Lmg6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpKSVRDb21waWxlcjo6bGluayk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNv
bXBpbGVGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpwcmVwYXJlT1NSRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OlNwZWN1bGF0aXZl
SklUKToKKyAgICAgICAgKiBkZmcvREZHVmlydHVhbFJlZ2lzdGVyQWxsb2NhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2U6OnJ1
bik6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Omxpbmsp
OgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDYWxsT3JDb25zdHJ1Y3QpOgorICAgICAgICAqIGZ0
bC9GVExPU1JFbnRyeS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6cHJlcGFyZU9TUkVudHJ5KToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxs
RnJhbWU6OmZyYW1lRXh0ZW50SW50ZXJuYWwpOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3Rh
Y2tJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnB1c2hGcmFtZSk6CisgICAgICAg
ICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50
RW50cnlwb2ludC5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpmcmFtZVJlZ2lzdGVyQ291bnRG
b3IpOgorICAgICAgICAqIGxsaW50L0xMSW50RW50cnlwb2ludC5oOgorCiAyMDEzLTExLTIxICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ29tYmluZSBTeW1ib2xU
YWJsZSBhbmQgU2hhcmVkU3ltYm9sVGFibGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzks
MTEgKzM5LDEzIEBACiAjaW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dl
ci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVk
ZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0NK
U1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3Bl
LmgiCisjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQb2x5bW9ycGhp
Y1B1dEJ5SWRMaXN0LmgiCkBAIC0zMjk5LDYgKzMzMDEsMzEgQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXBWYWx1ZVByb2ZpbGVzKCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoVkVSQk9TRV9WQUxVRV9QUk9G
SUxFKQogCit1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCit7CisgICAg
c3dpdGNoIChqaXRUeXBlKCkpIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgY2FzZSBKSVRDb2Rl
OjpJbnRlcnByZXRlclRodW5rOgorICAgICAgICByZXR1cm4gTExJbnQ6OmZyYW1lUmVnaXN0ZXJD
b3VudEZvcih0aGlzKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlQpCisKKyNpZiBFTkFCTEUoSklU
KQorICAgIGNhc2UgSklUQ29kZTo6QmFzZWxpbmVKSVQ6CisgICAgICAgIHJldHVybiBKSVQ6OmZy
YW1lUmVnaXN0ZXJDb3VudEZvcih0aGlzKTsKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjaWYg
RU5BQkxFKERGR19KSVQpCisgICAgY2FzZSBKSVRDb2RlOjpERkdKSVQ6CisgICAgY2FzZSBKSVRD
b2RlOjpGVExKSVQ6CisgICAgICAgIHJldHVybiBqaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5mcmFt
ZVJlZ2lzdGVyQ291bnQ7CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisgICAgICAgIAorICAg
IGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KK30KKwogc2l6ZV90IENvZGVCbG9jazo6cHJlZGljdGVkTWFjaGlu
ZUNvZGVTaXplKCkKIHsKICAgICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGZyb20gQ29kZUJsb2Nr
OjpDb2RlQmxvY2sgYmVmb3JlIGVpdGhlciBtX3ZtIG9yIHRoZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC04OTcsNiArODk3LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJ
TEUpCiAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxlcygpOwogI2VuZGlmCisgICAgCisgICAgdW5z
aWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7CiAKICAgICAvLyBGSVhNRTogTWFrZSB0aGVzZSBy
ZW1haW5pbmcgbWVtYmVycyBwcml2YXRlLgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbW1vbkRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbW1vbkRhdGEuaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDgg
QEAgcHVibGljOgogICAgIENvbW1vbkRhdGEoKQogICAgICAgICA6IGlzU3RpbGxWYWxpZCh0cnVl
KQogICAgICAgICAsIG1hY2hpbmVDYXB0dXJlU3RhcnQoc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+
OjptYXgoKSkKKyAgICAgICAgLCBmcmFtZVJlZ2lzdGVyQ291bnQoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpKQorICAgICAgICAsIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4
aXQoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQogICAgIHsgfQogICAgIAog
ICAgIHZvaWQgbm90aWZ5Q29tcGlsaW5nU3RydWN0dXJlVHJhbnNpdGlvbihQbGFuJiwgQ29kZUJs
b2NrKiwgTm9kZSopOwpAQCAtODIsNiArODQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2hyaW5r
VG9GaXQoKTsKICAgICAKICAgICBib29sIGludmFsaWRhdGUoKTsgLy8gUmV0dXJucyB0cnVlIGlm
IHdlIGRpZCBpbnZhbGlkYXRlLCBvciBmYWxzZSBpZiB0aGUgY29kZSBibG9jayB3YXMgYWxyZWFk
eSBpbnZhbGlkYXRlZC4KKyAgICAKKyAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRG
b3JFeGVjdXRpb25BbmRFeGl0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Om1h
eChmcmFtZVJlZ2lzdGVyQ291bnQsIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQpOworICAg
IH0KIAogICAgIE93blB0cjxJbmxpbmVDYWxsRnJhbWVTZXQ+IGlubGluZUNhbGxGcmFtZXM7CiAg
ICAgVmVjdG9yPENvZGVPcmlnaW4sIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBjb2RlT3JpZ2lu
czsKQEAgLTEwMCw2ICsxMDcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgaW50IG1hY2hpbmVDYXB0
dXJlU3RhcnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dBcmd1bWVudFtdPiBzbG93QXJndW1l
bnRzOworICAgIAorICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudDsKKyAgICB1bnNpZ25l
ZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlz
aW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiREZHVmFyaWFibGVBY2Nl
c3NEYXRhRHVtcC5oIgogI2luY2x1ZGUgIkZ1bGxCeXRlY29kZUxpdmVuZXNzLmgiCiAjaW5jbHVk
ZSAiRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIgorI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUg
Ik9wZXJhbmRzSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvQ29tbWFQcmludGVyLmg+CkBAIC02OTgsNyArNjk5LDI5IEBAIGJvb2wgR3JhcGg6OmlzTGl2
ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2kKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSAgICAK
KwordW5zaWduZWQgR3JhcGg6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCit7CisgICAgcmV0dXJuIG1f
bmV4dE1hY2hpbmVMb2NhbCArIG1fcGFyYW1ldGVyU2xvdHM7Cit9CisKK3Vuc2lnbmVkIEdyYXBo
OjpyZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCkKK3sKKyAgICB1bnNpZ25lZCBjb3VudCA9
IEpJVDo6ZnJhbWVSZWdpc3RlckNvdW50Rm9yKG1fcHJvZmlsZWRCbG9jayk7CisgICAgZm9yIChJ
bmxpbmVDYWxsRnJhbWVTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lubGluZUNhbGxGcmFtZXMtPmJl
Z2luKCk7ICEhaXRlcjsgKytpdGVyKSB7CisgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5l
Q2FsbEZyYW1lID0gKml0ZXI7CisgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gYmFzZWxp
bmVDb2RlQmxvY2tGb3JJbmxpbmVDYWxsRnJhbWUoaW5saW5lQ2FsbEZyYW1lKTsKKyAgICAgICAg
dW5zaWduZWQgcmVxdWlyZWRDb3VudCA9IFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0KS50b0xvY2FsKCkgKyAxICsgSklUOjpmcmFtZVJlZ2lzdGVyQ291bnRGb3Io
Y29kZUJsb2NrKTsKKyAgICAgICAgY291bnQgPSBzdGQ6Om1heChjb3VudCwgcmVxdWlyZWRDb3Vu
dCk7CisgICAgfQorICAgIHJldHVybiBjb3VudDsKK30KKwordW5zaWduZWQgR3JhcGg6OnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKQoreworICAgIHJldHVybiBzdGQ6
Om1heChmcmFtZVJlZ2lzdGVyQ291bnQoKSwgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgp
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpAQCAtNzg3LDYgKzc4
NywxMCBAQCBwdWJsaWM6CiAgICAgRnVsbEJ5dGVjb2RlTGl2ZW5lc3MmIGxpdmVuZXNzRm9yKElu
bGluZUNhbGxGcmFtZSopOwogICAgIGJvb2wgaXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0
ZXIsIENvZGVPcmlnaW4pOwogICAgIAorICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgp
OworICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKKyAgICB1bnNp
Z25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7CisgICAgCiAg
ICAgVk0mIG1fdm07CiAgICAgUGxhbiYgbV9wbGFuOwogICAgIENvZGVCbG9jayogbV9jb2RlQmxv
Y2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNw
cAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw2ICsxNTQsOSBAQCB2b2lkIEpJVENv
bXBpbGVyOjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgZGF0YUxvZ0YoIkpJVCBjb2RlIGZv
ciAlcCBzdGFydCBhdCBbJXAsICVwKS4gU2l6ZSA9ICV6dS5cbiIsIG1fY29kZUJsb2NrLCBsaW5r
QnVmZmVyLmRlYnVnQWRkcmVzcygpLCBzdGF0aWNfY2FzdDxjaGFyKj4obGlua0J1ZmZlci5kZWJ1
Z0FkZHJlc3MoKSkgKyBsaW5rQnVmZmVyLmRlYnVnU2l6ZSgpLCBsaW5rQnVmZmVyLmRlYnVnU2l6
ZSgpKTsKICNlbmRpZgogICAgIAorICAgIG1faml0Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJD
b3VudCA9IG1fZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCk7CisgICAgbV9qaXRDb2RlLT5jb21t
b24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCA9IG1fZ3JhcGgucmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCgpOworCiAgICAgaWYgKCFtX2dyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+
aXNFbXB0eSgpKQogICAgICAgICBtX2ppdENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0g
bV9ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMucmVsZWFzZSgpOwogICAgIApAQCAtMzMxLDcgKzMz
NCw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbigpCiAgICAgLy8gc28gZW50
ZXIgYWZ0ZXIgdGhpcy4KICAgICBMYWJlbCBmcm9tQXJpdHlDaGVjayh0aGlzKTsKICAgICAvLyBQ
bGFudCBhIGNoZWNrIHRoYXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpT
U3RhY2suCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCht
X2NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lz
dGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0KCkgKiBzaXplb2Yo
UmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsK
ICAgICBKdW1wIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyht
X3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIEdQUkluZm86OnJlZ1QxKTsKICAgICAvLyBS
ZXR1cm4gaGVyZSBhZnRlciBzdGFjayBjaGVjay4KICAgICBMYWJlbCBmcm9tU3RhY2tDaGVjayA9
IGxhYmVsKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
bnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDggQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAg
Ci0gICAgT1NSRW50cnlEYXRhKiBlbnRyeSA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKS0+
b3NyRW50cnlEYXRhRm9yQnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KTsKKyAgICBKSVRDb2Rl
KiBqaXRDb2RlID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZygpOworICAgIE9TUkVudHJ5RGF0
YSogZW50cnkgPSBqaXRDb2RlLT5vc3JFbnRyeURhdGFGb3JCeXRlY29kZUluZGV4KGJ5dGVjb2Rl
SW5kZXgpOwogICAgIAogICAgIGlmICghZW50cnkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZl
cmJvc2VPU1IoKSkKQEAgLTE4MCw3ICsxODEsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhl
Y1N0YXRlKiBleGVjLCBDCiAgICAgLy8gICAgaXQgc2VlbXMgc2lsbHk6IHlvdSdkIGJlIGRpdmVy
dGluZyB0aGUgcHJvZ3JhbSB0byBlcnJvciBoYW5kbGluZyB3aGVuIGl0CiAgICAgLy8gICAgd291
bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4K
ICAgICAKLSAgICBpZiAoIXZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdp
c3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVn
aXN0ZXJzKS5vZmZzZXQoKV0pKSB7CisgICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCku
Z3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaml0Q29kZS0+
Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0
KCldKSkgewogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAg
ZGF0YUxvZ0YoIiAgICBPU1IgZmFpbGVkIGJlY2F1c2Ugc3RhY2sgZ3Jvd3RoIGZhaWxlZC5cbiIp
OwogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNyArNDYsNyBAQCBTcGVjdWxhdGl2ZUpJVDo6U3BlY3VsYXRpdmVKSVQoSklUQ29tcGlsCiAg
ICAgLCBtX2ppdChqaXQpCiAgICAgLCBtX2N1cnJlbnROb2RlKDApCiAgICAgLCBtX2luZGV4SW5C
bG9jaygwKQotICAgICwgbV9nZW5lcmF0aW9uSW5mbyhtX2ppdC5jb2RlQmxvY2soKS0+bV9udW1D
YWxsZWVSZWdpc3RlcnMpCisgICAgLCBtX2dlbmVyYXRpb25JbmZvKG1faml0LmdyYXBoKCkuZnJh
bWVSZWdpc3RlckNvdW50KCkpCiAgICAgLCBtX3N0YXRlKG1faml0LmdyYXBoKCkpCiAgICAgLCBt
X2ludGVycHJldGVyKG1faml0LmdyYXBoKCksIG1fc3RhdGUpCiAgICAgLCBtX3N0cmVhbSgmaml0
LmppdENvZGUoKS0+dmFyaWFibGVFdmVudFN0cmVhbSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVmlydHVhbFJlZ2lzdGVyQWxsb2NhdGlvblBoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRp
b25QaGFzZS5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmlydHVhbFJlZ2lzdGVyQWxsb2NhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE5LDI4ICsxMTksNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIHRvIGZpZ3VyZSBvdXQgd2hl
cmUgdG8gcHV0IHRoZSBwYXJhbWV0ZXJzLgogICAgICAgICBtX2dyYXBoLm1fbmV4dE1hY2hpbmVM
b2NhbCA9IHNjb3JlQm9hcmQuaGlnaFdhdGVybWFyaygpOwogCi0gICAgICAgIC8vICdtX251bUNh
bGxlZVJlZ2lzdGVycycgaXMgdGhlIG51bWJlciBvZiBsb2NhbHMgYW5kIHRlbXBvcmFyaWVzIGFs
bG9jYXRlZAotICAgICAgICAvLyBmb3IgdGhlIGZ1bmN0aW9uIChhbmQgY2hlY2tlZCBmb3Igb24g
ZW50cnkpLiBTaW5jZSB3ZSBwZXJmb3JtIGEgbmV3IGFuZAotICAgICAgICAvLyBkaWZmZXJlbnQg
YWxsb2NhdGlvbiBvZiB0ZW1wb3JhcmllcywgbW9yZSByZWdpc3RlcnMgbWF5IG5vdyBiZSByZXF1
aXJlZC4KLSAgICAgICAgLy8gVGhpcyBhbHNvIGFjY291bnRzIGZvciB0aGUgbnVtYmVyIG9mIHRl
bXBvcmFyaWVzIHRoYXQgbWF5IGJlIG5lZWRlZCBpZiB3ZQotICAgICAgICAvLyBPU1IgZXhpdCwg
ZHVlIHRvIGlubGluaW5nLiBIZW5jZSB0aGlzIGNvbXB1dGVzIHRoZSBudW1iZXIgb2YgdGVtcG9y
YXJpZXMKLSAgICAgICAgLy8gdGhhdCBjb3VsZCBiZSB1c2VkIGJ5IHRoaXMgY29kZSBibG9jayBl
dmVuIGlmIGl0IGV4aXRzOyBpdCBtYXkgYmUgbW9yZQotICAgICAgICAvLyB0aGFuIHdoYXQgdGhp
cyBjb2RlIGJsb2NrIG5lZWRzIGlmIGl0IG5ldmVyIGV4aXRzLgotICAgICAgICB1bnNpZ25lZCBj
YWxsZWVSZWdpc3RlcnMgPSBzY29yZUJvYXJkLmhpZ2hXYXRlcm1hcmsoKSArIG1fZ3JhcGgubV9w
YXJhbWV0ZXJTbG90czsKLSAgICAgICAgZm9yIChJbmxpbmVDYWxsRnJhbWVTZXQ6Oml0ZXJhdG9y
IGl0ZXIgPSBtX2dyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+YmVnaW4oKTsgISFpdGVyOyArK2l0
ZXIpIHsKLSAgICAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gKml0
ZXI7Ci0gICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGJhc2VsaW5lQ29kZUJsb2Nr
Rm9ySW5saW5lQ2FsbEZyYW1lKGlubGluZUNhbGxGcmFtZSk7Ci0gICAgICAgICAgICB1bnNpZ25l
ZCByZXF1aXJlZENhbGxlZVJlZ2lzdGVycyA9IFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0KS50b0xvY2FsKCkgKyAxICsgY29kZUJsb2NrLT5tX251bUNhbGxlZVJl
Z2lzdGVyczsKLSAgICAgICAgICAgIGlmIChyZXF1aXJlZENhbGxlZVJlZ2lzdGVycyA+IGNhbGxl
ZVJlZ2lzdGVycykKLSAgICAgICAgICAgICAgICBjYWxsZWVSZWdpc3RlcnMgPSByZXF1aXJlZENh
bGxlZVJlZ2lzdGVyczsKLSAgICAgICAgfQotICAgICAgICBjYWxsZWVSZWdpc3RlcnMgPSBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgY2FsbGVlUmVn
aXN0ZXJzKTsKLSAgICAgICAgaWYgKCh1bnNpZ25lZCljb2RlQmxvY2soKS0+bV9udW1DYWxsZWVS
ZWdpc3RlcnMgPCBjYWxsZWVSZWdpc3RlcnMpCi0gICAgICAgICAgICBjb2RlQmxvY2soKS0+bV9u
dW1DYWxsZWVSZWdpc3RlcnMgPSBjYWxsZWVSZWdpc3RlcnM7Ci0jaWYgREZHX0VOQUJMRShERUJV
R19WRVJCT1NFKQotICAgICAgICBkYXRhTG9nRigiTnVtIGNhbGxlZSByZWdpc3RlcnM6ICV1XG4i
LCBjYWxsZWVSZWdpc3RlcnMpOwotI2VuZGlmCi0gICAgICAgIAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCShy
ZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw5IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUp
CiAgICAgLy8gTExWTSB3aWxsIGNyZWF0ZSBpdHMgb3duIGp1bXAgdGFibGVzIGFzIG5lZWRlZC4K
ICAgICBjb2RlQmxvY2stPmNsZWFyU3dpdGNoSnVtcFRhYmxlcygpOwogICAgIAorICAgIHN0YXRl
LmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSBzdGF0ZS5ncmFwaC5mcmFtZVJl
Z2lzdGVyQ291bnQoKTsKKyAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCA9IHN0YXRlLmdyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQo
KTsKKyAgICAKICAgICBpZiAoIXN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0
eSgpKQogICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0
ZDo6bW92ZShzdGF0ZS5ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMpOwogICAgIApAQCAtODAsNyAr
ODMsNyBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAgICAgICAvLyBQbGFudCBhIGNoZWNr
IHRoYXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCiAgICAg
ICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYy
OTEKICAgICAgICAgaml0LmFkZFB0cigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdp
c3RlcnMpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksCisgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGF0ZS5qaXRDb2Rl
LT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCkub2Zmc2V0KCkgKiBzaXplb2Yo
UmVnaXN0ZXIpKSwKICAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjpyZWdUMSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBzdGFja0NoZWNrID0gaml0
LmJyYW5jaFB0cigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWJvdmUsCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNp
b24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MDUsNyArMjQwNSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIAogICAgICAgICBMVmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5hZGQoCiAgICAgICAgICAg
ICBtX2NhbGxGcmFtZSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihSZWdp
c3RlcikgKiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2soKS0+bV9udW1DYWxsZWVS
ZWdpc3RlcnMpLm9mZnNldCgpKSk7CisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzaXpl
b2YoUmVnaXN0ZXIpICogdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5mcmFtZVJlZ2lz
dGVyQ291bnQoKSkub2Zmc2V0KCkpKTsKICAgICAgICAgCiAgICAgICAgIG1fb3V0LnN0b3JlMzIo
CiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNB
cmd1bWVudCksCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNw
cAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
bnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDEwICs3OCwxMCBAQCB2b2lkKiBwcmVwYXJl
T1NSRW50cnkoCiAgICAgZm9yIChpbnQgbG9jYWwgPSB2YWx1ZXMubnVtYmVyT2ZMb2NhbHMoKTsg
bG9jYWwtLTspCiAgICAgICAgIHNjcmF0Y2hbbG9jYWxdID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVl
cy5sb2NhbChsb2NhbCkpOwogICAgIAotICAgIGludCBzdGFja0ZyYW1lU2l6ZSA9IGVudHJ5Q29k
ZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKKyAgICBpbnQgc3RhY2tGcmFtZVNpemUgPSBl
bnRyeUNvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCk7CiAgICAgaWYgKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3Rl
cnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGFja0ZyYW1lU2l6ZSkub2Zmc2V0KCldKSkg
ewogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQotICAgICAgICAgICAgZGF0YUxv
ZygiICAgIE9TUiBmYWlsZWQgYmNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsKKyAgICAg
ICAgICAgIGRhdGFMb2coIiAgICBPU1IgZmFpbGVkIGJlY2F1c2Ugc3RhY2sgZ3Jvd3RoIGZhaWxl
ZC5cbiIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTU5
NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBSZWdpc3RlciogQ2FsbEZyYW1lOjpm
cmFtZUV4dGVudEludGVybmFsCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlzLT5j
b2RlQmxvY2soKTsKICAgICBBU1NFUlQoY29kZUJsb2NrKTsKLSAgICByZXR1cm4gcmVnaXN0ZXJz
KCkgKyB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0
ZXJzKS5vZmZzZXQoKTsKKyAgICByZXR1cm4gcmVnaXN0ZXJzKCkgKyB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKIH0KIAog
SlNHbG9iYWxPYmplY3QqIENhbGxGcmFtZTo6dm1FbnRyeUdsb2JhbE9iamVjdCgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMu
aAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0pTU3RhY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgaW5saW5l
IENhbGxGcmFtZSogSlNTdGFjazo6cHVzaEZyYW1lKENhbAogCiAgICAgUmVnaXN0ZXIqIG5ld0Vu
ZCA9IG5ld0NhbGxGcmFtZVNsb3Q7CiAgICAgaWYgKCEhY29kZUJsb2NrKQotICAgICAgICBuZXdF
bmQgKz0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lz
dGVycykub2Zmc2V0KCk7CisgICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKIAogICAgIC8vIEVu
c3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0byBwdXNoIHRoZSBu
ZXcgZnJhbWU6CiAgICAgaWYgKCFncm93KG5ld0VuZCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCShyZXZpc2lvbiAxNTk3MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Nyw3ICs1NjcsNyBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgICAgIH0KICNlbmRpZgogCi0gICAgICAg
IGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9jb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxs
RnJhbWVSZWdpc3RlciwgcmVnVDEpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihtX2NvZGVCbG9jaykpLm9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CiAg
ICAgICAgIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3Zt
LT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDYgKzI0MywxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENvZGVCbG9jayogY2Fs
bGVlQ29kZUJsb2NrLCBDb2RlUHRyLCBDYWxsTGlua0luZm8qLCBWTSosIENvZGVTcGVjaWFsaXph
dGlvbktpbmQpOwogICAgICAgICBzdGF0aWMgdm9pZCBsaW5rU2xvd0NhbGwoQ29kZUJsb2NrKiBj
YWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyopOworICAgICAgICAKKyAgICAgICAgc3RhdGlj
IHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnM7CisgICAgICAgIH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpJVChWTSosIENvZGVCbG9j
ayogPSAwKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFCiAKICAgICBKU1N0YWNrJiBzdGFjayA9IHZt
LT5pbnRlcnByZXRlci0+c3RhY2soKTsKIAotICAgIGlmIChVTkxJS0VMWSghc3RhY2suZ3Jvdygm
ZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5tX251
bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSkpCisgICAgaWYgKFVOTElLRUxZKCFzdGFjay5n
cm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2st
PmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKV0pKSkKICAgICAgICAgdm0tPnRocm93RXhj
ZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUp
KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2lu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50
cnlwb2ludC5jcHAJKHJldmlzaW9uIDE1OTcwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludEVudHJ5cG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDEx
IEBAIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY28KICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCit1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRG
b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnM7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5k
aWYgLy8gRU5BQkxFKExMSU5UKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RW50cnlwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludEVudHJ5cG9pbnQuaAkocmV2aXNpb24gMTU5NzA4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0
MSw4IEBAIG5hbWVzcGFjZSBMTEludCB7CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYsIENvZGVC
bG9jayopOwogCit1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CisK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKExMSU5UKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>