<?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>152705</bug_id>
          
          <creation_ts>2016-01-04 12:10:07 -0800</creation_ts>
          <short_desc>FTL B3 should do the ArithSub binary snippet</short_desc>
          <delta_ts>2016-01-04 12:51:54 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152708</see_also>
          <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>152668</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>1152439</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:10:07 -0800</bug_when>
    <thetext>Gotta start somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152446</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:27:10 -0800</bug_when>
    <thetext>It turns out that the ArithSub DFG/FTL snippets are totally busted even for the simplest of test cases.  See: https://bugs.webkit.org/show_bug.cgi?id=152708</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152448</commentid>
    <comment_count>2</comment_count>
      <attachid>268217</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:32:21 -0800</bug_when>
    <thetext>Created attachment 268217
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152449</commentid>
    <comment_count>3</comment_count>
      <attachid>268218</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:32:53 -0800</bug_when>
    <thetext>Created attachment 268218
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152450</commentid>
    <comment_count>4</comment_count>
      <attachid>268219</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:33:43 -0800</bug_when>
    <thetext>Created attachment 268219
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152451</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-04 12:35:08 -0800</bug_when>
    <thetext>Attachment 268219 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7410:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7424:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152461</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 12:51:54 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194548</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268217</attachid>
            <date>2016-01-04 12:32:21 -0800</date>
            <delta_ts>2016-01-04 12:32:53 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9706</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NTQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBkbyB0aGUgQXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjcwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUg
QXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQgZ2VuZXJhdG9yIGluIEZUTCBCMy4KKworICAgICAgICBX
aGlsZSBkb2luZyB0aGlzLCBJIGRpc2NvdmVyZWQgdGhhdCB0aGUgREZHIHR5cGUgaW5mZXJlbmNl
IGxvZ2ljIGZvciBBcml0aFN1YiBjb250YWlucyBhCisgICAgICAgIGNsYXNzaWMgbWlzdGFrZTog
aXQgY2F1c2VzIHRoZSBzbmlwcGV0cyB0byBraWNrIGluIHdoZW4gdGhlIHR5cGUgc2V0IGRvZXMg
bm90IGNvbnRhaW4gbnVtYmVycworICAgICAgICByYXRoZXIgdGhhbiBraWNraW5nIGluIHdoZW4g
dGhlIHR5cGUgc2V0IGNvbnRhaW5zIG5vbi1udW1iZXJzLiBTbywgdGhlIG9yaWdpbmFsIHRlc3Qg
dGhhdCBJCisgICAgICAgIHdyb3RlIGZvciB0aGlzIGRvZXNuJ3Qgd29yayByaWdodCAoaXQgcnVu
cyB0byBjb21wbGV0aW9uIGJ1dCBPU1IgZXhpdHMgYWQgaW5maW5pdHVtKS4gSSB3cm90ZQorICAg
ICAgICBhIHNlY29uZCB0ZXN0IHRoYXQgaXMgc2ltcGxlciwgYW5kIHRoYXQgb25lIHNob3dzIHRo
YXQgdGhlIGJpbmFyeSBzbmlwcGV0cyAid29yayIuIFRoYXQncworICAgICAgICBzb3J0IG9mIGEg
am9rZSB0aG91Z2gsIHNpbmNlIHRoZSBvbmx5IHdheSB0byB0cmlnZ2VyIGJpbmFyeSBzbmlwcGV0
cyBpcyB0byBuZXZlciBwYXNzIG51bWJlcnMKKyAgICAgICAgYW5kIHRoZSBvbmx5IHdheSB0byBh
Y3R1YWxseSBjYXVzZSBhIGJpbmFyeSBzbmlwcGV0IHRvIGRvIG1lYW5pbmZ1bCB3b3JrIGlzIHRv
IHBhc3MgbnVtYmVycy4KKyAgICAgICAgSSBmaWxlZCBhIGJ1ZyBhYm91dCB0aGlzIG1lc3M6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MDguCisKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVVbnR5cGVkQmluYXJ5T3ApOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aEFkZE9yU3ViKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpub25TcGVjdWxhdGl2ZUNvbXBhcmUpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVtaXRCaW5hcnlTbmlwcGV0KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphbGxvY2F0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd0Jsb2NrKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0RGVzY3JpcHRv
cik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKHRoaW5ncy52YWx1ZU9mKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvdW50eXBlZC1zdWIuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKHZhbHVl
T2YpOgorCiAyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgZGlzYWJsZSBGVEwgQjMgZm9yIG5vdy4gSSBkaWRuJ3QgaW50ZW5k
IHRvIGVuYWJsZSBpdCB5ZXQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9u
LmgJKHJldmlzaW9uIDE5NDU0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewogLy8gV2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gZXhwZXJpbWVudGFs
IHRyYW5zaXRpb24gZnJvbSBMTFZNIHRvIEIzIGFzIHRoZSBiYWNrZW5kIGZvciB0aGUgRlRMLiBX
ZSBkb24ndAogLy8geWV0IGtub3cgaG93IGl0IHdpbGwgdHVybiBvdXQuIEZvciBub3csIHRoaXMg
ZmxhZyB3aWxsIGNvbnRyb2wgd2hldGhlciBGVEwgdXNlcyBCMy4gUmVtZW1iZXIgdG8gc2V0IHRo
aXMKIC8vIHRvIDAgYmVmb3JlIGNvbW1pdHRpbmchCi0jZGVmaW5lIEZUTF9VU0VTX0IzIDAKKyNk
ZWZpbmUgRlRMX1VTRVNfQjMgMQogCiBzdHJ1Y3QgTm9kZTsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5NDU0
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkZUTE91dHB1dC5oIgog
I2luY2x1ZGUgIkZUTFRodW5rcy5oIgogI2luY2x1ZGUgIkZUTFdlaWdodGVkVGFyZ2V0LmgiCisj
aW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJvd0Z1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24u
aCIKQEAgLTEwODcsMjAgKzEwODgsMTYgQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAoY29uc3RJ
bnQzMk9wdCA9PSBIYXNDb25zdEludDMyT3BlcmFuZE9wdGltaXphdGlvbiAmJiBsZWZ0Q2hpbGQt
PmlzSW50MzJDb25zdGFudCgpKQogICAgICAgICAgICAgbGVmdE9wZXJhbmQuc2V0Q29uc3RJbnQz
MihsZWZ0Q2hpbGQtPmFzSW50MzIoKSk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgZWxz
ZSBpZiAoY29uc3REb3VibGVPcHQgPT0gSGFzQ29uc3REb3VibGVPcGVyYW5kT3B0aW1pemF0aW9u
ICYmIGxlZnRDaGlsZC0+aXNEb3VibGVDb25zdGFudCgpKQogICAgICAgICAgICAgbGVmdE9wZXJh
bmQuc2V0Q29uc3REb3VibGUobGVmdENoaWxkLT5hc051bWJlcigpKTsKLSNlbmRpZgogCiAgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgICAgIC8vIEJlY2F1c2Ug
dGhlIHNuaXBwZXQgZG9lcyBub3Qgc3VwcG9ydCBib3RoIG9wZXJhbmRzIGJlaW5nIGNvbnN0YW50
LCBpZiB0aGUgbGVmdAogICAgICAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3Rh
bnQsIHdlJ2xsIGp1c3QgcHJldGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCiAgICAgICAg
IH0gZWxzZSBpZiAoY29uc3RJbnQzMk9wdCA9PSBIYXNDb25zdEludDMyT3BlcmFuZE9wdGltaXph
dGlvbiAmJiByaWdodENoaWxkLT5pc0ludDMyQ29uc3RhbnQoKSkKICAgICAgICAgICAgIHJpZ2h0
T3BlcmFuZC5zZXRDb25zdEludDMyKHJpZ2h0Q2hpbGQtPmFzSW50MzIoKSk7Ci0jaWYgVVNFKEpT
VkFMVUU2NCkKICAgICAgICAgZWxzZSBpZiAoY29uc3REb3VibGVPcHQgPT0gSGFzQ29uc3REb3Vi
bGVPcGVyYW5kT3B0aW1pemF0aW9uICYmIHJpZ2h0Q2hpbGQtPmlzRG91YmxlQ29uc3RhbnQoKSkK
ICAgICAgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdERvdWJsZShyaWdodENoaWxkLT5hc051
bWJlcigpKTsKLSNlbmRpZgogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFsZWZ0T3BlcmFuZC5p
c0NvbnN0KCkgfHwgIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpOwogCkBAIC0xNzQ3LDggKzE3NDQs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2Rl
LCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKKworI2lmIEZUTF9VU0VTX0IzCisgICAgICAgICAgICBlbWl0QmluYXJ5
U25pcHBldDxKSVRTdWJHZW5lcmF0b3I+KG9wZXJhdGlvblZhbHVlU3ViKTsKKyNlbHNlIC8vIEZU
TF9VU0VTX0IzCiAgICAgICAgICAgICBjb21waWxlVW50eXBlZEJpbmFyeU9wPEFyaXRoU3ViRGVz
Y3JpcHRvciwgRG9lc05vdEhhdmVDb25zdEludDMyT3BlcmFuZE9wdGltaXphdGlvbiwgRG9lc05v
dEhhdmVDb25zdERvdWJsZU9wZXJhbmRPcHRpbWl6YXRpb24+KCk7CisjZW5kaWYgLy8gRlRMX1VT
RVNfQjMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTczNzUsNiArNzM3Niw3
MCBAQCBwcml2YXRlOgogICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShtX291dC5ib29sZWFu
LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQogCisjaWYgRlRMX1VTRVNfQjMKKyAg
ICBlbnVtIFNjcmF0Y2hGUFJVc2FnZSB7CisgICAgICAgIERvbnROZWVkU2NyYXRjaEZQUiwKKyAg
ICAgICAgTmVlZFNjcmF0Y2hGUFIKKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJpbmFy
eUFyaXRoT3BHZW5lcmF0b3IsIFNjcmF0Y2hGUFJVc2FnZSBzY3JhdGNoRlBSVXNhZ2UgPSBEb250
TmVlZFNjcmF0Y2hGUFI+CisgICAgdm9pZCBlbWl0QmluYXJ5U25pcHBldChKX0pJVE9wZXJhdGlv
bl9FSkogc2xvd1BhdGhGdW5jdGlvbikKKyAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CisgICAgICAgIAorICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGRvIGV4Y2VwdGlvbnMu
CisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2
ODYKKyAgICAgICAgICAgIAorICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUobm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxk
MigpKTsKKworICAgICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5k
IHJpZ2h0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUo
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0g
bV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChsZWZ0
LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKHJp
Z2h0LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAg
ICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVt
R1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNo
UmVnaXN0ZXJzID0gMjsKKyAgICAgICAgaWYgKHNjcmF0Y2hGUFJVc2FnZSA9PSBOZWVkU2NyYXRj
aEZQUikKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycysrOwor
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBw
YXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
KyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBC
b3g8QmluYXJ5QXJpdGhPcEdlbmVyYXRvcj46OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwK
KyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1
ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2Ny
YXRjaCgwKSwgcGFyYW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRjaCgwKSwKKyAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEZQUlVzYWdlID09IE5lZWRTY3JhdGNoRlBSID8gcGFyYW1z
LmZwU2NyYXRjaCgyKSA6IEludmFsaWRGUFJSZWcpOworCisgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5l
bmRKdW1wTGlzdCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBkb25lID0gaml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0
ZVBhdGgoCisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxv
d1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gc29tZXRoaW5nLgorICAgICAgICAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOworCisgICAg
ICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZq
aXQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
ZXhjZXB0aW9ucywgc2xvd1BhdGhGdW5jdGlvbiwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0u
Z3ByKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzJdLmdwcigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZqaXQpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFs
dWUocGF0Y2hwb2ludCk7CisgICAgfQorI2VuZGlmIC8vIEZUTF9VU0VTX0IzCisKICAgICBMVmFs
dWUgYWxsb2NhdGVDZWxsKExWYWx1ZSBhbGxvY2F0b3IsIExCYXNpY0Jsb2NrIHNsb3dQYXRoKQog
ICAgIHsKICAgICAgICAgTEJhc2ljQmxvY2sgc3VjY2VzcyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgib2JqZWN0IGFsbG9jYXRpb24gc3VjY2VzcyIpKTsKQEAgLTk4NjAsNyArOTkyNSw2IEBAIHBy
aXZhdGU6CiAgICAgICAgIHJldHVybiBtX2Jsb2Nrcy5nZXQoYmxvY2spOwogICAgIH0KIAotCiAj
aWYgRlRMX1VTRVNfQjMKICAgICBPU1JFeGl0RGVzY3JpcHRvciogYXBwZW5kT1NSRXhpdERlc2Ny
aXB0b3IoRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hWYWx1ZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vYmplY3Qtc3Vi
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9v
YmplY3Qtc3ViLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZv
byhhLCBiKSB7CisgICAgcmV0dXJuIGEgLSBiOworfQorCitub0lubGluZShmb28pOworCit2YXIg
dGhpbmdzID0gW3t2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQ7IH19XTsKK3ZhciByZXN1
bHRzID0gWzNdOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyh0aGluZ3NbaSAlIHRoaW5ncy5sZW5ndGhdLCAxKTsKKyAgICB2YXIgZXhw
ZWN0ZWQgPSByZXN1bHRzW2kgJSByZXN1bHRzLmxlbmd0aF07CisgICAgaWYgKHJlc3VsdCAhPSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciBpID0gIiArIGkg
KyAiOiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3VudHlwZWQtc3ViLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdW50eXBlZC1zdWIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3VudHlwZWQtc3ViLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGEgLSBiOwor
fQorCitub0lubGluZShmb28pOworCit2YXIgdGhpbmdzID0gWzEsIDIuNSwgIjMiLCB7dmFsdWVP
ZjogZnVuY3Rpb24oKSB7IHJldHVybiA0OyB9fV07Cit2YXIgcmVzdWx0cyA9IFswLCAxLjUsIDIs
IDNdOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyh0aGluZ3NbaSAlIHRoaW5ncy5sZW5ndGhdLCAxKTsKKyAgICB2YXIgZXhwZWN0ZWQg
PSByZXN1bHRzW2kgJSByZXN1bHRzLmxlbmd0aF07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciBpID0gIiArIGkgKyAiOiAi
ICsgcmVzdWx0OworfQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268218</attachid>
            <date>2016-01-04 12:32:53 -0800</date>
            <delta_ts>2016-01-04 12:33:43 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9706</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NTQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBkbyB0aGUgQXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjcwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUg
QXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQgZ2VuZXJhdG9yIGluIEZUTCBCMy4KKworICAgICAgICBX
aGlsZSBkb2luZyB0aGlzLCBJIGRpc2NvdmVyZWQgdGhhdCB0aGUgREZHIHR5cGUgaW5mZXJlbmNl
IGxvZ2ljIGZvciBBcml0aFN1YiBjb250YWlucyBhCisgICAgICAgIGNsYXNzaWMgbWlzdGFrZTog
aXQgY2F1c2VzIHRoZSBzbmlwcGV0cyB0byBraWNrIGluIHdoZW4gdGhlIHR5cGUgc2V0IGRvZXMg
bm90IGNvbnRhaW4gbnVtYmVycworICAgICAgICByYXRoZXIgdGhhbiBraWNraW5nIGluIHdoZW4g
dGhlIHR5cGUgc2V0IGNvbnRhaW5zIG5vbi1udW1iZXJzLiBTbywgdGhlIG9yaWdpbmFsIHRlc3Qg
dGhhdCBJCisgICAgICAgIHdyb3RlIGZvciB0aGlzIGRvZXNuJ3Qgd29yayByaWdodCAoaXQgcnVu
cyB0byBjb21wbGV0aW9uIGJ1dCBPU1IgZXhpdHMgYWQgaW5maW5pdHVtKS4gSSB3cm90ZQorICAg
ICAgICBhIHNlY29uZCB0ZXN0IHRoYXQgaXMgc2ltcGxlciwgYW5kIHRoYXQgb25lIHNob3dzIHRo
YXQgdGhlIGJpbmFyeSBzbmlwcGV0cyAid29yayIuIFRoYXQncworICAgICAgICBzb3J0IG9mIGEg
am9rZSB0aG91Z2gsIHNpbmNlIHRoZSBvbmx5IHdheSB0byB0cmlnZ2VyIGJpbmFyeSBzbmlwcGV0
cyBpcyB0byBuZXZlciBwYXNzIG51bWJlcnMKKyAgICAgICAgYW5kIHRoZSBvbmx5IHdheSB0byBh
Y3R1YWxseSBjYXVzZSBhIGJpbmFyeSBzbmlwcGV0IHRvIGRvIG1lYW5pbmZ1bCB3b3JrIGlzIHRv
IHBhc3MgbnVtYmVycy4KKyAgICAgICAgSSBmaWxlZCBhIGJ1ZyBhYm91dCB0aGlzIG1lc3M6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MDguCisKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVVbnR5cGVkQmluYXJ5T3ApOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aEFkZE9yU3ViKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpub25TcGVjdWxhdGl2ZUNvbXBhcmUpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVtaXRCaW5hcnlTbmlwcGV0KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphbGxvY2F0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd0Jsb2NrKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0RGVzY3JpcHRv
cik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKHRoaW5ncy52YWx1ZU9mKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvdW50eXBlZC1zdWIuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKHZhbHVl
T2YpOgorCiAyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgZGlzYWJsZSBGVEwgQjMgZm9yIG5vdy4gSSBkaWRuJ3QgaW50ZW5k
IHRvIGVuYWJsZSBpdCB5ZXQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9u
LmgJKHJldmlzaW9uIDE5NDU0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewogLy8gV2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gZXhwZXJpbWVudGFs
IHRyYW5zaXRpb24gZnJvbSBMTFZNIHRvIEIzIGFzIHRoZSBiYWNrZW5kIGZvciB0aGUgRlRMLiBX
ZSBkb24ndAogLy8geWV0IGtub3cgaG93IGl0IHdpbGwgdHVybiBvdXQuIEZvciBub3csIHRoaXMg
ZmxhZyB3aWxsIGNvbnRyb2wgd2hldGhlciBGVEwgdXNlcyBCMy4gUmVtZW1iZXIgdG8gc2V0IHRo
aXMKIC8vIHRvIDAgYmVmb3JlIGNvbW1pdHRpbmchCi0jZGVmaW5lIEZUTF9VU0VTX0IzIDAKKyNk
ZWZpbmUgRlRMX1VTRVNfQjMgMQogCiBzdHJ1Y3QgTm9kZTsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5NDU0
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkZUTE91dHB1dC5oIgog
I2luY2x1ZGUgIkZUTFRodW5rcy5oIgogI2luY2x1ZGUgIkZUTFdlaWdodGVkVGFyZ2V0LmgiCisj
aW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJvd0Z1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24u
aCIKQEAgLTEwODcsMjAgKzEwODgsMTYgQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAoY29uc3RJ
bnQzMk9wdCA9PSBIYXNDb25zdEludDMyT3BlcmFuZE9wdGltaXphdGlvbiAmJiBsZWZ0Q2hpbGQt
PmlzSW50MzJDb25zdGFudCgpKQogICAgICAgICAgICAgbGVmdE9wZXJhbmQuc2V0Q29uc3RJbnQz
MihsZWZ0Q2hpbGQtPmFzSW50MzIoKSk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgZWxz
ZSBpZiAoY29uc3REb3VibGVPcHQgPT0gSGFzQ29uc3REb3VibGVPcGVyYW5kT3B0aW1pemF0aW9u
ICYmIGxlZnRDaGlsZC0+aXNEb3VibGVDb25zdGFudCgpKQogICAgICAgICAgICAgbGVmdE9wZXJh
bmQuc2V0Q29uc3REb3VibGUobGVmdENoaWxkLT5hc051bWJlcigpKTsKLSNlbmRpZgogCiAgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpIHsKICAgICAgICAgICAgIC8vIEJlY2F1c2Ug
dGhlIHNuaXBwZXQgZG9lcyBub3Qgc3VwcG9ydCBib3RoIG9wZXJhbmRzIGJlaW5nIGNvbnN0YW50
LCBpZiB0aGUgbGVmdAogICAgICAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3Rh
bnQsIHdlJ2xsIGp1c3QgcHJldGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCiAgICAgICAg
IH0gZWxzZSBpZiAoY29uc3RJbnQzMk9wdCA9PSBIYXNDb25zdEludDMyT3BlcmFuZE9wdGltaXph
dGlvbiAmJiByaWdodENoaWxkLT5pc0ludDMyQ29uc3RhbnQoKSkKICAgICAgICAgICAgIHJpZ2h0
T3BlcmFuZC5zZXRDb25zdEludDMyKHJpZ2h0Q2hpbGQtPmFzSW50MzIoKSk7Ci0jaWYgVVNFKEpT
VkFMVUU2NCkKICAgICAgICAgZWxzZSBpZiAoY29uc3REb3VibGVPcHQgPT0gSGFzQ29uc3REb3Vi
bGVPcGVyYW5kT3B0aW1pemF0aW9uICYmIHJpZ2h0Q2hpbGQtPmlzRG91YmxlQ29uc3RhbnQoKSkK
ICAgICAgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdERvdWJsZShyaWdodENoaWxkLT5hc051
bWJlcigpKTsKLSNlbmRpZgogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFsZWZ0T3BlcmFuZC5p
c0NvbnN0KCkgfHwgIXJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpOwogCkBAIC0xNzQ3LDggKzE3NDQs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2Rl
LCAiQmFkIHVzZSBraW5kIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKKworI2lmIEZUTF9VU0VTX0IzCisgICAgICAgICAgICBlbWl0QmluYXJ5
U25pcHBldDxKSVRTdWJHZW5lcmF0b3I+KG9wZXJhdGlvblZhbHVlU3ViKTsKKyNlbHNlIC8vIEZU
TF9VU0VTX0IzCiAgICAgICAgICAgICBjb21waWxlVW50eXBlZEJpbmFyeU9wPEFyaXRoU3ViRGVz
Y3JpcHRvciwgRG9lc05vdEhhdmVDb25zdEludDMyT3BlcmFuZE9wdGltaXphdGlvbiwgRG9lc05v
dEhhdmVDb25zdERvdWJsZU9wZXJhbmRPcHRpbWl6YXRpb24+KCk7CisjZW5kaWYgLy8gRlRMX1VT
RVNfQjMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTczNzUsNiArNzM3Niw3
MCBAQCBwcml2YXRlOgogICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShtX291dC5ib29sZWFu
LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgfQogCisjaWYgRlRMX1VTRVNfQjMKKyAg
ICBlbnVtIFNjcmF0Y2hGUFJVc2FnZSB7CisgICAgICAgIERvbnROZWVkU2NyYXRjaEZQUiwKKyAg
ICAgICAgTmVlZFNjcmF0Y2hGUFIKKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJpbmFy
eUFyaXRoT3BHZW5lcmF0b3IsIFNjcmF0Y2hGUFJVc2FnZSBzY3JhdGNoRlBSVXNhZ2UgPSBEb250
TmVlZFNjcmF0Y2hGUFI+CisgICAgdm9pZCBlbWl0QmluYXJ5U25pcHBldChKX0pJVE9wZXJhdGlv
bl9FSkogc2xvd1BhdGhGdW5jdGlvbikKKyAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CisgICAgICAgIAorICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGRvIGV4Y2VwdGlvbnMu
CisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2
ODYKKyAgICAgICAgICAgIAorICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUobm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxk
MigpKTsKKworICAgICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChtX3N0YXRlLmZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5k
IHJpZ2h0T3BlcmFuZChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUo
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0g
bV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChsZWZ0
LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKHJp
Z2h0LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAg
ICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVt
R1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNo
UmVnaXN0ZXJzID0gMjsKKyAgICAgICAgaWYgKHNjcmF0Y2hGUFJVc2FnZSA9PSBOZWVkU2NyYXRj
aEZQUikKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycysrOwor
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBw
YXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
KyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBC
b3g8QmluYXJ5QXJpdGhPcEdlbmVyYXRvcj46OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgSlNWYWx1ZVJlZ3MocGFyYW1zWzBdLmdwcigpKSwK
KyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgSlNWYWx1
ZVJlZ3MocGFyYW1zWzJdLmdwcigpKSwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmZwU2Ny
YXRjaCgwKSwgcGFyYW1zLmZwU2NyYXRjaCgxKSwgcGFyYW1zLmdwU2NyYXRjaCgwKSwKKyAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEZQUlVzYWdlID09IE5lZWRTY3JhdGNoRlBSID8gcGFyYW1z
LmZwU2NyYXRjaCgyKSA6IEludmFsaWRGUFJSZWcpOworCisgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5l
bmRKdW1wTGlzdCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBkb25lID0gaml0LmxhYmVsKCk7CisKKyAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0
ZVBhdGgoCisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxv
d1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gc29tZXRoaW5nLgorICAgICAgICAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOworCisgICAg
ICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZq
aXQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBq
aXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
ZXhjZXB0aW9ucywgc2xvd1BhdGhGdW5jdGlvbiwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0u
Z3ByKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzJdLmdwcigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZqaXQpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHNldEpTVmFs
dWUocGF0Y2hwb2ludCk7CisgICAgfQorI2VuZGlmIC8vIEZUTF9VU0VTX0IzCisKICAgICBMVmFs
dWUgYWxsb2NhdGVDZWxsKExWYWx1ZSBhbGxvY2F0b3IsIExCYXNpY0Jsb2NrIHNsb3dQYXRoKQog
ICAgIHsKICAgICAgICAgTEJhc2ljQmxvY2sgc3VjY2VzcyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgib2JqZWN0IGFsbG9jYXRpb24gc3VjY2VzcyIpKTsKQEAgLTk4NjAsNyArOTkyNSw2IEBAIHBy
aXZhdGU6CiAgICAgICAgIHJldHVybiBtX2Jsb2Nrcy5nZXQoYmxvY2spOwogICAgIH0KIAotCiAj
aWYgRlRMX1VTRVNfQjMKICAgICBPU1JFeGl0RGVzY3JpcHRvciogYXBwZW5kT1NSRXhpdERlc2Ny
aXB0b3IoRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hWYWx1ZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vYmplY3Qtc3Vi
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9v
YmplY3Qtc3ViLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZv
byhhLCBiKSB7CisgICAgcmV0dXJuIGEgLSBiOworfQorCitub0lubGluZShmb28pOworCit2YXIg
dGhpbmdzID0gW3t2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQ7IH19XTsKK3ZhciByZXN1
bHRzID0gWzNdOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyh0aGluZ3NbaSAlIHRoaW5ncy5sZW5ndGhdLCAxKTsKKyAgICB2YXIgZXhw
ZWN0ZWQgPSByZXN1bHRzW2kgJSByZXN1bHRzLmxlbmd0aF07CisgICAgaWYgKHJlc3VsdCAhPSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciBpID0gIiArIGkg
KyAiOiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3VudHlwZWQtc3ViLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdW50eXBlZC1zdWIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3VudHlwZWQtc3ViLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGEgLSBiOwor
fQorCitub0lubGluZShmb28pOworCit2YXIgdGhpbmdzID0gWzEsIDIuNSwgIjMiLCB7dmFsdWVP
ZjogZnVuY3Rpb24oKSB7IHJldHVybiA0OyB9fV07Cit2YXIgcmVzdWx0cyA9IFswLCAxLjUsIDIs
IDNdOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyh0aGluZ3NbaSAlIHRoaW5ncy5sZW5ndGhdLCAxKTsKKyAgICB2YXIgZXhwZWN0ZWQg
PSByZXN1bHRzW2kgJSByZXN1bHRzLmxlbmd0aF07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciBpID0gIiArIGkgKyAiOiAi
ICsgcmVzdWx0OworfQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268219</attachid>
            <date>2016-01-04 12:33:43 -0800</date>
            <delta_ts>2016-01-04 12:38:20 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9117</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NTQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBkbyB0aGUgQXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjcwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUg
