<?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>125599</bug_id>
          
          <creation_ts>2013-12-11 14:05:35 -0800</creation_ts>
          <short_desc>CStack Branch: enable use of DFG for simple JavaScript</short_desc>
          <delta_ts>2014-01-13 18:45:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>958892</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-12-11 14:05:35 -0800</bug_when>
    <thetext>The entry and exit sequences as well as emitCall() need to be changed to work on the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958993</commentid>
    <comment_count>1</comment_count>
      <attachid>219022</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-12-11 17:57:02 -0800</bug_when>
    <thetext>Created attachment 219022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959060</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-12-11 22:37:35 -0800</bug_when>
    <thetext>Landed in r160468 on the jsCStack branch: &lt;http://trac.webkit.org/160468&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967610</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-01-13 18:45:38 -0800</bug_when>
    <thetext>Review status updated in r161938: &lt;http://trac.webkit.org/r161938&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219022</attachid>
            <date>2013-12-11 17:57:02 -0800</date>
            <delta_ts>2013-12-11 23:12:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>125599.patch</filename>
            <type>text/plain</type>
            <size>21304</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCShyZXZpc2lvbiAxNjA0Njcp
DQorKysgL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9KU1N0YWNrLmNwcAkocmV2aXNpb24gMTYwNDY4KQ0KQEAgLTEwNiw0ICsxMDYsNSBAQA0KIHZv
aWQgSlNTdGFjazo6c2FuaXRpemVTdGFjaygpDQogew0KKyNpZiAwIC8vIEZJWE1FOiBDU3RhY2sg
LSBUbyBiZSBhZGRyZXNzZWQgbGF0ZXINCiAgICAgQVNTRVJUKGdldFRvcE9mU3RhY2soKSA8PSBn
ZXRCYXNlT2ZTdGFjaygpKTsNCiAgICAgDQpAQCAtMTE1LDQgKzExNiw1IEBADQogICAgIA0KICAg
ICBtX2xhc3RTdGFja1RvcCA9IGdldFRvcE9mU3RhY2soKTsNCisjZW5kaWYNCiB9DQogDQpJbmRl
eDogL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9K
U1N0YWNrLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAkocmV2aXNpb24gMTYwNDY3KQ0KKysrIC9i
cmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFj
ay5oCShyZXZpc2lvbiAxNjA0NjgpDQpAQCAtNjIsNCArNjIsNSBAQA0KICAgICBwdWJsaWM6DQog
ICAgICAgICBlbnVtIENhbGxGcmFtZUhlYWRlckVudHJ5IHsNCisgICAgICAgICAgICBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSA9IDAsDQogICAgICAgICAgICAgQ29kZUJsb2NrID0gc2l6ZW9mKENhbGxl
ckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwNCiAgICAgICAgICAgICBTY29wZUNoYWlu
LA0KSW5kZXg6IC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gL2JyYW5jaGVzL2pzQ1N0
YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJ
KHJldmlzaW9uIDE2MDQ2NykNCisrKyAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYwNDY4KQ0K
QEAgLTQ0LDUgKzQ0LDUgQEANCiAgICAgICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJh
bWV0ZXJzOw0KICAgICB9DQotICAgIC8vICYmJiYgRklYTUU6IEFsaWduIHRoZSBjb21iaW5hdGlv
biBvZiBzZW50aW5lbCBmcmFtZSArIGNhbGxlZSBmcmFtZQ0KKyAgICAvLyBGSVhNRTogQ1N0YWNr
IC0gQWxpZ24gdGhlIGNvbWJpbmF0aW9uIG9mIHNlbnRpbmVsIGZyYW1lICsgY2FsbGVlIGZyYW1l
DQogICAgIC8vIE1heWJlIHRoaXMgc2hvdWxkIGJlIGluIGNhbGxUb0phdmFTY3JpcHQuDQogICAg
IGlmICghKHBhZGRlZEFyZ3NDb3VudCAmIDEpKQ0KSW5kZXg6IC9icmFuY2hlcy9qc0NTdGFjay9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20NCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNjA0NjcpDQorKysgL2JyYW5jaGVz
L2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbQkocmV2aXNpb24gMTYwNDY4KQ0KQEAgLTM1NSw2ICszNTUsNyBAQA0KICAgICAgICAgY0Nh
bGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQ0KICAgICAgICAgYnRweiB0MCwgLnJlY292ZXINCi0g
ICAgICAgIHBvcCBjZnIgIyBwb3AgdGhlIGNhbGxlckZyYW1lIHNpbmNlIHdlIHdpbGwganVtcCB0
byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8gc2F2ZSBpdA0KLSAgICAgICAgam1wIHQwDQorICAg
ICAgICAjIEZJWE1FOiBUdXJuIG9mZiBPU1IgZW50cnkNCisgICAgICAgICMgcG9wIGNmciAjIHBv
cCB0aGUgY2FsbGVyRnJhbWUgc2luY2Ugd2Ugd2lsbCBqdW1wIHRvIGEgZnVuY3Rpb24gdGhhdCB3
YW50cyB0byBzYXZlIGl0DQorICAgICAgICAjIGptcCB0MA0KICAgICAucmVjb3ZlcjoNCiAgICAg
ICAgIGNvZGVCbG9ja0dldHRlcih0MSkNCkluZGV4OiAvYnJhbmNoZXMvanNDU3RhY2svU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20NCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDE2MDQ2NykNCisrKyAvYnJhbmNoZXMv
anNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20JKHJldmlzaW9uIDE2MDQ2OCkNCkBAIC0zNjYsNSArMzY2LDYgQEANCiAgICAgICAgICAg
ICBtb3ZlIHQxLCBjZnINCiAgICAgICAgICAgICBidHB6IHQwLCAucmVjb3Zlcg0KLSAgICAgICAg
ICAgIGptcCB0MA0KKyAgICAgICAgICAgICMgRklYTUU6IENTdGFjayAtIFR1cm4gT1NSIGVudHJ5
IGJhY2sgb24NCisgICAgICAgICAgICAjIGptcCB0MA0KICAgICAgICAgLnJlY292ZXI6DQogICAg
ICAgICAgICAgbW92ZSB0MywgUEINCkluZGV4OiAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIC9icmFuY2hlcy9qc0NTdGFj
ay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjA0NjcpDQorKysg
L2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE2MDQ2OCkNCkBAIC0xLDIgKzEsNTkgQEANCisyMDEzLTEyLTExICBNaWNoYWVsIFNhYm9m
ZiAgPG1zYWJvZmZAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQ1N0YWNrIEJyYW5jaDogZW5hYmxl
IHVzZSBvZiBERkcgZm9yIHNpbXBsZSBKYXZhU2NyaXB0DQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTk5DQorDQorICAgICAgICBOb3QgeWV0IHJl
dmlld2VkLg0KKw0KKyAgICAgICAgQWRkZWQgY29kZSB0byBzZXQgdXAgdGhlIHN0YWNrIHBvaW50
ZXIgb24gZW50cnkgYW5kIGZvciBjYWxsIGZvciB0aGUgREZHLiAgQ2hhbmdlZCB0aGUgDQorICAg
ICAgICBTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWUqKCkgaGVscGVycyB0byB1c2UgdGhlIHN0
YWNrIHBvaW50ZXIgaW5zdGVhZCBvZiB0aGUgY2FsbCBmcmFtZQ0KKyAgICAgICAgcmVnaXN0ZXIg
dG8gYnVpbGQgdGhlIGNhbGxlZSBmcmFtZSByZWxhdGl2ZSB0byB0aGUgc3RhY2suDQorDQorICAg
ICAgICBEaXNhYmxlZCBKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKCkuICBSZW1vdmVkIHNvbWUgY2Fs
bHMgdG8gY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKSB1c2VkDQorICAgICAgICBmb3IgZWFy
bGllciBkZWJ1Z2dpbmcuDQorDQorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6DQorICAgICAg
ICAoSlNDOjpERkc6OkdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQpOg0KKyAgICAgICAgKiBkZmcv
REZHSklUQ29tcGlsZXIuY3BwOg0KKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29t
cGlsZUVudHJ5KToNCisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGUpOg0K
KyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKToNCisgICAg
ICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoNCisgICAgICAgIChKU0M6OkRGRzo6cHJlcGFyZU9T
UkVudHJ5KToNCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6DQorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZU9mZnNldCk6DQorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZVNsb3QpOg0KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRTbG90KToNCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lVGFnU2xvdCk6DQorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZVBheWxvYWRTbG90KToNCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCk6DQor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVBcmd1bWVudFBheWxvYWRT
bG90KToNCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lQ2Fs
bGVyRnJhbWUpOg0KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6DQor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbCk6DQorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoNCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmVtaXRDYWxsKToNCisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6DQorICAg
ICAgICAoSlNDOjpGVEw6Om9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOg0KKyAgICAg
ICAgKEpTQzo6RlRMOjpzbG93UGF0aENhbGxUaHVua0dlbmVyYXRvcik6DQorICAgICAgICAqIGlu
dGVycHJldGVyL0pTU3RhY2suY3BwOg0KKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2FuaXRpemVT
dGFjayk6DQorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2suaDoNCisgICAgICAgICogaW50
ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOg0KKyAgICAgICAgKEpTQzo6UHJvdG9DYWxsRnJh
bWU6OmluaXQpOg0KKyAgICAgICAgKiBqaXQvSklULmNwcDoNCisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2spOg0KKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRl
Q29tcGlsZSk6DQorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoNCisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9yZXQpOg0KKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VudGVyKToN
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbG9vcF9oaW50KToNCisgICAgICAgICog
aml0L1JlcGF0Y2guY3BwOg0KKyAgICAgICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsKToNCisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6DQorICAgICAgICAoSlNDOjpzbG93UGF0aEZv
cik6DQorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOg0KKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOg0KKw0KIDIwMTMtMTItMDkgIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+DQogDQpJbmRleDogL2JyYW5jaGVzL2pzQ1N0
YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5r
cy5jcHAJKHJldmlzaW9uIDE2MDQ2NykNCisrKyAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjA0NjgpDQpAQCAtNzUs
NSArNzUsNSBAQA0KICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QxKTsNCiAgICAgaml0LnBvcChH
UFJJbmZvOjpyZWdUMSk7DQotICAgIC8vICYmJiYmIEZJWE1FOiBOZWVkIHRvIGFkZHJlc3MgdGhl
IHJpZ2h0IHdheSB0byBhZGp1c3QgQ0ZSIGFuZCBTUA0KKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0g
TmVlZCB0byBhZGRyZXNzIHRoZSByaWdodCB3YXkgdG8gYWRqdXN0IENGUiBhbmQgU1ANCiAgICAg
aml0LnBvcChNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOw0KICAgICANCkBA
IC04Myw1ICs4Myw1IEBADQogICAgIA0KICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4oR1BSSW5mbzo6cmVnVDApOw0KLSAgICAvLyAmJiYmIFRocm91Z2ggaGVyZQ0KKyAg
ICAvLyBGSVhNRTogQ1N0YWNrIC0gVGhyb3VnaCBoZXJlDQogDQogICAgIHJlc3RvcmVBbGxSZWdp
c3RlcnMoaml0LCBidWZmZXIpOw0KQEAgLTEyMiw1ICsxMjIsNSBAQA0KICAgICB9DQogICAgIA0K
LSAgICAvLyAmJiYmIEZJWE1FOiBOZWVkIHRvIGRvIHNvZW1ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1
bmN0aW9uUHJvbG9ndWUoKTsNCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29l
bWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOw0KICAgICBqaXQucHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOw0KICAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7DQpAQCAt
MTI4LDUgKzEyOCw1IEBADQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgp
Ow0KIA0KLSAgICAvLyAmJiYmIEZJWE1FOiBOZWVkIHRvIGRvIHNvbWV0aGluZyBsaWtlIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOw0KKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0gTmVlZCB0byBk
byBzb21ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsNCiAgICAgaml0Lmxv
YWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSKTsNCiAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7DQpJbmRleDogL2JyYW5jaGVzL2pzQ1N0YWNrL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHANCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJh
bmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2
aXNpb24gMTYwNDY3KQ0KKysrIC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjA0NjgpDQpAQCAtMTM4Niw1ICsxMzg2LDUg
QEANCiAgICAgc3R1YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlu
a0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpu
b25BcmdHUFIyKTsNCiAgICAgDQotICAgIC8vICYmJiYgRklYTUU6IFRoaW5rIHRoZSBmb2xsb3dp
bmcgaW5zdHJ1Y3Rpb24gc2hvdWxkIGJlIGEgcG9rZQ0KKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0g
VGhpbmsgdGhlIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKCkgaW5zdHJ1Y3Rpb24g
c2hvdWxkIGJlIGEgcG9rZQ0KICAgICBzdHViSml0LmJyZWFrcG9pbnQoKTsNCiAgICAgc3R1Ykpp
dC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIyKTsN
CkluZGV4OiAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkocmV2aXNpb24gMTYwNDY3
KQ0KKysrIC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDE2MDQ2OCkNCkBAIC05NSw1ICs5NSw1IEBADQogICAg
IC8vIDMpIFRoZSBmdW5jdGlvbiB0byBjYWxsLg0KICAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24o
aml0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7DQotICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOw0KKyAgICBqaXQucG9wKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsNCiAgICAg
aml0Lmp1bXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOw0KIH0NCkluZGV4OiAvYnJhbmNoZXMv
anNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCShyZXZpc2lvbiAxNjA0NjcpDQorKysgL2JyYW5jaGVzL2pzQ1N0YWNrL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE2MDQ2OCkN
CkBAIC0yNjMsNSArMjYzLDUgQEANCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7DQogDQotICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KCk7IC8vICYmJiYNCisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsNCiAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsNCiAgICAgcmV0KCk7DQpA
QCAtNzc5LDUgKzc3OSw0IEBADQogdm9pZCBKSVQ6OmVtaXRfb3BfZW50ZXIoSW5zdHJ1Y3Rpb24q
KQ0KIHsNCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsgLy8gJiYmJg0KICAgICBl
bWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpOw0KICAgICANCkBAIC0xMTI0LDcgKzExMjMsOSBA
QA0KICAgICAgICAgDQogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBt
X2J5dGVjb2RlT2Zmc2V0KTsNCisjaWYgMCAvLyBGSVhNRTogQ1N0YWNrIC0gbmVlZCB0byBmaXgg
T1NSIGVudHJ5DQogICAgICAgICBKdW1wIG5vT3B0aW1pemVkRW50cnkgPSBicmFuY2hUZXN0UHRy
KFplcm8sIHJldHVyblZhbHVlR1BSKTsNCiAgICAgICAgIGp1bXAocmV0dXJuVmFsdWVHUFIpOw0K
ICAgICAgICAgbm9PcHRpbWl6ZWRFbnRyeS5saW5rKHRoaXMpOw0KKyNlbmRpZg0KIA0KICAgICAg
ICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBPUENPREVfTEVOR1RIKG9wX2xvb3BfaGludCkp
Ow0KSW5kZXg6IC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxNjA0NjcpDQorKysgL2JyYW5jaGVzL2pzQ1N0
YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkocmV2aXNpb24gMTYwNDY4KQ0K
QEAgLTEwMCw3ICsxMDAsOSBAQA0KICAgICBBU1NFUlQoIW1fYnl0ZWNvZGVPZmZzZXQpOw0KICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsNCisj
aWYgMCAvLyBGSVhNRTogQ1N0YWNrIC0gbmVlZCB0byBmaXggT1NSIGVudHJ5DQogICAgIHNraXBP
cHRpbWl6ZS5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZXR1cm5WYWx1ZUdQUikpOw0KICAg
ICBqdW1wKHJldHVyblZhbHVlR1BSKTsNCiAgICAgc2tpcE9wdGltaXplLmxpbmsodGhpcyk7DQor
I2VuZGlmDQogfQ0KICNlbmRpZg0KQEAgLTU2MCw1ICs1NjIsNSBAQA0KICAgICAgICAgc3RhY2tD
aGVjay5saW5rKHRoaXMpOw0KICAgICAgICAgbV9ieXRlY29kZU9mZnNldCA9IDA7DQotICAgICAg
ICAvLyAmJiYmIFRoaXMgbWF5IG5lZWQgdG8gaGF2ZSBzb21lIHN0YWNrIHNwYWNlIGFsbG9jYXRl
ZCB0byBtYWtlIHRoZSBjYWxsDQorICAgICAgICAvLyBGSVhNRTogQ1N0YWNrIC0gVGhpcyBtYXkg
bmVlZCB0byBoYXZlIHNvbWUgc3RhY2sgc3BhY2UgYWxsb2NhdGVkIHRvIG1ha2UgdGhlIGNhbGwN
CiAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihv
cGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7DQogI2lmbmRlZiBOREVCVUcNCkluZGV4
OiAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRy
eS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAJKHJldmlzaW9uIDE2MDQ2NykNCisrKyAvYnJhbmNo
ZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAJKHJl
dmlzaW9uIDE2MDQ2OCkNCkBAIC0yMTQsNSArMjE0LDYgQEANCiAgICAgLy8gNSkgQ2xlYXIgdGhv
c2UgcGFydHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVzaW5nLiBUaGlz
IGhlbHBzIEdDIG9uIHNvbWUNCiAgICAgLy8gICAgcHJvZ3JhbXMgYnkgZWxpbWluYXRpbmcgc29t
ZSBzdGFsZSBwb2ludGVyIHBhdGhvbG9naWVzLg0KLSAgICANCisNCisjaWYgMCAvLyBGSVhNRTog
Q1N0YWNrIC0gVGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgZW5hYmxlZA0K
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmcmFtZVNpemU7IGktLTspIHsNCiAgICAgICAgIGlmIChl
bnRyeS0+bV9tYWNoaW5lU3RhY2tVc2VkLmdldChpKSkNCkBAIC0yMjAsNCArMjIxLDUgQEANCiAg
ICAgICAgIHJlZ2lzdGVyc1t2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKS5vZmZzZXQoKV0gPSBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsNCiAgICAgfQ0KKyNlbmRpZg0KICAgICANCiAgICAg
Ly8gNikgRml4IHRoZSBjYWxsIGZyYW1lLg0KSW5kZXg6IC9icmFuY2hlcy9qc0NTdGFjay9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE2MDQ2NykNCisrKyAvYnJhbmNoZXMvanNDU3Rh
Y2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2
aXNpb24gMTYwNDY4KQ0KQEAgLTY4OCw3ICs2ODgsNiBAQA0KICAgICBpbnQgbnVtQXJncyA9IG51
bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsNCiAgICAgDQotICAgIG1faml0LnN0b3Jl
MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXls
b2FkU2xvdChudW1BcmdzLCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7DQotICAgIG1faml0LnN0
b3JlNjQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUo
bnVtQXJncykpOw0KLSAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90
KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOw0KKyAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNT
dGFjazo6QXJndW1lbnRDb3VudCkpOw0KKyAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2Fs
bGVlRnJhbWVTbG90KEpTU3RhY2s6OkNhbGxlZSkpOw0KICAgICANCiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1QYXNzZWRBcmdzOyBpKyspIHsNCkBAIC02OTgsNSArNjk3LDUgQEANCiAgICAg
ICAgIHVzZShhcmdFZGdlKTsNCiAgICAgICAgIA0KLSAgICAgICAgbV9qaXQuc3RvcmU2NChhcmdH
UFIsIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsN
CisgICAgICAgIG1faml0LnN0b3JlNjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3QoaSArIGR1
bW15VGhpc0FyZ3VtZW50KSk7DQogICAgIH0NCiANCkBAIC03MTEsMTYgKzcxMCwxOSBAQA0KICAg
ICBtX2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUtPmNvZGVPcmlnaW4pOw0KICAgICANCi0g
ICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihjYWxsZWVGcmFtZU9mZnNldChudW1BcmdzKSks
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsNCi0gICAgDQogICAgIHNsb3dQYXRoLmFwcGVu
ZChtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxs
ZWVHUFIsIHRhcmdldFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApKSk7
DQogDQogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BS
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZXN1bHRHUFIpOw0KLSAg
ICBtX2ppdC5zdG9yZTY0KHJlc3VsdEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluKSk7DQotDQorICAgIG1faml0LnN0b3JlNjQocmVz
dWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOw0KKw0KKyAgICAv
LyBGSVhNRTogQ1N0YWNrIC0gcmVtb3ZlIHRoZSBhZGQvc3ViIDE2IGJlZm9yZSBhbmQgYWZ0ZXIg
Y2FsbC4NCisgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMigxNiksIE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7DQorICAgIA0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBm
YXN0Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7DQotICAgIA0KKw0KICAgICBKSVRDb21waWxlcjo6
SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOw0KICAgICANCiAgICAgc2xvd1BhdGgubGluaygmbV9q
aXQpOw0KKyAgICANCisgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMigxNiksIE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7DQogICAgIA0KICAgICBtX2ppdC5tb3ZlKGNh
bGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAN
CkBAIC03MjgsNCArNzMwLDYgQEANCiAgICAgDQogICAgIGRvbmUubGluaygmbV9qaXQpOw0KKyAg
ICANCisgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMigtMTYpLCBNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOw0KICAgICANCiAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsNCkluZGV4OiAvYnJhbmNoZXMvanNDU3RhY2svU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gMTYwNDY3KQ0KKysrIC9icmFuY2hlcy9qc0NTdGFjay9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE2MDQ2
OCkNCkBAIC03MjgsNDIgKzcyOCw0MyBAQA0KICAgICBwdHJkaWZmX3QgY2FsbGVlRnJhbWVPZmZz
ZXQoaW50IG51bUFyZ3MpDQogICAgIHsNCi0gICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCArIEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7DQor
ICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9qaXQuZ3JhcGgoKS5tX25l
eHRNYWNoaW5lTG9jYWwgLSAxICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFy
Z3MpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKTsNCiAgICAgfQ0KICAgICANCiAgICAgLy8g
QWNjZXNzIHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLg0KLSAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3QoaW50IG51bUFyZ3MsIGludCBzbG90KQ0KLSAgICB7
DQotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpICsgc2l6ZW9mKFJlZ2lzdGVy
KSAqIHNsb3QpOw0KKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3Qo
aW50IHNsb3QpDQorICAgIHsNCisgICAgICAgIEFTU0VSVChzbG90ID49IEpTU3RhY2s6OkNhbGxl
ckZyYW1lQW5kUENTaXplKTsNCisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3Rlcikg
KiAoc2xvdCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSk7DQogICAgIH0NCiANCiAg
ICAgLy8gQWNjZXNzIHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLg0KLSAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFNsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1
bWVudCkNCi0gICAgew0KLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCB2
aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkub2Zmc2V0KCkpOw0KLSAgICB9DQot
DQotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgbnVt
QXJncywgaW50IHNsb3QpDQotICAgIHsNCi0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qo
bnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnRhZykpOw0KLSAgICB9DQotDQotICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50IG51bUFyZ3MsIGludCBzbG90KQ0KLSAg
ICB7DQotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIHNsb3QpLndpdGhP
ZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXls
b2FkKSk7DQotICAgIH0NCi0NCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJn
dW1lbnRUYWdTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpDQotICAgIHsNCi0gICAgICAg
IHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQo
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsNCi0g
ICAgfQ0KLQ0KLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFBheWxv
YWRTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpDQotICAgIHsNCi0gICAgICAgIHJldHVy
biBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNU
X09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7DQotICAg
IH0NCi0NCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVDYWxsZXJGcmFt
ZShpbnQgbnVtQXJncykNCi0gICAgew0KLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChu
dW1BcmdzLCAwKS53aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSk7DQor
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgYXJndW1l
bnQpDQorICAgIHsNCisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QodmlydHVhbFJlZ2lz
dGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpKTsNCisgICAgfQ0KKw0KKyAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50IHNsb3QpDQorICAgIHsN
CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOw0KKyAgICB9DQor
DQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50
IHNsb3QpDQorICAgIHsNCisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0
aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBh
eWxvYWQpKTsNCisgICAgfQ0KKw0KKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVB
cmd1bWVudFRhZ1Nsb3QoaW50IGFyZ3VtZW50KQ0KKyAgICB7DQorICAgICAgICByZXR1cm4gY2Fs
bGVlQXJndW1lbnRTbG90KGFyZ3VtZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7DQorICAgIH0NCisNCisgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdChpbnQgYXJndW1lbnQp
DQorICAgIHsNCisgICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QoYXJndW1lbnQpLndp
dGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSk7DQorICAgIH0NCisNCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVl
RnJhbWVDYWxsZXJGcmFtZSgpDQorICAgIHsNCisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNs
b3QoMCkud2l0aE9mZnNldChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOw0KICAgICB9
DQogDQpJbmRleDogL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAxNjA0NjcpDQorKysgL2Jy
YW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShy
ZXZpc2lvbiAxNjA0NjgpDQpAQCAtNzA0LDUgKzcwNCw3IEBADQogdW5zaWduZWQgR3JhcGg6OmZy
YW1lUmVnaXN0ZXJDb3VudCgpDQogew0KLSAgICByZXR1cm4gbV9uZXh0TWFjaGluZUxvY2FsICsg
bV9wYXJhbWV0ZXJTbG90czsNCisgICAgdW5zaWduZWQgcmVzdWx0ID0gbV9uZXh0TWFjaGluZUxv
Y2FsICsgbV9wYXJhbWV0ZXJTbG90czsNCisgICAgcmVzdWx0ICs9IHJlc3VsdCAmIDE7IC8vIEFs
aWduIHRoZSByZWdpc3RlciBjb3VudA0KKyAgICByZXR1cm4gcmVzdWx0Ow0KIH0NCiANCkluZGV4
OiAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSAvYnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MDQ2NykNCisrKyAv
YnJhbmNoZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAJKHJldmlzaW9uIDE2MDQ2OCkNCkBAIC05Myw2ICs5Myw1IEBADQogew0KICAgICAvLyBU
aGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBKSVQuIEluIHRoZSBmdW5jdGlvbiBo
ZWFkZXIgd2UgbmVlZCB0bw0KLSAgICAvLyBwb3AgdGhlIHJldHVybiBhZGRyZXNzIChzaW5jZSB3
ZSBkbyBub3QgYWxsb3cgYW55IHJlY3Vyc2lvbiBvbiB0aGUgbWFjaGluZQ0KLSAgICAvLyBzdGFj
ayksIGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4NCisgICAgLy8gc2F2ZSByZXR1cm4g
YWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3VlIGFuZCBwZXJmb3JtIGEgZmFz
dCBzdGFjayBjaGVjay4NCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjI5Mg0KICAgICAvLyBXZSdsbCBuZWVkIHRvIGNvbnZlcnQgdGhlIHJl
bWFpbmluZyBjdGlfIHN0eWxlIGNhbGxzIChzcGVjaWZpY2FsbHkgdGhlIHN0YWNrDQpAQCAtMjc4
LDQgKzI3Nyw3IEBADQogICAgIGNvbXBpbGVFbnRyeSgpOw0KICAgICBtX3NwZWN1bGF0aXZlID0g
YWRvcHRQdHIobmV3IFNwZWN1bGF0aXZlSklUKCp0aGlzKSk7DQorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7DQorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLShtX2dyYXBoLmZyYW1l
UmVnaXN0ZXJDb3VudCgpIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9m
KFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7DQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7DQogICAgIGNvbXBpbGVC
b2R5KCk7DQogICAgIHNldEVuZE9mTWFpblBhdGgoKTsNCkBAIC0zMzAsNCArMzMyLDkgQEANCiAg
ICAgTGFiZWwgZnJvbVN0YWNrQ2hlY2sgPSBsYWJlbCgpOw0KIA0KKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCgpOw0KKw0KKyAgICAvLyBNb3ZlIHRoZSBzdGFjayBwb2ludGVyIGRvd24g
dG8gYWNjb21tb2RhdGUgbG9jYWxzDQorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLShtX2dyYXBo
LmZyYW1lUmVnaXN0ZXJDb3VudCgpIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICog
c2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7DQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7DQogDQogICAg
IC8vID09PSBGdW5jdGlvbiBib2R5IGNvZGUgZ2VuZXJhdGlvbiA9PT0NCkluZGV4OiAvYnJhbmNo
ZXMvanNDU3RhY2svU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIC9icmFuY2hlcy9qc0NTdGFjay9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNjA0Njcp
DQorKysgL2JyYW5jaGVzL2pzQ1N0YWNrL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE2MDQ2OCkNCkBAIC02NjAsOCArNjYwLDgg
QEANCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7
DQogDQotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1B
cmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBKU1N0YWNrOjpBcmd1bWVudENv
dW50KSk7DQotICAgIG1faml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsNCi0gICAgbV9qaXQuc3RvcmUzMihjYWxs
ZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNh
bGxlZSkpOw0KLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgY2FsbGVlRnJhbWVUYWdT
bG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOw0KKyAgICBtX2ppdC5zdG9yZTMyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3Qo
SlNTdGFjazo6QXJndW1lbnRDb3VudCkpOw0KKyAgICBtX2ppdC5zdG9yZVB0cihHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZSgpKTsNCisgICAgbV9qaXQu
c3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6
OkNhbGxlZSkpOw0KKyAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgY2FsbGVlRnJhbWVU
YWdTbG90KEpTU3RhY2s6OkNhbGxlZSkpOw0KIA0KICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51
bVBhc3NlZEFyZ3M7IGkrKykgew0KQEAgLTY3Miw2ICs2NzIsNiBAQA0KICAgICAgICAgdXNlKGFy
Z0VkZ2UpOw0KIA0KLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdHUFIsIGNhbGxlZUFyZ3Vt
ZW50VGFnU2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsNCi0gICAgICAgIG1f
aml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdChudW1B
cmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsNCisgICAgICAgIG1faml0LnN0b3JlMzIoYXJn
VGFnR1BSLCBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7DQor
ICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50UGF5bG9h
ZFNsb3QoaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7DQogICAgIH0NCiANCg==
</data>
<flag name="review"
          id="242615"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>