<?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>152925</bug_id>
          
          <creation_ts>2016-01-08 13:49:18 -0800</creation_ts>
          <short_desc>B3 needs Neg()</short_desc>
          <delta_ts>2016-01-23 09:41:42 -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>WebKit 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>150279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153995</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-08 13:49:18 -0800</bug_when>
    <thetext>Currently B3 expresses -x as 0-x.  That&apos;s wrong in case of floating point.

It&apos;s probably better if we just have a Neg opcode, and this opcode should work for both ints and floats.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154009</commentid>
    <comment_count>1</comment_count>
      <attachid>268584</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-08 14:12:29 -0800</bug_when>
    <thetext>Created attachment 268584
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154039</commentid>
    <comment_count>2</comment_count>
      <attachid>268595</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-08 15:35:42 -0800</bug_when>
    <thetext>Created attachment 268595
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154047</commentid>
    <comment_count>3</comment_count>
      <attachid>268595</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-08 16:00:01 -0800</bug_when>
    <thetext>Comment on attachment 268595
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        So, this introduces a proper Neg() opcode to B3. It&apos;s not the canonical way of saying

typo: &quot;not&quot; ==&gt; &quot;now&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154048</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-08 16:03:59 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194802</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268584</attachid>
            <date>2016-01-08 14:12:29 -0800</date>
            <delta_ts>2016-01-08 15:35:42 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13049</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMTA4Miw2ICsxMDgyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