QXJpdGhTdWIgYmluYXJ5IHNuaXBwZXQgZ2VuZXJhdG9yIGluIEZUTCBCMy4KKworICAgICAgICBX
aGlsZSBkb2luZyB0aGlzLCBJIGRpc2NvdmVyZWQgdGhhdCB0aGUgREZHIHR5cGUgaW5mZXJlbmNl
IGxvZ2ljIGZvciBBcml0aFN1YiBjb250YWlucyBhCisgICAgICAgIGNsYXNzaWMgbWlzdGFrZTog
aXQgY2F1c2VzIHRoZSBzbmlwcGV0cyB0byBraWNrIGluIHdoZW4gdGhlIHR5cGUgc2V0IGRvZXMg
bm90IGNvbnRhaW4gbnVtYmVycworICAgICAgICByYXRoZXIgdGhhbiBraWNraW5nIGluIHdoZW4g
dGhlIHR5cGUgc2V0IGNvbnRhaW5zIG5vbi1udW1iZXJzLiBTbywgdGhlIG9yaWdpbmFsIHRlc3Qg
dGhhdCBJCisgICAgICAgIHdyb3RlIGZvciB0aGlzIGRvZXNuJ3Qgd29yayByaWdodCAoaXQgcnVu
cyB0byBjb21wbGV0aW9uIGJ1dCBPU1IgZXhpdHMgYWQgaW5maW5pdHVtKS4gSSB3cm90ZQorICAg
ICAgICBhIHNlY29uZCB0ZXN0IHRoYXQgaXMgc2ltcGxlciwgYW5kIHRoYXQgb25lIHNob3dzIHRo
YXQgdGhlIGJpbmFyeSBzbmlwcGV0cyAid29yayIuIFRoYXQncworICAgICAgICBzb3J0IG9mIGEg
am9rZSB0aG91Z2gsIHNpbmNlIHRoZSBvbmx5IHdheSB0byB0cmlnZ2VyIGJpbmFyeSBzbmlwcGV0
cyBpcyB0byBuZXZlciBwYXNzIG51bWJlcnMKKyAgICAgICAgYW5kIHRoZSBvbmx5IHdheSB0byBh
Y3R1YWxseSBjYXVzZSBhIGJpbmFyeSBzbmlwcGV0IHRvIGRvIG1lYW5pbmZ1bCB3b3JrIGlzIHRv
IHBhc3MgbnVtYmVycy4KKyAgICAgICAgSSBmaWxlZCBhIGJ1ZyBhYm91dCB0aGlzIG1lc3M6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MDguCisKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVVbnR5cGVkQmluYXJ5T3ApOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aEFkZE9yU3ViKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpub25TcGVjdWxhdGl2ZUNvbXBhcmUpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVtaXRCaW5hcnlTbmlwcGV0KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphbGxvY2F0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd0Jsb2NrKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0RGVzY3JpcHRv
cik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKHRoaW5ncy52YWx1ZU9mKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvdW50eXBlZC1zdWIuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKHZhbHVl
T2YpOgorCiAyMDE2LTAxLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgZGlzYWJsZSBGVEwgQjMgZm9yIG5vdy4gSSBkaWRuJ3QgaW50ZW5k
IHRvIGVuYWJsZSBpdCB5ZXQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTk0NTQxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiRlRMT3V0cHV0LmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtz
LmgiCiAjaW5jbHVkZSAiRlRMV2VpZ2h0ZWRUYXJnZXQuaCIKKyNpbmNsdWRlICJKSVRTdWJHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJKU0Fycm93RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmF0b3JGdW5jdGlvbi5oIgpAQCAtMTA4NywyMCArMTA4
OCwxNiBAQCBwcml2YXRlOgogCiAgICAgICAgIGlmIChjb25zdEludDMyT3B0ID09IEhhc0NvbnN0
SW50MzJPcGVyYW5kT3B0aW1pemF0aW9uICYmIGxlZnRDaGlsZC0+aXNJbnQzMkNvbnN0YW50KCkp
CiAgICAgICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGxlZnRDaGlsZC0+YXNJbnQz
MigpKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBlbHNlIGlmIChjb25zdERvdWJsZU9w
dCA9PSBIYXNDb25zdERvdWJsZU9wZXJhbmRPcHRpbWl6YXRpb24gJiYgbGVmdENoaWxkLT5pc0Rv
dWJsZUNvbnN0YW50KCkpCiAgICAgICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdERvdWJsZShs
ZWZ0Q2hpbGQtPmFzTnVtYmVyKCkpOwotI2VuZGlmCiAKICAgICAgICAgaWYgKGxlZnRPcGVyYW5k
LmlzQ29uc3QoKSkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc25pcHBldCBkb2VzIG5v
dCBzdXBwb3J0IGJvdGggb3BlcmFuZHMgYmVpbmcgY29uc3RhbnQsIGlmIHRoZSBsZWZ0CiAgICAg
ICAgICAgICAvLyBvcGVyYW5kIGlzIGFscmVhZHkgYSBjb25zdGFudCwgd2UnbGwganVzdCBwcmV0
ZW5kIHRoZSByaWdodCBvcGVyYW5kIGlzIG5vdC4KICAgICAgICAgfSBlbHNlIGlmIChjb25zdElu
dDMyT3B0ID09IEhhc0NvbnN0SW50MzJPcGVyYW5kT3B0aW1pemF0aW9uICYmIHJpZ2h0Q2hpbGQt
PmlzSW50MzJDb25zdGFudCgpKQogICAgICAgICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50
MzIocmlnaHRDaGlsZC0+YXNJbnQzMigpKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBl
bHNlIGlmIChjb25zdERvdWJsZU9wdCA9PSBIYXNDb25zdERvdWJsZU9wZXJhbmRPcHRpbWl6YXRp
b24gJiYgcmlnaHRDaGlsZC0+aXNEb3VibGVDb25zdGFudCgpKQogICAgICAgICAgICAgcmlnaHRP
cGVyYW5kLnNldENvbnN0RG91YmxlKHJpZ2h0Q2hpbGQtPmFzTnVtYmVyKCkpOwotI2VuZGlmCiAK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWxlZnRPcGVyYW5kLmlzQ29uc3QoKSB8fCAhcmlnaHRP
cGVyYW5kLmlzQ29uc3QoKSk7CiAKQEAgLTE3NDcsOCArMTc0NCwxMiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIERGR19DUkFTSChtX2dyYXBoLCBtX25vZGUsICJCYWQgdXNlIGtpbmQiKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisj
aWYgRlRMX1VTRVNfQjMKKyAgICAgICAgICAgIGVtaXRCaW5hcnlTbmlwcGV0PEpJVFN1YkdlbmVy
YXRvcj4ob3BlcmF0aW9uVmFsdWVTdWIpOworI2Vsc2UgLy8gRlRMX1VTRVNfQjMKICAgICAgICAg
ICAgIGNvbXBpbGVVbnR5cGVkQmluYXJ5T3A8QXJpdGhTdWJEZXNjcmlwdG9yLCBEb2VzTm90SGF2
ZUNvbnN0SW50MzJPcGVyYW5kT3B0aW1pemF0aW9uLCBEb2VzTm90SGF2ZUNvbnN0RG91YmxlT3Bl
cmFuZE9wdGltaXphdGlvbj4oKTsKKyNlbmRpZiAvLyBGVExfVVNFU19CMwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzM3NSw2ICs3Mzc2LDcwIEBAIHByaXZhdGU6CiAgICAg
ICAgIHNldEJvb2xlYW4obV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIGZhc3RSZXN1bHQsIHNsb3dS
ZXN1bHQpKTsKICAgICB9CiAKKyNpZiBGVExfVVNFU19CMworICAgIGVudW0gU2NyYXRjaEZQUlVz
YWdlIHsKKyAgICAgICAgRG9udE5lZWRTY3JhdGNoRlBSLAorICAgICAgICBOZWVkU2NyYXRjaEZQ
UgorICAgIH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmluYXJ5QXJpdGhPcEdlbmVyYXRvciwg
U2NyYXRjaEZQUlVzYWdlIHNjcmF0Y2hGUFJVc2FnZSA9IERvbnROZWVkU2NyYXRjaEZQUj4KKyAg
ICB2b2lkIGVtaXRCaW5hcnlTbmlwcGV0KEpfSklUT3BlcmF0aW9uX0VKSiBzbG93UGF0aEZ1bmN0
aW9uKQorICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKKyAgICAgICAgCisgICAg
ICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gZXhjZXB0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4NgorICAgICAgICAgICAgCisg
ICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIFNu
aXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSku
cmVzdWx0VHlwZSgpKTsKKyAgICAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkucmVzdWx0VHlwZSgpKTsKKyAgICAgICAgICAgIAor
ICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KElu
dDY0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKGxlZnQsIFZhbHVlUmVwOjpTb21lUmVn
aXN0ZXIpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQocmlnaHQsIFZhbHVlUmVwOjpTb21l
UmVnaXN0ZXIpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJl
cDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMg
PSAxOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSAyOworICAg
ICAgICBpZiAoc2NyYXRjaEZQUlVzYWdlID09IE5lZWRTY3JhdGNoRlBSKQorICAgICAgICAgICAg
cGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzKys7CisgICAgICAgIHBhdGNocG9pbnQt
PmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAg
U3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVy
YXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxCaW5hcnlBcml0aE9wR2Vu
ZXJhdG9yPjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgICAgICBsZWZ0T3BlcmFuZCwgcmlnaHRP
cGVyYW5kLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAorICAgICAgICAgICAgICAgICAg
ICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMl0uZ3By
KCkpLAorICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZnBTY3JhdGNoKDApLCBwYXJhbXMuZnBT
Y3JhdGNoKDEpLCBwYXJhbXMuZ3BTY3JhdGNoKDApLAorICAgICAgICAgICAgICAgICAgICBzY3Jh
dGNoRlBSVXNhZ2UgPT0gTmVlZFNjcmF0Y2hGUFIgPyBwYXJhbXMuZnBTY3JhdGNoKDIpIDogSW52
YWxpZEZQUlJlZyk7CisKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBh
dGgoaml0KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmVuZEp1bXBMaXN0KCkubGluaygm
aml0KTsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFi
ZWwoKTsKKworICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aCgKKyAgICAgICAgICAg
ICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IE1ha2UgdGhpcyBkbyBzb21ldGhpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnM7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wTGlzdCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpz
dGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGppdCwgbm9kZS0+b3JpZ2luLnNl
bWFudGljLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleGNlcHRpb25zLCBzbG93UGF0
aEZ1bmN0aW9uLCBwYXJhbXNbMF0uZ3ByKCksIHBhcmFtc1sxXS5ncHIoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKKyAg
ICB9CisjZW5kaWYgLy8gRlRMX1VTRVNfQjMKKwogICAgIExWYWx1ZSBhbGxvY2F0ZUNlbGwoTFZh
bHVlIGFsbG9jYXRvciwgTEJhc2ljQmxvY2sgc2xvd1BhdGgpCiAgICAgewogICAgICAgICBMQmFz
aWNCbG9jayBzdWNjZXNzID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJvYmplY3QgYWxsb2NhdGlv
biBzdWNjZXNzIikpOwpAQCAtOTg2MCw3ICs5OTI1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIG1fYmxvY2tzLmdldChibG9jayk7CiAgICAgfQogCi0KICNpZiBGVExfVVNFU19CMwogICAg
IE9TUkV4aXREZXNjcmlwdG9yKiBhcHBlbmRPU1JFeGl0RGVzY3JpcHRvcihGb3JtYXR0ZWRWYWx1
ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvb2JqZWN0LXN1Yi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29iamVjdC1zdWIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1
cm4gYSAtIGI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciB0aGluZ3MgPSBbe3ZhbHVlT2Y6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDsgfX1dOwordmFyIHJlc3VsdHMgPSBbM107CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHRoaW5n
c1tpICUgdGhpbmdzLmxlbmd0aF0sIDEpOworICAgIHZhciBleHBlY3RlZCA9IHJlc3VsdHNbaSAl
IHJlc3VsdHMubGVuZ3RoXTsKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yIGkgPSAiICsgaSArICI6ICIgKyByZXN1bHQ7Cit9
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdW50eXBlZC1zdWIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy91bnR5
cGVkLXN1Yi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdW50eXBlZC1zdWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVu
Y3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYSAtIGI7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK3ZhciB0aGluZ3MgPSBbMSwgMi41LCAiMyIsIHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0
dXJuIDQ7IH19XTsKK3ZhciByZXN1bHRzID0gWzAsIDEuNSwgMiwgM107CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHRoaW5nc1tpICUg
dGhpbmdzLmxlbmd0aF0sIDEpOworICAgIHZhciBleHBlY3RlZCA9IHJlc3VsdHNbaSAlIHJlc3Vs
dHMubGVuZ3RoXTsKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQgZm9yIGkgPSAiICsgaSArICI6ICIgKyByZXN1bHQ7Cit9CisK
</data>
<flag name="review"
          id="293166"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>