YW5kcHNfcnIoc3JjLCBkc3QpOwogICAgIH0KIAorICAgIHZvaWQgeG9yRG91YmxlKEZQUmVnaXN0
ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci54
b3Jwc19ycihzcmMsIGRzdCk7CisgICAgfQorCisgICAgdm9pZCB4b3JGbG9hdChGUFJlZ2lzdGVy
SUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIueG9y
cHNfcnIoc3JjLCBkc3QpOworICAgIH0KKwogICAgIHZvaWQgY29udmVydEludDMyVG9Eb3VibGUo
UmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KGlzU1NFMlByZXNlbnQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
ck1hY3Jvc0FmdGVyT3B0aW1pemF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuY3BwCShyZXZpc2lv
biAxOTQ3NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvc0FmdGVy
T3B0aW1pemF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYgKzEwOCwyNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkocmVzdWx0KTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2Ug
TmVnOiB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0ludChtX3ZhbHVlLT50eXBlKCkpKQorICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAvLyBYODYgaXMgb2RkIGluIHRoYXQgaXQgcmVxdWlyZXMgdGhpcy4KKyAgICAgICAgICAgICAg
ICBpZiAoIWlzWDg2KCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgVmFsdWUqIG1hc2sgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVl
LT50eXBlKCkgPT0gRG91YmxlKQorICAgICAgICAgICAgICAgICAgICBtYXNrID0gbV9pbnNlcnRp
b25TZXQuaW5zZXJ0PENvbnN0RG91YmxlVmFsdWU+KG1faW5kZXgsIG1fb3JpZ2luLCAtMC4wKTsK
KyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQobV92YWx1ZS0+dHlwZSgpID09IEZsb2F0KTsKKyAgICAgICAgICAgICAgICAgICAgbWFzayA9
IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxDb25zdEZsb2F0VmFsdWU+KG1faW5kZXgsIG1fb3JpZ2lu
LCAtMC4wZik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVmFsdWUqIHJl
c3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAg
IG1faW5kZXgsIEJpdFhvciwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLCBtYXNrKTsKKyAg
ICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KHJlc3VsdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjEyLDEwICsxNjEyLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIFN1
YjogewotICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5pc0ludCgwKSkKLSAgICAg
ICAgICAgICAgICBhcHBlbmRVbk9wPE5lZzMyLCBOZWc2ND4obV92YWx1ZS0+Y2hpbGQoMSkpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFwcGVuZEJpbk9wPFN1YjMyLCBTdWI2
NCwgU3ViRG91YmxlLCBTdWJGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCksIG1fdmFsdWUtPmNoaWxk
KDEpKTsKKyAgICAgICAgICAgIGFwcGVuZEJpbk9wPFN1YjMyLCBTdWI2NCwgU3ViRG91YmxlLCBT
dWJGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCksIG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTmVnOiB7CisgICAgICAgICAg
ICBhcHBlbmRVbk9wPE5lZzMyLCBOZWc2NCwgTmVnYXRlRG91YmxlLCBBaXI6Ok9vcHM+KG1fdmFs
dWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xNjgy
LDcgKzE2ODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGFwcGVuZFVuT3A8Tm90MzIs
IE5vdDY0PihtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYXBwZW5kQmluT3A8WG9yMzIsIFhvcjY0LCBDb21tdXRh
dGl2ZT4oCisgICAgICAgICAgICBhcHBlbmRCaW5PcDxYb3IzMiwgWG9yNjQsIFhvckRvdWJsZSwg
WG9yRmxvYXQsIENvbW11dGF0aXZlPigKICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgw
KSwgbV92YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDE5NDc3MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MTE5LDYgKzExOSw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMK
ICAgICBjYXNlIE1vZDoKICAgICAgICAgb3V0LnByaW50KCJNb2QiKTsKICAgICAgICAgcmV0dXJu
OworICAgIGNhc2UgTmVnOgorICAgICAgICBvdXQucHJpbnQoIk5lZyIpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBDaGlsbERpdjoKICAgICAgICAgb3V0LnByaW50KCJDaGlsbERpdiIpOwog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2
aXNpb24gMTk0NzczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNzMsNiArNzMsMTEgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBE
aXYsIC8vIEFsbCBiZXRzIGFyZSBvZmYgYXMgdG8gd2hhdCB3aWxsIGhhcHBlbiB3aGVuIHlvdSBl
eGVjdXRlIHRoaXMgZm9yIC0yXjMxLy0xIGFuZCB4LzAuCiAgICAgTW9kLCAvLyBBbGwgYmV0cyBh
cmUgb2ZmIGFzIHRvIHdoYXQgd2lsbCBoYXBwZW4gd2hlbiB5b3UgZXhlY3V0ZSB0aGlzIGZvciAt
Ml4zMSUtMSBhbmQgeCUwLgogCisgICAgLy8gUG9seW1vcnBoaWMgbmVnYXRpb24uIE5vdGUgdGhh
dCB3ZSBvbmx5IG5lZWQgdGhpcyBmb3IgZmxvYXRpbmcgcG9pbnQsIHNpbmNlIGludGVnZXIgbmVn
YXRpb24KKyAgICAvLyBpcyBleGFjdGx5IGxpa2UgU3ViKDAsIHgpLiBCdXQgdGhhdCdzIG5vdCB0
cnVlIGZvciBmbG9hdGluZyBwb2ludC4gU3ViKDAsIDApIGlzIDAsIHdoaWxlCisgICAgLy8gTmVn
KDApIGlzIC0wLiBBbHNvLCB3ZSBjYW5vbmljYWxpemUgU3ViKDAsIHgpIGludG8gTmVnKHgpIGlu
IGNhc2Ugb2YgaW50ZWdlcnMuCisgICAgTmVnLAorCiAgICAgLy8gSW50ZWdlciBtYXRoLgogICAg
IENoaWxsRGl2LCAvLyBkb2Vzbid0IHRyYXAgZXZlciwgYmVoYXZlcyBsaWtlIEpTICh4L3kpfDAu
CiAgICAgQ2hpbGxNb2QsIC8vIGRvZXNuJ3QgdHJhcCBldmVyLCBiZWhhdmVzIGxpa2UgSlMgKHgl
eSl8MC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHAJKHJldmlzaW9uIDE5NDc3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Jl
ZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTMsMTkgKzIxMywzNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAv
LyBUdXJuIHRoaXM6IFN1Yih2YWx1ZSwgY29uc3RhbnQpCi0gICAgICAgICAgICAvLyBJbnRvIHRo
aXM6IEFkZCh2YWx1ZSwgLWNvbnN0YW50KQogICAgICAgICAgICAgaWYgKGlzSW50KG1fdmFsdWUt
PnR5cGUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFN1Yih2YWx1ZSwgY29u
c3RhbnQpCisgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiBBZGQodmFsdWUsIC1jb25zdGFu
dCkKICAgICAgICAgICAgICAgICBpZiAoVmFsdWUqIG5lZ2F0ZWRDb25zdGFudCA9IG1fdmFsdWUt
PmNoaWxkKDEpLT5uZWdDb25zdGFudChtX3Byb2MpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1f
aW5zZXJ0aW9uU2V0Lmluc2VydFZhbHVlKG1faW5kZXgsIG5lZ2F0ZWRDb25zdGFudCk7CiAgICAg
ICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAg
ICAgICAgIEFkZCwgbV92YWx1ZS0+b3JpZ2luKCksIG1fdmFsdWUtPmNoaWxkKDApLCBuZWdhdGVk
Q29uc3RhbnQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTdWIoMCwg
dmFsdWUpCisgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiBOZWcodmFsdWUpCisgICAgICAg
ICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5pc0ludCgwKSkgeworICAgICAgICAgICAg
ICAgICAgICByZXBsYWNlV2l0aE5ldzxWYWx1ZT4oTmVnLCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92
YWx1ZS0+Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNh
c2UgTmVnOgorICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBOZWcoTmVnKHZhbHVlKSkKKyAgICAg
ICAgICAgIC8vIEludG8gdGhpczogdmFsdWUKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGls
ZCgwKS0+b3Bjb2RlKCkgPT0gTmVnKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFj
ZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkpOworICAgICAgICAgICAg
ICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgTXVs
OgogICAgICAgICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAxOTQ3NzMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw2
ICsxNzQsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBl
KCkgPT0gdmFsdWUtPmNoaWxkKDEpLT50eXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBOZWc6CisgICAgICAg
ICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IHZhbHVlLT5j
aGlsZCgwKS0+dHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ2hpbGxEaXY6CiAgICAgICAgICAgICBjYXNl
IENoaWxsTW9kOgogICAgICAgICAgICAgY2FzZSBCaXRPcjoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNjUsNiArMzY1LDcgQEAgRWZmZWN0
cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBBZGQ6CiAgICAgY2FzZSBTdWI6CiAg
ICAgY2FzZSBNdWw6CisgICAgY2FzZSBOZWc6CiAgICAgY2FzZSBDaGlsbERpdjoKICAgICBjYXNl
IENoaWxsTW9kOgogICAgIGNhc2UgQml0QW5kOgpAQCAtNDY4LDYgKzQ2OSw3IEBAIFZhbHVlS2V5
IFZhbHVlOjprZXkoKSBjb25zdAogICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICBjYXNlIENo
ZWNrOgogICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgY2FzZSBOZWc6CiAgICAgICAgIHJldHVy
biBWYWx1ZUtleShvcGNvZGUoKSwgdHlwZSgpLCBjaGlsZCgwKSk7CiAgICAgY2FzZSBBZGQ6CiAg
ICAgY2FzZSBTdWI6CkBAIC01NTMsNiArNTU1LDcgQEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNv
ZGUgb3Bjb2RlLCBWYWx1ZQogICAgIGNhc2UgTXVsOgogICAgIGNhc2UgRGl2OgogICAgIGNhc2Ug
TW9kOgorICAgIGNhc2UgTmVnOgogICAgIGNhc2UgQ2hpbGxEaXY6CiAgICAgY2FzZSBDaGlsbE1v
ZDoKICAgICBjYXNlIEJpdEFuZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyT3Bjb2RlLm9wY29kZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJPcGNvZGUub3Bjb2RlcwkocmV2aXNpb24gMTk0NzczKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtMTc3
LDYgKzE3Nyw5IEBAIE5lZzMyIFVaRDpHOjMyCiA2NDogTmVnNjQgVUQ6Rzo2NAogICAgIFRtcAog
Cithcm02NDogTmVnYXRlRG91YmxlIFU6Rjo2NCwgRDpGOjY0CisgICAgVG1wLCBUbXAKKwogTXVs
MzIgVTpHOjMyLCBVWkQ6RzozMgogICAgIFRtcCwgVG1wCiAgICAgeDg2OiBBZGRyLCBUbXAKQEAg
LTI1Myw2ICsyNTYsMTIgQEAgYXJtNjQ6IEFuZEZsb2F0IFU6RjozMiwgVTpGOjMyLCBEOkY6MzIK
IHg4NjogQW5kRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBUbXAKIAoreDg2OiBYb3JE
b3VibGUgVTpGOjY0LCBVRDpGOjY0CisgICAgVG1wLCBUbXAKKworeDg2OiBYb3JGbG9hdCBVOkY6
MzIsIFVEOkY6MzIKKyAgICBUbXAsIFRtcAorCiBhcm02NDogTHNoaWZ0MzIgVTpHOjMyLCBVOkc6
MzIsIFpEOkc6MzIKICAgICBUbXAsIFRtcCwgVG1wCiAgICAgVG1wLCBJbW0sIFRtcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCShyZXZpc2lvbiAxOTQ3NzMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIC8vIFdlIGFyZSBp
biB0aGUgbWlkZGxlIG9mIGFuIGV4cGVyaW1lbnRhbCB0cmFuc2l0aW9uIGZyb20gTExWTSB0byBC
MyBhcyB0aGUgYmFja2VuZCBmb3IgdGhlIEZUTC4gV2UgZG9uJ3QKIC8vIHlldCBrbm93IGhvdyBp
dCB3aWxsIHR1cm4gb3V0LiBGb3Igbm93LCB0aGlzIGZsYWcgd2lsbCBjb250cm9sIHdoZXRoZXIg
RlRMIHVzZXMgQjMuIFJlbWVtYmVyIHRvIHNldCB0aGlzCiAvLyB0byAwIGJlZm9yZSBjb21taXR0
aW5nIQotI2RlZmluZSBGVExfVVNFU19CMyAwCisjZGVmaW5lIEZUTF9VU0VTX0IzIDEKIAogc3Ry
dWN0IE5vZGU7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQu
Y3BwCShyZXZpc2lvbiAxOTQ3NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIz
T3V0cHV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsMTEgQEAgU3RhY2tTbG90VmFs
dWUqIE91dHB1dDo6bG9ja2VkU3RhY2tTbG90KAogICAgIHJldHVybiBtX2Jsb2NrLT5hcHBlbmRO
ZXc8U3RhY2tTbG90VmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIGJ5dGVzLCBTdGFja1Nsb3RLaW5k
OjpMb2NrZWQpOwogfQogCitMVmFsdWUgT3V0cHV0OjpuZWcoTFZhbHVlIHZhbHVlKQoreworICAg
IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQjM6Ok5lZywgb3JpZ2lu
KCksIHZhbHVlKTsKK30KKwogTFZhbHVlIE91dHB1dDo6Yml0Tm90KExWYWx1ZSB2YWx1ZSkKIHsK
ICAgICByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6Qml0
WG9yLCBvcmlnaW4oKSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRw
dXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0
LmgJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNP
dXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDIxICsxMzAsMTQgQEAgcHVibGljOgogICAg
IExWYWx1ZSBjaGlsbERpdihMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBtX2Js
b2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpDaGlsbERpdiwgb3JpZ2luKCks
IGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBtb2QoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdo
dCkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6TW9k
LCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGNoaWxsTW9kKExWYWx1ZSBs
ZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+
KG1fcHJvYywgQjM6OkNoaWxsTW9kLCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9Ci0gICAgTFZh
bHVlIG5lZyhMVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICBMVmFsdWUgemVybyA9IG1fYmxv
Y2stPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlLT50eXBlKCksIDAp
OwotICAgICAgICByZXR1cm4gc3ViKHplcm8sIHZhbHVlKTsKLSAgICB9CisgICAgTFZhbHVlIG5l
ZyhMVmFsdWUpOwogCiAgICAgTFZhbHVlIGRvdWJsZUFkZChMVmFsdWUgbGVmdCwgTFZhbHVlIHJp
Z2h0KSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpB
ZGQsIG9yaWdpbigpLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgZG91YmxlU3ViKExWYWx1
ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFs
dWU+KG1fcHJvYywgQjM6OlN1Yiwgb3JpZ2luKCksIGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1
ZSBkb3VibGVNdWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gbV9ibG9jay0+
YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6TXVsLCBvcmlnaW4oKSwgbGVmdCwgcmln
aHQpOyB9CiAgICAgTFZhbHVlIGRvdWJsZURpdihMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7
IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpEaXYsIG9y
aWdpbigpLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgZG91YmxlTW9kKExWYWx1ZSBsZWZ0
LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1f
cHJvYywgQjM6Ok1vZCwgb3JpZ2luKCksIGxlZnQsIHJpZ2h0KTsgfQotICAgIExWYWx1ZSBkb3Vi
bGVOZWcoTFZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN1Yihkb3VibGVaZXJv
LCB2YWx1ZSk7Ci0gICAgfQorICAgIExWYWx1ZSBkb3VibGVOZWcoTFZhbHVlIHZhbHVlKSB7IHJl
dHVybiBuZWcodmFsdWUpOyB9CiAKICAgICBMVmFsdWUgYml0QW5kKExWYWx1ZSBsZWZ0LCBMVmFs
dWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywg
QjM6OkJpdEFuZCwgb3JpZ2luKCksIGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBiaXRPcihM
VmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6
OlZhbHVlPihtX3Byb2MsIEIzOjpCaXRPciwgb3JpZ2luKCksIGxlZnQsIHJpZ2h0KTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268595</attachid>
            <date>2016-01-08 15:35:42 -0800</date>
            <delta_ts>2016-01-08 16:00:01 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16171</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0Nzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE2LTAxLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgbmVlZHMgTmVnKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MjkyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFByZXZpb3VzbHkgd2Ugc2FpZCB0aGF0IG5lZ2F0aW9uIHNob3VsZCBiZSByZXByZXNl
bnRlZCBhcyBTdWIoMCwgeCkuIFRoYXQncyB3cm9uZywgc2luY2UKKyAgICAgICAgZm9yIGZsb2F0
cywgU3ViKDAsIDApID09IDAgd2hpbGUgTmVnKDApID09IC0wLgorCisgICAgICAgIE9uZSB3YXkg
dG8gc29sdmUgdGhpcyB3b3VsZCBiZSB0byBzYXkgdGhhdCBhbnlvbmUgdHJ5aW5nIHRvIHNheSBO
ZWcoeCkgd2hlcmUgeCBpcyBhIGZsb2F0CisgICAgICAgIHNob3VsZCBpbnN0ZWFkIHNheSBCaXRY
b3IoeCwgLTApLiBUaGF0J3MgYWN0dWFsbHkgY29ycmVjdCwgYnV0IEkgdGhpbmsgdGhhdCBpdCB3
b3VsZCBiZSBvZGQKKyAgICAgICAgdG8gdXNlIGJpdG9wcyB0byByZXByZXNlbnQgZmxvYXRpbmcg
cG9pbnQgb3BlcmF0aW9ucy4gV2hhdGV2ZXIgY3V0ZW5lc3MgdGhpcyB3b3VsZCBoYXZlCisgICAg
ICAgIGJvdWdodCB1cyB3b3VsZCBiZSBvdXR3ZWlnaGVkIGJ5IHRoZSBhbm5veWFuY2Ugb2YgaGF2
aW5nIHRvIHdyaXRlIGNvZGUgdGhhdCBtYXRjaGVzCisgICAgICAgIFN1YigwLCB4KSBmb3IgaW50
ZWdlciBuZWdhdGlvbiBhbmQgQml0WG9yKHgsIC0wKSBmb3IgZG91YmxlIG5lZ2F0aW9uLiBGb3Ig
ZXhhbXBsZSwgdGhpcworICAgICAgICB3b3VsZCBtZWFuIHN0cmljdGx5IG1vcmUgY29kZSBmb3Ig
YW55b25lIGltcGxlbWVudGluZyBhIE5lZyhOZWcoeCkpPT54IHN0cmVuZ3RoIHJlZHVjdGlvbi4K
KworICAgICAgICBTbywgdGhpcyBpbnRyb2R1Y2VzIGEgcHJvcGVyIE5lZygpIG9wY29kZSB0byBC
My4gSXQncyBub3QgdGhlIGNhbm9uaWNhbCB3YXkgb2Ygc2F5aW5nCisgICAgICAgIG5lZ2F0aW9u
IGZvciBib3RoIGludHMgYW5kIGZsb2F0cy4gRm9yIGludHMsIHdlIGNhbm9uaWNhbGl6ZSBTdWIo
MCwgeCkgdG8gTmVnKHgpLiBGb3IKKyAgICAgICAgZmxvYXRzLCB3ZSBsb3dlciBpdCB0byBCaXRY
b3IoeCwgLTApIG9uIHg4Ni4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YW5kRmxv
YXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6eG9yRG91YmxlKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnhvckZsb2F0KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmNvbnZlcnRJbnQzMlRvRG91YmxlKToK
KyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmNwcDoKKyAgICAg
ICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRv
QWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNPcGNvZGUuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAgICAqIGIzL0Iz
UmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAg
ICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgor
ICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmtleSk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6
dHlwZUZvcik6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAgICAq
IGZ0bC9GVExCM091dHB1dC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2NrZWRT
dGFja1Nsb3QpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bmVnKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmJpdE5vdCk6CisgICAgICAgICogZnRsL0ZUTEIzT3V0cHV0Lmg6Cisg
ICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpjaGlsbERpdik6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojptb2QpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Y2hpbGxNb2QpOgorICAg
ICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpP
dXRwdXQ6OmRvdWJsZVN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpkb3VibGVNdWwp
OgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlRGl2KToKKyAgICAgICAgKEpTQzo6
RlRMOjpPdXRwdXQ6OmRvdWJsZU1vZCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpkb3Vi
bGVOZWcpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Yml0QW5kKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmJpdE9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om5lZyk6
IERlbGV0ZWQuCisKIDIwMTYtMDEtMDggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBGVEwgQjMgY29tcGlsZSgpIGRvZXNuJ3QgY2xlYXIgZXhjZXB0aW9uIGhhbmRs
ZXJzIGJlZm9yZSB3ZSBhZGQgRlRMLXNwZWNpZmljIG9uZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmgJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEwODIsNiArMTA4MiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmFuZHBzX3Jy
KHNyYywgZHN0KTsKICAgICB9CiAKKyAgICB2b2lkIHhvckRvdWJsZShGUFJlZ2lzdGVySUQgc3Jj
LCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIueG9ycHNfcnIo
c3JjLCBkc3QpOworICAgIH0KKworICAgIHZvaWQgeG9yRmxvYXQoRlBSZWdpc3RlcklEIHNyYywg
RlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnhvcnBzX3JyKHNy
YywgZHN0KTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJlZ2lzdGVy
SUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1NTRTJQ
cmVzZW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NB
ZnRlck9wdGltaXphdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmNwcAkocmV2aXNpb24gMTk0Nzcz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXph
dGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOCw2ICsxMDgsMjcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KHJlc3VsdCk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIE5lZzogewor
ICAgICAgICAgICAgICAgIGlmICghaXNGbG9hdChtX3ZhbHVlLT50eXBlKCkpKQorICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBY
ODYgaXMgb2RkIGluIHRoYXQgaXQgcmVxdWlyZXMgdGhpcy4KKyAgICAgICAgICAgICAgICBpZiAo
IWlzWDg2KCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAg
VmFsdWUqIG1hc2sgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT50eXBl
KCkgPT0gRG91YmxlKQorICAgICAgICAgICAgICAgICAgICBtYXNrID0gbV9pbnNlcnRpb25TZXQu
aW5zZXJ0PENvbnN0RG91YmxlVmFsdWU+KG1faW5kZXgsIG1fb3JpZ2luLCAtMC4wKTsKKyAgICAg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV92
YWx1ZS0+dHlwZSgpID09IEZsb2F0KTsKKyAgICAgICAgICAgICAgICAgICAgbWFzayA9IG1faW5z
ZXJ0aW9uU2V0Lmluc2VydDxDb25zdEZsb2F0VmFsdWU+KG1faW5kZXgsIG1fb3JpZ2luLCAtMC4w
Zik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVmFsdWUqIHJlc3VsdCA9
IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1faW5k
ZXgsIEJpdFhvciwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLCBtYXNrKTsKKyAgICAgICAg
ICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KHJlc3VsdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEyLDEw
ICsxNjEyLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIFN1Yjogewot
ICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5pc0ludCgwKSkKLSAgICAgICAgICAg
ICAgICBhcHBlbmRVbk9wPE5lZzMyLCBOZWc2ND4obV92YWx1ZS0+Y2hpbGQoMSkpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFwcGVuZEJpbk9wPFN1YjMyLCBTdWI2NCwgU3Vi
RG91YmxlLCBTdWJGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCksIG1fdmFsdWUtPmNoaWxkKDEpKTsK
KyAgICAgICAgICAgIGFwcGVuZEJpbk9wPFN1YjMyLCBTdWI2NCwgU3ViRG91YmxlLCBTdWJGbG9h
dD4obV92YWx1ZS0+Y2hpbGQoMCksIG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTmVnOiB7CisgICAgICAgICAgICBhcHBl
bmRVbk9wPE5lZzMyLCBOZWc2NCwgTmVnYXRlRG91YmxlLCBBaXI6Ok9vcHM+KG1fdmFsdWUtPmNo
aWxkKDApKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xNjgyLDcgKzE2
ODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGFwcGVuZFVuT3A8Tm90MzIsIE5vdDY0
PihtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYXBwZW5kQmluT3A8WG9yMzIsIFhvcjY0LCBDb21tdXRhdGl2ZT4o
CisgICAgICAgICAgICBhcHBlbmRCaW5PcDxYb3IzMiwgWG9yNjQsIFhvckRvdWJsZSwgWG9yRmxv
YXQsIENvbW11dGF0aXZlPigKICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSwgbV92
YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDE5NDc3MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE5LDYg
KzExOSw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBj
YXNlIE1vZDoKICAgICAgICAgb3V0LnByaW50KCJNb2QiKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgTmVnOgorICAgICAgICBvdXQucHJpbnQoIk5lZyIpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBDaGlsbERpdjoKICAgICAgICAgb3V0LnByaW50KCJDaGlsbERpdiIpOwogICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24g
MTk0NzczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNzMsNiArNzMsMTEgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBEaXYsIC8v
IEFsbCBiZXRzIGFyZSBvZmYgYXMgdG8gd2hhdCB3aWxsIGhhcHBlbiB3aGVuIHlvdSBleGVjdXRl
IHRoaXMgZm9yIC0yXjMxLy0xIGFuZCB4LzAuCiAgICAgTW9kLCAvLyBBbGwgYmV0cyBhcmUgb2Zm
IGFzIHRvIHdoYXQgd2lsbCBoYXBwZW4gd2hlbiB5b3UgZXhlY3V0ZSB0aGlzIGZvciAtMl4zMSUt
MSBhbmQgeCUwLgogCisgICAgLy8gUG9seW1vcnBoaWMgbmVnYXRpb24uIE5vdGUgdGhhdCB3ZSBv
bmx5IG5lZWQgdGhpcyBmb3IgZmxvYXRpbmcgcG9pbnQsIHNpbmNlIGludGVnZXIgbmVnYXRpb24K
KyAgICAvLyBpcyBleGFjdGx5IGxpa2UgU3ViKDAsIHgpLiBCdXQgdGhhdCdzIG5vdCB0cnVlIGZv
ciBmbG9hdGluZyBwb2ludC4gU3ViKDAsIDApIGlzIDAsIHdoaWxlCisgICAgLy8gTmVnKDApIGlz
IC0wLiBBbHNvLCB3ZSBjYW5vbmljYWxpemUgU3ViKDAsIHgpIGludG8gTmVnKHgpIGluIGNhc2Ug
b2YgaW50ZWdlcnMuCisgICAgTmVnLAorCiAgICAgLy8gSW50ZWdlciBtYXRoLgogICAgIENoaWxs
RGl2LCAvLyBkb2Vzbid0IHRyYXAgZXZlciwgYmVoYXZlcyBsaWtlIEpTICh4L3kpfDAuCiAgICAg
Q2hpbGxNb2QsIC8vIGRvZXNuJ3QgdHJhcCBldmVyLCBiZWhhdmVzIGxpa2UgSlMgKHgleSl8MC4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJ
KHJldmlzaW9uIDE5NDc3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTMsMTkgKzIxMywzNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBUdXJu
IHRoaXM6IFN1Yih2YWx1ZSwgY29uc3RhbnQpCi0gICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEFk
ZCh2YWx1ZSwgLWNvbnN0YW50KQogICAgICAgICAgICAgaWYgKGlzSW50KG1fdmFsdWUtPnR5cGUo
KSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFN1Yih2YWx1ZSwgY29uc3RhbnQp
CisgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiBBZGQodmFsdWUsIC1jb25zdGFudCkKICAg
ICAgICAgICAgICAgICBpZiAoVmFsdWUqIG5lZ2F0ZWRDb25zdGFudCA9IG1fdmFsdWUtPmNoaWxk
KDEpLT5uZWdDb25zdGFudChtX3Byb2MpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydFZhbHVlKG1faW5kZXgsIG5lZ2F0ZWRDb25zdGFudCk7CiAgICAgICAgICAg
ICAgICAgICAgIHJlcGxhY2VXaXRoTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAg
IEFkZCwgbV92YWx1ZS0+b3JpZ2luKCksIG1fdmFsdWUtPmNoaWxkKDApLCBuZWdhdGVkQ29uc3Rh
bnQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTdWIoMCwgdmFsdWUp
CisgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiBOZWcodmFsdWUpCisgICAgICAgICAgICAg
ICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgICAg
ICByZXBsYWNlV2l0aE5ldzxWYWx1ZT4oTmVnLCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+
Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgTmVn
OgorICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBOZWcoTmVnKHZhbHVlKSkKKyAgICAgICAgICAg
IC8vIEludG8gdGhpczogdmFsdWUKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gTmVnKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJ
ZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIG1f
Y2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgTXVsOgogICAg
ICAgICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAxOTQ3NzMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSwxNSArMTY5
LDIwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgRGl2OgogICAgICAgICAgICAgY2FzZSBN
b2Q6CiAgICAgICAgICAgICBjYXNlIEJpdEFuZDoKKyAgICAgICAgICAgIGNhc2UgQml0WG9yOgog
ICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDIsICgiQXQg
IiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSB2
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAg
ICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IHZhbHVlLT5jaGlsZCgxKS0+dHlwZSgpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgTmVnOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJl
bigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFs
dWUtPnR5cGUoKSA9PSB2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwg
KnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENoaWxs
RGl2OgogICAgICAgICAgICAgY2FzZSBDaGlsbE1vZDoKICAgICAgICAgICAgIGNhc2UgQml0T3I6
Ci0gICAgICAgICAgICBjYXNlIEJpdFhvcjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+bnVtQ2hpbGRyZW4oKSA9PSAyLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gdmFsdWUtPmNoaWxkKDApLT50eXBlKCksICgiQXQg
IiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSB2
YWx1ZS0+Y2hpbGQoMSktPnR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDE5NDc3MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNjUsNiArMzY1LDcgQEAg
RWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBBZGQ6CiAgICAgY2FzZSBT
dWI6CiAgICAgY2FzZSBNdWw6CisgICAgY2FzZSBOZWc6CiAgICAgY2FzZSBDaGlsbERpdjoKICAg
ICBjYXNlIENoaWxsTW9kOgogICAgIGNhc2UgQml0QW5kOgpAQCAtNDY4LDYgKzQ2OSw3IEBAIFZh
bHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICBj
YXNlIENoZWNrOgogICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgY2FzZSBOZWc6CiAgICAgICAg
IHJldHVybiBWYWx1ZUtleShvcGNvZGUoKSwgdHlwZSgpLCBjaGlsZCgwKSk7CiAgICAgY2FzZSBB
ZGQ6CiAgICAgY2FzZSBTdWI6CkBAIC01NTMsNiArNTU1LDcgQEAgVHlwZSBWYWx1ZTo6dHlwZUZv
cihPcGNvZGUgb3Bjb2RlLCBWYWx1ZQogICAgIGNhc2UgTXVsOgogICAgIGNhc2UgRGl2OgogICAg
IGNhc2UgTW9kOgorICAgIGNhc2UgTmVnOgogICAgIGNhc2UgQ2hpbGxEaXY6CiAgICAgY2FzZSBD
aGlsbE1vZDoKICAgICBjYXNlIEJpdEFuZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwkocmV2aXNpb24gMTk0NzczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpA
QCAtMTc3LDYgKzE3Nyw5IEBAIE5lZzMyIFVaRDpHOjMyCiA2NDogTmVnNjQgVUQ6Rzo2NAogICAg
IFRtcAogCithcm02NDogTmVnYXRlRG91YmxlIFU6Rjo2NCwgRDpGOjY0CisgICAgVG1wLCBUbXAK
KwogTXVsMzIgVTpHOjMyLCBVWkQ6RzozMgogICAgIFRtcCwgVG1wCiAgICAgeDg2OiBBZGRyLCBU
bXAKQEAgLTI1Myw2ICsyNTYsMTIgQEAgYXJtNjQ6IEFuZEZsb2F0IFU6RjozMiwgVTpGOjMyLCBE
OkY6MzIKIHg4NjogQW5kRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBUbXAKIAoreDg2
OiBYb3JEb3VibGUgVTpGOjY0LCBVRDpGOjY0CisgICAgVG1wLCBUbXAKKworeDg2OiBYb3JGbG9h
dCBVOkY6MzIsIFVEOkY6MzIKKyAgICBUbXAsIFRtcAorCiBhcm02NDogTHNoaWZ0MzIgVTpHOjMy
LCBVOkc6MzIsIFpEOkc6MzIKICAgICBUbXAsIFRtcCwgVG1wCiAgICAgVG1wLCBJbW0sIFRtcApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAJKHJldmlzaW9u
IDE5NDc3MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2NywxMSBAQCBTdGFja1Nsb3RWYWx1ZSogT3V0cHV0Ojps
b2NrZWRTdGFja1Nsb3QoCiAgICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxTdGFja1Nsb3RW
YWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgYnl0ZXMsIFN0YWNrU2xvdEtpbmQ6OkxvY2tlZCk7CiB9
CiAKK0xWYWx1ZSBPdXRwdXQ6Om5lZyhMVmFsdWUgdmFsdWUpCit7CisgICAgcmV0dXJuIG1fYmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCMzo6TmVnLCBvcmlnaW4oKSwgdmFsdWUpOwor
fQorCiBMVmFsdWUgT3V0cHV0OjpiaXROb3QoTFZhbHVlIHZhbHVlKQogewogICAgIHJldHVybiBt
X2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpCaXRYb3IsIG9yaWdpbigp
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAkocmV2aXNpb24g
MTk0NzczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzAsMjEgKzEzMCwxNCBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGNoaWxs
RGl2KExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5l
dzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkNoaWxsRGl2LCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQp
OyB9CiAgICAgTFZhbHVlIG1vZChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBt
X2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpNb2QsIG9yaWdpbigpLCBs
ZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgY2hpbGxNb2QoTFZhbHVlIGxlZnQsIExWYWx1ZSBy
aWdodCkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6
Q2hpbGxNb2QsIG9yaWdpbigpLCBsZWZ0LCByaWdodCk7IH0KLSAgICBMVmFsdWUgbmVnKExWYWx1
ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIExWYWx1ZSB6ZXJvID0gbV9ibG9jay0+YXBwZW5kSW50
Q29uc3RhbnQobV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUtPnR5cGUoKSwgMCk7Ci0gICAgICAgIHJl
dHVybiBzdWIoemVybywgdmFsdWUpOwotICAgIH0KKyAgICBMVmFsdWUgbmVnKExWYWx1ZSk7CiAK
ICAgICBMVmFsdWUgZG91YmxlQWRkKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJu
IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkFkZCwgb3JpZ2luKCks
IGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBkb3VibGVTdWIoTFZhbHVlIGxlZnQsIExWYWx1
ZSByaWdodCkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBC
Mzo6U3ViLCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGRvdWJsZU11bChM
VmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6
OlZhbHVlPihtX3Byb2MsIEIzOjpNdWwsIG9yaWdpbigpLCBsZWZ0LCByaWdodCk7IH0KICAgICBM
VmFsdWUgZG91YmxlRGl2KExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxv
Y2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkRpdiwgb3JpZ2luKCksIGxlZnQs
IHJpZ2h0KTsgfQogICAgIExWYWx1ZSBkb3VibGVNb2QoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdo
dCkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6TW9k
LCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9Ci0gICAgTFZhbHVlIGRvdWJsZU5lZyhMVmFsdWUg
dmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gc3ViKGRvdWJsZVplcm8sIHZhbHVlKTsKLSAg
ICB9CisgICAgTFZhbHVlIGRvdWJsZU5lZyhMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG5lZyh2YWx1
ZSk7IH0KIAogICAgIExWYWx1ZSBiaXRBbmQoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyBy
ZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6Qml0QW5kLCBv
cmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGJpdE9yKExWYWx1ZSBsZWZ0LCBM
VmFsdWUgcmlnaHQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJv
YywgQjM6OkJpdE9yLCBvcmlnaW4oKSwgbGVmdCwgcmlnaHQpOyB9Cg==
</data>
<flag name="review"
          id="293569"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>