Merge

Fri, 30 Jun 2017 23:59:34 -0700

author
asaha
date
Fri, 30 Jun 2017 23:59:34 -0700
changeset 2175
d1b779ab8225
parent 2163
e7b44329f4ec
parent 2079
5bea43f7777a
child 2176
3a44d3db2a1a

Merge

.hgtags file | annotate | diff | comparison | revisions
THIRD_PARTY_README file | annotate | diff | comparison | revisions
     1.1 --- a/.hgtags	Fri Jun 02 15:28:52 2017 -0700
     1.2 +++ b/.hgtags	Fri Jun 30 23:59:34 2017 -0700
     1.3 @@ -683,5 +683,36 @@
     1.4  dfd626733d62e3e705f4e746dd0917b7ebc4c601 jdk8u131-b11
     1.5  0f9ad0ada320e0ba59abe28642b967ff97273cf8 jdk8u141-b00
     1.6  7c09d30a05f1d5dbb6765faea282840f693cb68f jdk8u141-b01
     1.7 +a67daf8d1982fbdc9e45217e196484cab21c0d8c jdk8u141-b02
     1.8 +6b724b0b7c826c097d3e55056c5fed4cbb0e1647 jdk8u141-b03
     1.9 +30a31e71271569b0547fdef7b6b442dcf54fb0a7 jdk8u141-b04
    1.10 +f7fc5fc0e2cbcac54672dde87e4023e1a3fa9be2 jdk8u141-b05
    1.11 +bc4cfc663ed4144a41f88ac7b18c36691e7217d2 jdk8u141-b06
    1.12 +09cdd1bd4482a48a1dd6844f4fab883d8dfa1997 jdk8u141-b07
    1.13 +fcb93dde2f05cb5bd22a872dd62550e6060f31c6 jdk8u141-b08
    1.14 +d806b47966696c4535bf47fd860d5850cc9d013c jdk8u141-b09
    1.15 +e47b42f887ba51e27db2a9882eb10d2ee16830aa jdk8u141-b10
    1.16 +1f5822db72c6d27d8278e5e7d6ed179ab04905e5 jdk8u141-b11
    1.17 +31e8c2a1e8f7637d0f5e5b920b30536eee87d665 jdk8u141-b12
    1.18 +2c1a74bca789006be1cc7fc642048ade06fef2f2 jdk8u141-b13
    1.19 +8c329eab0dac3630854a56f2485f9862040bffdf jdk8u141-b14
    1.20  6a5473932aff2d9c0df2cdc6e1800dd7c374232f jdk8u151-b00
    1.21 +681ab42e7c73ba151256f88b7877f5ca4101e63d jdk8u151-b01
    1.22 +296b5f81b2c28b5d7eea4a7051eae0ec34f5ec05 jdk8u151-b02
    1.23 +18eb73eb84c5395b3efcafa43ce224565eca02b3 jdk8u122-b00
    1.24 +9e615ea961fe5732813ed7b273606e7337ea2234 jdk8u122-b01
    1.25 +2f0b11882cb7ddb10e35682ab9e8343919a71c54 jdk8u122-b02
    1.26 +df2a2824284f97c5edb9b9c2e6d18bb4ff838199 jdk8u122-b03
    1.27 +df2a2824284f97c5edb9b9c2e6d18bb4ff838199 jdk8u122-b03
    1.28 +0000000000000000000000000000000000000000 jdk8u122-b03
    1.29 +0000000000000000000000000000000000000000 jdk8u122-b03
    1.30 +12650d23a8fd1b27a0d28c6a276fdecf01805294 jdk8u122-b03
    1.31 +3c3b4e793e7c6255a840844db077ef466940035c jdk8u122-b04
    1.32 +30dc0c72f3d0aff34b6d421208b18f384d05d761 jdk8u132-b00
    1.33 +91d33aea2714e63796eeab0e63e38c9d2568c00c jdk8u152-b00
    1.34 +50dac2fd8689dbb820d887ce3919708d5d042891 jdk8u152-b01
    1.35 +01bbd310156db7a75a46a7320d1f49beff844472 jdk8u152-b02
    1.36 +2a01d94fea9a86b4038a93622f62b0986083f67e jdk8u152-b03
    1.37 +9dce75561a92f096d822ebb7eb76810f191fe522 jdk8u152-b04
    1.38 +cdb7d9454d254e95c73d6dc77077ab2c198e2ad6 jdk8u152-b05
    1.39  4c0e76ad6a499b51cb7653610fb396895470f770 jdk8u161-b00
     2.1 --- a/ASSEMBLY_EXCEPTION	Fri Jun 02 15:28:52 2017 -0700
     2.2 +++ b/ASSEMBLY_EXCEPTION	Fri Jun 30 23:59:34 2017 -0700
     2.3 @@ -1,27 +1,27 @@
     2.4  
     2.5  OPENJDK ASSEMBLY EXCEPTION
     2.6  
     2.7 -The OpenJDK source code made available by Sun at openjdk.java.net and
     2.8 -openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
     2.9 -GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
    2.10 +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
    2.11 +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU
    2.12 +General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
    2.13  only ("GPL2"), with the following clarification and special exception.
    2.14  
    2.15      Linking this OpenJDK Code statically or dynamically with other code
    2.16      is making a combined work based on this library.  Thus, the terms
    2.17      and conditions of GPL2 cover the whole combination.
    2.18  
    2.19 -    As a special exception, Sun gives you permission to link this
    2.20 -    OpenJDK Code with certain code licensed by Sun as indicated at
    2.21 +    As a special exception, Oracle gives you permission to link this
    2.22 +    OpenJDK Code with certain code licensed by Oracle as indicated at
    2.23      http://openjdk.java.net/legal/exception-modules-2007-05-08.html
    2.24      ("Designated Exception Modules") to produce an executable,
    2.25      regardless of the license terms of the Designated Exception Modules,
    2.26      and to copy and distribute the resulting executable under GPL2,
    2.27      provided that the Designated Exception Modules continue to be
    2.28 -    governed by the licenses under which they were offered by Sun.
    2.29 +    governed by the licenses under which they were offered by Oracle.
    2.30  
    2.31 -As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
    2.32 -build an executable that includes those portions of necessary code that Sun
    2.33 -could not provide under GPL2 (or that Sun has provided under GPL2 with the
    2.34 -Classpath exception).  If you modify or add to the OpenJDK code, that new
    2.35 -GPL2 code may still be combined with Designated Exception Modules if the
    2.36 -new code is made subject to this exception by its copyright holder.
    2.37 +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
    2.38 +to build an executable that includes those portions of necessary code that
    2.39 +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
    2.40 +with the Classpath exception).  If you modify or add to the OpenJDK code,
    2.41 +that new GPL2 code may still be combined with Designated Exception Modules
    2.42 +if the new code is made subject to this exception by its copyright holder.
     3.1 --- a/THIRD_PARTY_README	Fri Jun 02 15:28:52 2017 -0700
     3.2 +++ b/THIRD_PARTY_README	Fri Jun 30 23:59:34 2017 -0700
     3.3 @@ -7,7 +7,7 @@
     3.4  
     3.5  --- begin of LICENSE ---
     3.6  
     3.7 -Copyright (c) 2000-2011 France Télécom
     3.8 +Copyright (c) 2000-2011 France T??l??com
     3.9  All rights reserved.
    3.10  
    3.11  Redistribution and use in source and binary forms, with or without
    3.12 @@ -285,13 +285,53 @@
    3.13  form with the JDK 8 and OpenJDK 8 source distributions, and as object code in
    3.14  the JRE 8 & JDK 8 runtimes.
    3.15  
    3.16 -In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do
    3.17 +In the case of the JRE & JDK runtimes, the terms of the Oracle license do
    3.18  NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
    3.19  following license, separately from Oracle's JDK & JRE.  If you do not wish to
    3.20 -install the Elliptic Curve Cryptography library, you may delete the library
    3.21 -named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows
    3.22 -systems) from the JRE bin directory reserved for native libraries.
    3.23 -
    3.24 +install the Elliptic Curve Cryptography library, you may delete the
    3.25 +Elliptic Curve Cryptography library:
    3.26 +   - On Solaris and Linux systems: delete $(JAVA_HOME)/lib/libsunec.so
    3.27 +   - On Windows systems: delete $(JAVA_HOME)\bin\sunec.dll
    3.28 +   - On Mac systems, delete:
    3.29 +      for JRE: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/libsunec.dylib
    3.30 +      for JDK: $(JAVA_HOME)/jre/lib/libsunec.dylib
    3.31 +
    3.32 +Written Offer for ECC Source Code
    3.33 +  For third party technology that you receive from Oracle in binary form 
    3.34 +  which is licensed under an open source license that gives you the right
    3.35 +  to receive the source code for that binary, you can obtain a copy of 
    3.36 +  the applicable source code from this page:
    3.37 +     http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/native/sun/security/ec/impl
    3.38 +
    3.39 +  If the source code for the technology was not provided to you with the 
    3.40 +  binary, you can also receive a copy of the source code on physical 
    3.41 +  media by submitting a written request to:
    3.42 +
    3.43 +     Oracle America, Inc.
    3.44 +     Attn: Associate General Counsel,
    3.45 +     Development and Engineering Legal
    3.46 +     500 Oracle Parkway, 10th Floor
    3.47 +     Redwood Shores, CA 94065
    3.48 +
    3.49 +  Or, you may send an email to Oracle using the form at:
    3.50 +     http://www.oracle.com/goto/opensourcecode/request
    3.51 +
    3.52 +  Your request should include:
    3.53 +    - The name of the component or binary file(s) for which you are requesting 
    3.54 +      the source code
    3.55 +    - The name and version number of the Oracle product containing the binary
    3.56 +    - The date you received the Oracle product
    3.57 +    - Your name
    3.58 +    - Your company name (if applicable)
    3.59 +    - Your return mailing address and email and
    3.60 +    - A telephone number in the event we need to reach you.
    3.61 +
    3.62 +  We may charge you a fee to cover the cost of physical media and processing. 
    3.63 +  Your request must be sent (i) within three (3) years of the date you 
    3.64 +  received the Oracle product that included the component or binary 
    3.65 +  file(s) that are the subject of your request, or (ii) in the case of 
    3.66 +  code licensed under the GPL v3, for as long as Oracle offers spare 
    3.67 +  parts or customer support for that product model.
    3.68  
    3.69  --- begin of LICENSE ---
    3.70  
    3.71 @@ -809,7 +849,7 @@
    3.72  --- begin of LICENSE ---
    3.73  
    3.74  Copyright notice
    3.75 -Copyright © 2011 Ecma International
    3.76 +Copyright ?? 2011 Ecma International
    3.77  Ecma International
    3.78  Rue du Rhone 114
    3.79  CH-1204 Geneva
    3.80 @@ -870,70 +910,13 @@
    3.81  OF SUCH DAMAGE.
    3.82  --- end of LICENSE ---
    3.83  
    3.84 -%% This notice is provided with respect to Dynalink library which is included
    3.85 -with the Nashorn technology.
    3.86 -
    3.87 ---- begin of LICENSE ---
    3.88 -Copyright (c) 2009-2013, Attila Szegedi
    3.89 -
    3.90 -Redistribution and use in source and binary forms, with or without
    3.91 -modification, are permitted provided that the following conditions are
    3.92 -met:
    3.93 -* Redistributions of source code must retain the above copyright
    3.94 -  notice, this list of conditions and the following disclaimer.
    3.95 -* Redistributions in binary form must reproduce the above copyright
    3.96 -  notice, this list of conditions and the following disclaimer in the
    3.97 -  documentation and/or other materials provided with the distribution.
    3.98 -* Neither the name of the copyright holder nor the names of
    3.99 -  contributors may be used to endorse or promote products derived from
   3.100 -  this software without specific prior written permission.
   3.101 -
   3.102 -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
   3.103 -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   3.104 -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
   3.105 -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
   3.106 -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   3.107 -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   3.108 -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   3.109 -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
   3.110 -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   3.111 -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
   3.112 -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   3.113 ---- end of LICENSE ---
   3.114 -
   3.115 -%% This notice is provided with respect to Joni library which is included
   3.116 -with the Nashorn technology.
   3.117 -
   3.118 ---- begin of LICENSE ---
   3.119 -Permission is hereby granted, free of charge, to any person obtaining a copy of
   3.120 -this software and associated documentation files (the "Software"), to deal in
   3.121 -the Software without restriction, including without limitation the rights to
   3.122 -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
   3.123 -of the Software, and to permit persons to whom the Software is furnished to do
   3.124 -so, subject to the following conditions:
   3.125 -
   3.126 -The above copyright notice and this permission notice shall be included in all
   3.127 -copies or substantial portions of the Software.
   3.128 -
   3.129 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   3.130 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   3.131 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   3.132 -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   3.133 -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   3.134 -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   3.135 -SOFTWARE.
   3.136 -
   3.137 ---- end of LICENSE ---
   3.138 -
   3.139 --------------------------------------------------------------------------------
   3.140 -
   3.141  %% This notice is provided with respect to FontConfig 2.5, which may be 
   3.142  included with JRE 8, JDK 8, and OpenJDK 8 source distributions on
   3.143  Linux and Solaris.
   3.144  
   3.145  --- begin of LICENSE ---
   3.146  
   3.147 -Copyright © 2001,2003 Keith Packard
   3.148 +Copyright ?? 2001,2003 Keith Packard
   3.149  
   3.150  Permission to use, copy, modify, distribute, and sell this software and its
   3.151  documentation for any purpose is hereby granted without fee, provided that the
   3.152 @@ -956,6 +939,74 @@
   3.153  
   3.154  -------------------------------------------------------------------------------
   3.155  
   3.156 +%% This notice is provided with respect to freebXML Registry 3.0 & 3.1,
   3.157 +which may be included with JRE 8, JDK 8, and OpenJDK 8.
   3.158 +
   3.159 +--- begin of LICENSE ---
   3.160 +
   3.161 +freebxml:  Copyright (c) 2001 freebxml.org.  All rights reserved.
   3.162 +
   3.163 +The names "The freebXML Registry Project" and "freebxml Software
   3.164 +Foundation" must not be used to endorse or promote products derived
   3.165 +from this software or be used in a product name without prior
   3.166 +written permission. For written permission, please contact
   3.167 +ebxmlrr-team@lists.sourceforge.net.
   3.168 +
   3.169 +This software consists of voluntary contributions made by many individuals
   3.170 +on behalf of the the freebxml Software Foundation. For more information on
   3.171 +the freebxml Software Foundation, please see <http://www.freebxml.org/>.
   3.172 +
   3.173 +This product includes software developed by the Apache Software Foundation
   3.174 +(http://www.apache.org/).
   3.175 +
   3.176 +The freebxml License, Version 1.1 5
   3.177 +Copyright (c) 2001 freebxml.org. All rights reserved.
   3.178 +
   3.179 +Redistribution and use in source and binary forms, with or without
   3.180 +modification, are permitted provided that the following conditions
   3.181 +are met:
   3.182 +
   3.183 + 1. Redistributions of source code must retain the above copyright
   3.184 +    notice, this list of conditions and the following disclaimer.
   3.185 +
   3.186 + 2. Redistributions in binary form must reproduce the above copyright
   3.187 +    notice, this list of conditions and the following disclaimer in
   3.188 +    the documentation and/or other materials provided with the
   3.189 +    distribution.
   3.190 +
   3.191 + 3. The end-user documentation included with the redistribution, if
   3.192 +    any, must include the following acknowlegement:
   3.193 +       "This product includes software developed by
   3.194 +        freebxml.org (http://www.freebxml.org/)."
   3.195 +    Alternately, this acknowlegement may appear in the software itself,
   3.196 +    if and wherever such third-party acknowlegements normally appear.
   3.197 +
   3.198 + 4. The names "The freebXML Registry Project", "freebxml Software
   3.199 +    Foundation" must not be used to endorse or promote products derived
   3.200 +    from this software without prior written permission. For written
   3.201 +    permission, please contact ebxmlrr-team@lists.sourceforge.net.
   3.202 +
   3.203 + 5. Products derived from this software may not be called "freebxml",
   3.204 +    "freebXML Registry" nor may freebxml" appear in their names without
   3.205 +    prior written permission of the freebxml Group.
   3.206 +
   3.207 +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   3.208 +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   3.209 +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   3.210 +DISCLAIMED.  IN NO EVENT SHALL THE freebxml SOFTWARE FOUNDATION OR
   3.211 +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.212 +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   3.213 +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   3.214 +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   3.215 +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   3.216 +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   3.217 +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   3.218 +SUCH DAMAGE.
   3.219 +
   3.220 +--- end of LICENSE ---
   3.221 +
   3.222 +-------------------------------------------------------------------------------
   3.223 +
   3.224  %% This notice is provided with respect to IAIK PKCS#11 Wrapper, 
   3.225  which may be included with JRE 8, JDK 8, and OpenJDK 8.
   3.226  
   3.227 @@ -1083,6 +1134,47 @@
   3.228  
   3.229  --------------------------------------------------------------------------------
   3.230  
   3.231 +%% This notice is provided with respect to Jing 20030619, which may 
   3.232 +be included with JRE 8, JDK 8, and OpenJDK 8.
   3.233 +
   3.234 +--- begin of LICENSE  ---
   3.235 +
   3.236 +Copyright (c) 2001-2003 Thai Open Source Software Center Ltd All
   3.237 +rights reserved.
   3.238 +
   3.239 +Redistribution and use in source and binary forms, with or without
   3.240 +modification, are permitted provided that the following conditions
   3.241 +are met:
   3.242 +
   3.243 +Redistributions of source code must retain the above copyright
   3.244 +notice, this list of conditions and the following disclaimer.
   3.245 +
   3.246 +Redistributions in binary form must reproduce the above copyright
   3.247 +notice, this list of conditions and the following disclaimer in the
   3.248 +documentation and/or other materials provided with the distribution.
   3.249 +
   3.250 +Neither the name of the Thai Open Source Software Center Ltd nor
   3.251 +the names of its contributors may be used to endorse or promote
   3.252 +products derived from this software without specific prior written
   3.253 +permission.
   3.254 +
   3.255 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   3.256 +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   3.257 +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
   3.258 +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   3.259 +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.260 +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   3.261 +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   3.262 +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   3.263 +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   3.264 +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   3.265 +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   3.266 +SUCH DAMAGE.
   3.267 +
   3.268 +--- end of LICENSE  ---
   3.269 +
   3.270 +--------------------------------------------------------------------------------
   3.271 +
   3.272  %% This notice is provided with respect to Joni v1.1.9, which may be 
   3.273  included with JRE 8, JDK 8, and OpenJDK 8.
   3.274  
   3.275 @@ -1215,7 +1307,7 @@
   3.276  
   3.277  -------------------------------------------------------------------------------
   3.278  
   3.279 -%% Portions Copyright Eastman Kodak Company 1992
   3.280 +%% Portions Copyright Eastman Kodak Company 1991-2003
   3.281  
   3.282  -------------------------------------------------------------------------------
   3.283  
   3.284 @@ -1339,8 +1431,8 @@
   3.285  
   3.286  -------------------------------------------------------------------------------
   3.287  
   3.288 -%% This notice is provided with respect to GIFLIB 5.1.1 & libungif 4.1.3, which may be 
   3.289 -included with JRE 8, JDK 8, and OpenJDK 8.
   3.290 +%% This notice is provided with respect to GIFLIB 5.1.1 & libungif 4.1.3, 
   3.291 +which may be included with JRE 8, JDK 8, and OpenJDK 8.
   3.292  
   3.293  --- begin of LICENSE ---
   3.294  
   3.295 @@ -1972,67 +2064,45 @@
   3.296  
   3.297  -------------------------------------------------------------------------------
   3.298  
   3.299 -%% This notice is provided with respect to SAX 2.0.1, which may be included 
   3.300 -with JRE 8, JDK 8, and OpenJDK 8.
   3.301 -
   3.302 ---- begin of LICENSE ---
   3.303 -
   3.304 - SAX is free!
   3.305 -
   3.306 - In fact, it's not possible to own a license to SAX, since it's been placed in
   3.307 - the public domain.
   3.308 -
   3.309 - No Warranty
   3.310 -
   3.311 - Because SAX is released to the public domain, there is no warranty for the
   3.312 - design or for the software implementation, to the extent permitted by
   3.313 - applicable law. Except when otherwise stated in writing the copyright holders
   3.314 - and/or other parties provide SAX "as is" without warranty of any kind, either
   3.315 - expressed or implied, including, but not limited to, the implied warranties
   3.316 - of merchantability and fitness for a particular purpose. The entire risk as
   3.317 - to the quality and performance of SAX is with you. Should SAX prove
   3.318 - defective, you assume the cost of all necessary servicing, repair or
   3.319 - correction.
   3.320 -
   3.321 - In no event unless required by applicable law or agreed to in writing will
   3.322 - any copyright holder, or any other party who may modify and/or redistribute
   3.323 - SAX, be liable to you for damages, including any general, special, incidental
   3.324 - or consequential damages arising out of the use or inability to use SAX
   3.325 - (including but not limited to loss of data or data being rendered inaccurate
   3.326 - or losses sustained by you or third parties or a failure of the SAX to
   3.327 - operate with any other programs), even if such holder or other party has been
   3.328 - advised of the possibility of such damages.
   3.329 -
   3.330 - Copyright Disclaimers 
   3.331 -
   3.332 - This page includes statements to that effect by David Megginson, who would
   3.333 - have been able to claim copyright for the original work.  SAX 1.0
   3.334 -
   3.335 - Version 1.0 of the Simple API for XML (SAX), created collectively by the
   3.336 - membership of the XML-DEV mailing list, is hereby released into the public
   3.337 - domain.
   3.338 -
   3.339 - No one owns SAX: you may use it freely in both commercial and non-commercial
   3.340 - applications, bundle it with your software distribution, include it on a
   3.341 - CD-ROM, list the source code in a book, mirror the documentation at your own
   3.342 - web site, or use it in any other way you see fit.
   3.343 -
   3.344 - David Megginson, sax@megginson.com
   3.345 - 1998-05-11
   3.346 -
   3.347 - SAX 2.0 
   3.348 -
   3.349 - I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and
   3.350 - release all of the SAX 2.0 source code, compiled code, and documentation
   3.351 - contained in this distribution into the Public Domain. SAX comes with NO
   3.352 - WARRANTY or guarantee of fitness for any purpose.
   3.353 -
   3.354 - David Megginson, david@megginson.com
   3.355 - 2000-05-05
   3.356 -
   3.357 ---- end of LICENSE ---
   3.358 -
   3.359 --------------------------------------------------------------------------------
   3.360 +%% This notice is provided with respect to Relax NG Datatype 1.0, which 
   3.361 +may be included with JRE 8, JDK 8, and OpenJDK 8.  
   3.362 +
   3.363 +--- begin of LICENSE  ---
   3.364 +
   3.365 +Copyright (c) 2005, 2010 Thai Open Source Software Center Ltd
   3.366 +All rights reserved.
   3.367 +
   3.368 +Redistribution and use in source and binary forms, with or without
   3.369 +modification, are permitted provided that the following conditions are
   3.370 +met:
   3.371 +
   3.372 +    Redistributions of source code must retain the above copyright
   3.373 +    notice, this list of conditions and the following disclaimer.
   3.374 +
   3.375 +    Redistributions in binary form must reproduce the above copyright
   3.376 +    notice, this list of conditions and the following disclaimer in
   3.377 +    the documentation and/or other materials provided with the
   3.378 +    distribution.
   3.379 +
   3.380 +    Neither the names of the copyright holders nor the names of its
   3.381 +    contributors may be used to endorse or promote products derived
   3.382 +    from this software without specific prior written permission.
   3.383 +
   3.384 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   3.385 +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   3.386 +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   3.387 +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
   3.388 +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   3.389 +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   3.390 +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   3.391 +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   3.392 +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   3.393 +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   3.394 +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   3.395 +
   3.396 +--- end of LICENSE  ---
   3.397 +
   3.398 +--------------------------------------------------------------------------------
   3.399  
   3.400  %% This notice is provided with respect to SoftFloat version 2b, which may be 
   3.401  included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM.
   3.402 @@ -2142,16 +2212,16 @@
   3.403  Unicode Terms of Use
   3.404  
   3.405  For the general privacy policy governing access to this site, see the Unicode
   3.406 -Privacy Policy. For trademark usage, see the Unicode® Consortium Name and
   3.407 +Privacy Policy. For trademark usage, see the Unicode?? Consortium Name and
   3.408  Trademark Usage Policy.
   3.409  
   3.410  A. Unicode Copyright.
   3.411 -   1. Copyright © 1991-2013 Unicode, Inc. All rights reserved.
   3.412 +   1. Copyright ?? 1991-2013 Unicode, Inc. All rights reserved.
   3.413  
   3.414     2. Certain documents and files on this website contain a legend indicating
   3.415        that "Modification is permitted." Any person is hereby authorized,
   3.416        without fee, to modify such documents and files to create derivative
   3.417 -      works conforming to the Unicode® Standard, subject to Terms and
   3.418 +      works conforming to the Unicode?? Standard, subject to Terms and
   3.419        Conditions herein.
   3.420  
   3.421      3. Any person is hereby authorized, without fee, to view, use, reproduce,
   3.422 @@ -2217,14 +2287,14 @@
   3.423  
   3.424  E.Trademarks & Logos.
   3.425     1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode,
   3.426 -      Inc.  “The Unicode Consortium” and “Unicode, Inc.” are trade names of
   3.427 +      Inc.  ???The Unicode Consortium??? and ???Unicode, Inc.??? are trade names of
   3.428        Unicode, Inc.  Use of the information and materials found on this
   3.429 -      website indicates your acknowledgement of Unicode, Inc.’s exclusive
   3.430 +      website indicates your acknowledgement of Unicode, Inc.???s exclusive
   3.431        worldwide rights in the Unicode Word Mark, the Unicode Logo, and the
   3.432        Unicode trade names.
   3.433  
   3.434 -   2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark
   3.435 -      Policy”) are incorporated herein by reference and you agree to abide by
   3.436 +   2. The Unicode Consortium Name and Trademark Usage Policy (???Trademark
   3.437 +      Policy???) are incorporated herein by reference and you agree to abide by
   3.438        the provisions of the Trademark Policy, which may be changed from time
   3.439        to time in the sole discretion of Unicode, Inc.
   3.440  
   3.441 @@ -2247,12 +2317,12 @@
   3.442  
   3.443     2. Modification by Unicode.  Unicode shall have the right to modify this
   3.444        Agreement at any time by posting it to this site. The user may not
   3.445 -      assign any part of this Agreement without Unicode’s prior written
   3.446 +      assign any part of this Agreement without Unicode???s prior written
   3.447        consent.
   3.448  
   3.449     3. Taxes. The user agrees to pay any taxes arising from access to this
   3.450        website or use of the information herein, except for those based on
   3.451 -      Unicode’s net income.
   3.452 +      Unicode???s net income.
   3.453  
   3.454     4. Severability.  If any provision of this Agreement is declared invalid or
   3.455        unenforceable, the remaining provisions of this Agreement shall remain
   3.456 @@ -2281,7 +2351,7 @@
   3.457  
   3.458  COPYRIGHT AND PERMISSION NOTICE
   3.459  
   3.460 -Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
   3.461 +Copyright ?? 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
   3.462  Terms of Use in http://www.unicode.org/copyright.html.
   3.463  
   3.464  Permission is hereby granted, free of charge, to any person obtaining a copy
   3.465 @@ -2518,26 +2588,66 @@
   3.466  
   3.467  --- begin of LICENSE ---
   3.468  
   3.469 -          Licenses
   3.470 -The X.Org Foundation March 2004
   3.471 -
   3.472 -1. Introduction
   3.473 -
   3.474 -The X.org Foundation X Window System distribution is a compilation of code and
   3.475 -documentation from many sources. This document is intended primarily as a
   3.476 -guide to the licenses used in the distribution: you must check each file
   3.477 -and/or package for precise redistribution terms. None-the-less, this summary
   3.478 -may be useful to many users. No software incorporating the XFree86 1.1 license
   3.479 -has been incorporated.
   3.480 -
   3.481 -This document is based on the compilation from XFree86.
   3.482 -
   3.483 -2. XFree86 License
   3.484 -
   3.485 -XFree86 code without an explicit copyright is covered by the following
   3.486 -copyright/license:
   3.487 -
   3.488 -Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
   3.489 +This is the copyright for the files in src/solaris/native/sun/awt: list.h, 
   3.490 +multiVis.h, wsutils.h, list.c, multiVis.c
   3.491 +Copyright (c) 1994 Hewlett-Packard Co.
   3.492 +Copyright (c) 1996 X Consortium
   3.493 +
   3.494 +Permission is hereby granted, free of charge, to any person obtaining
   3.495 +a copy of this software and associated documentation files (the
   3.496 +"Software"), to deal in the Software without restriction, including
   3.497 +without limitation the rights to use, copy, modify, merge, publish,
   3.498 +distribute, sublicense, and sell copies of the Software, and to
   3.499 +permit persons to whom the Software is furnished to do so, subject to
   3.500 +the following conditions:
   3.501 +
   3.502 +The above copyright notice and this permission notice shall be included
   3.503 +in all copies or substantial portions of the Software.
   3.504 +
   3.505 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   3.506 +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   3.507 +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   3.508 +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
   3.509 +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
   3.510 +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   3.511 +OTHER DEALINGS IN THE SOFTWARE.
   3.512 +
   3.513 +Except as contained in this notice, the name of the X Consortium shall
   3.514 +not be used in advertising or otherwise to promote the sale, use or
   3.515 +other dealings in this Software without prior written authorization
   3.516 +from the X Consortium.
   3.517 +___________________________
   3.518 +The files in motif/lib/Xm/util included this copyright:mkdirhier.man,
   3.519 +xmkmf.man, chownxterm.c, makeg.man, mergelib.cpp, lndir.man, makestrs.man, 
   3.520 +checktree.c, lndir.c, makestrs.c
   3.521 +Copyright (c) 1993, 1994 X Consortium
   3.522 +
   3.523 +Permission is hereby granted, free of charge, to any person obtaining a
   3.524 +copy of this software and associated documentation files (the "Software"),
   3.525 +to deal in the Software without restriction, including without limitation
   3.526 +the rights to use, copy, modify, merge, publish, distribute, sublicense,
   3.527 +and/or sell copies of the Software, and to permit persons to whom the
   3.528 +Software furnished to do so, subject to the following conditions:
   3.529 +
   3.530 +The above copyright notice and this permission notice shall be included in
   3.531 +all copies or substantial portions of the Software.
   3.532 +
   3.533 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   3.534 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   3.535 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
   3.536 +THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   3.537 +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
   3.538 +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   3.539 +SOFTWARE.
   3.540 +
   3.541 +Except as contained in this notice, the name of the X Consortium shall not
   3.542 +be used in advertising or otherwise to promote the sale, use or other
   3.543 +dealing in this Software without prior written authorization from the
   3.544 +X Consortium.
   3.545 +_____________________________
   3.546 +Xmos_r.h:
   3.547 +/*
   3.548 +Copyright (c) 1996 X Consortium
   3.549  
   3.550  Permission is hereby granted, free of charge, to any person obtaining a copy
   3.551  of this software and associated documentation files (the "Software"), to deal
   3.552 @@ -2546,773 +2656,153 @@
   3.553  copies of the Software, and to permit persons to whom the Software is
   3.554  furnished to do so, subject to the following conditions:
   3.555  
   3.556 -The above copyright notice and this permission notice shall be included in all
   3.557 -copies or substantial portions of the Software.
   3.558 +The above copyright notice and this permission notice shall be included in
   3.559 +all copies or substantial portions of the Software.
   3.560  
   3.561  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   3.562  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   3.563  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   3.564 -XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   3.565 -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   3.566 +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
   3.567 +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   3.568  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   3.569  
   3.570 -Except as contained in this notice, the name of the XFree86 Project shall not
   3.571 -be used in advertising or otherwise to promote the sale, use or other dealings
   3.572 -in this Software without prior written authorization from the XFree86 Project.
   3.573 -
   3.574 -3. Other Licenses
   3.575 -
   3.576 -Portions of code are covered by the following licenses/copyrights. See
   3.577 -individual files for the copyright dates.
   3.578 -
   3.579 -3.1. X/MIT Copyrights
   3.580 -
   3.581 -3.1.1. X Consortium
   3.582 -
   3.583 -Copyright (C) <date> X Consortium
   3.584 -
   3.585 -Permission is hereby granted, free of charge, to any person obtaining a copy
   3.586 -of this software and associated documentation files (the "Software"), to deal
   3.587 -in the Software without restriction, including without limitation the rights
   3.588 -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   3.589 -copies of the Software, and to permit persons to whom the Software is
   3.590 -furnished to do so, subject to the following conditions:
   3.591 -
   3.592 -The above copyright notice and this permission notice shall be included in all
   3.593 -copies or substantial portions of the Software.
   3.594 -
   3.595 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   3.596 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   3.597 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
   3.598 -CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
   3.599 -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   3.600 -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   3.601 -
   3.602  Except as contained in this notice, the name of the X Consortium shall not be
   3.603 -used in advertising or otherwise to promote the sale, use or other dealings in
   3.604 -this Software without prior written authorization from the X Consortium.
   3.605 -
   3.606 -X Window System is a trademark of X Consortium, Inc.
   3.607 -
   3.608 -3.1.2. The Open Group
   3.609 -
   3.610 -Copyright <date> The Open Group
   3.611 -
   3.612 -Permission to use, copy, modify, distribute, and sell this software and its
   3.613 -documentation for any purpose is hereby granted without fee, provided that the
   3.614 -above copyright notice appear in all copies and that both that copyright
   3.615 -notice and this permission notice appear in supporting documentation.
   3.616 -
   3.617 -The above copyright notice and this permission notice shall be included in all
   3.618 -copies or substantial portions of the Software.
   3.619 +used in advertising or otherwise to promote the sale, use or other dealings
   3.620 +in this Software without prior written authorization from the X Consortium.
   3.621 +*/
   3.622 +
   3.623 +_____________________________
   3.624 +Copyright notice for extutil.h:
   3.625 +Copyright 1989, 1998 The Open Group
   3.626 +
   3.627 +All Rights Reserved.
   3.628 +
   3.629 +The above copyright notice and this permission notice shall be included in
   3.630 +all copies or substantial portions of the Software.
   3.631  
   3.632  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   3.633  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   3.634  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   3.635 -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
   3.636 -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   3.637 -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   3.638 +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
   3.639 +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   3.640 +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   3.641  
   3.642  Except as contained in this notice, the name of The Open Group shall not be
   3.643 -used in advertising or otherwise to promote the sale, use or other dealings in
   3.644 -this Software without prior written authorization from The Open Group.  3.2.
   3.645 -Berkeley-based copyrights:
   3.646 -
   3.647 -o
   3.648 -3.2.1. General
   3.649 -
   3.650 -Redistribution and use in source and binary forms, with or without
   3.651 -modification, are permitted provided that the following conditions are met:
   3.652 -
   3.653 -   1. Redistributions of source code must retain the above copyright notice,
   3.654 -   this list of conditions and the following disclaimer.
   3.655 -
   3.656 -   2. Redistributions in binary form must reproduce the above copyright
   3.657 -   notice, this list of conditions and the following disclaimer in the
   3.658 -   documentation and/or other materials provided with the distribution.
   3.659 -
   3.660 -   3. The name of the author may not be used to endorse or promote products
   3.661 -   derived from this software without specific prior written permission.
   3.662 -
   3.663 -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
   3.664 -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   3.665 -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   3.666 -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.667 -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   3.668 -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   3.669 -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   3.670 -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   3.671 -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   3.672 -POSSIBILITY OF SUCH DAMAGE.  3.2.2. UCB/LBL
   3.673 -
   3.674 -Copyright (c) 1993 The Regents of the University of California. All rights
   3.675 -reserved.
   3.676 -
   3.677 -This software was developed by the Computer Systems Engineering group at
   3.678 -Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
   3.679 -Berkeley.
   3.680 -
   3.681 -All advertising materials mentioning features or use of this software must
   3.682 -display the following acknowledgement: This product includes software
   3.683 -developed by the University of California, Lawrence Berkeley Laboratory.
   3.684 -
   3.685 -Redistribution and use in source and binary forms, with or without
   3.686 -modification, are permitted provided that the following conditions are met:
   3.687 -
   3.688 -   1. Redistributions of source code must retain the above copyright notice,
   3.689 -   this list of conditions and the following disclaimer.
   3.690 -
   3.691 -   2. Redistributions in binary form must reproduce the above copyright
   3.692 -   notice, this list of conditions and the following disclaimer in the
   3.693 -   documentation and/or other materials provided with the distribution.
   3.694 -
   3.695 -   3. All advertising materials mentioning features or use of this software
   3.696 -   must display the following acknowledgement: This product includes software
   3.697 -   developed by the University of California, Berkeley and its contributors.
   3.698 -
   3.699 -   4. Neither the name of the University nor the names of its contributors may
   3.700 -   be used to endorse or promote products derived from this software without
   3.701 -   specific prior written permission.
   3.702 -
   3.703 -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
   3.704 -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   3.705 -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   3.706 -DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
   3.707 -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   3.708 -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   3.709 -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   3.710 -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   3.711 -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   3.712 -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.3. The
   3.713 -NetBSD Foundation, Inc.
   3.714 -
   3.715 -Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
   3.716 -
   3.717 -This code is derived from software contributed to The NetBSD Foundation by Ben
   3.718 -Collver <collver1@attbi.com>
   3.719 -
   3.720 -Redistribution and use in source and binary forms, with or without
   3.721 -modification, are permitted provided that the following conditions are met:
   3.722 -
   3.723 -   1. Redistributions of source code must retain the above copyright notice,
   3.724 -   this list of conditions and the following disclaimer.
   3.725 -
   3.726 -   2. Redistributions in binary form must reproduce the above copyright
   3.727 -   notice, this list of conditions and the following disclaimer in the
   3.728 -   documentation and/or other materials provided with the distribution.
   3.729 -
   3.730 -   3. All advertising materials mentioning features or use of this software
   3.731 -   must display the following acknowledgement: This product includes software
   3.732 -   developed by the NetBSD Foundation, Inc. and its contributors.
   3.733 -
   3.734 -   4. Neither the name of The NetBSD Foundation nor the names of its
   3.735 -   contributors may be used to endorse or promote products derived from this
   3.736 -   software without specific prior written permission.
   3.737 -
   3.738 -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS
   3.739 -IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   3.740 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   3.741 -DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
   3.742 -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   3.743 -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   3.744 -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   3.745 -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   3.746 -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   3.747 -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.4. Theodore
   3.748 -Ts'o.
   3.749 -
   3.750 -Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
   3.751 -reserved.
   3.752 -
   3.753 -Redistribution and use in source and binary forms, with or without
   3.754 -modification, are permitted provided that the following conditions are met:
   3.755 -
   3.756 -   1. Redistributions of source code must retain the above copyright notice,
   3.757 -   and the entire permission notice in its entirety, including the disclaimer
   3.758 -   of warranties.
   3.759 -
   3.760 -   2. Redistributions in binary form must reproduce the above copyright
   3.761 -   notice, this list of conditions and the following disclaimer in the
   3.762 -   documentation and/or other materials provided with the distribution.
   3.763 -
   3.764 -   3. he name of the author may not be used to endorse or promote products
   3.765 -   derived from this software without specific prior written permission.
   3.766 -
   3.767 -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
   3.768 -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   3.769 -FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
   3.770 -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.771 -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   3.772 -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   3.773 -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   3.774 -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   3.775 -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE
   3.776 -POSSIBILITY OF SUCH DAMAGE.  3.2.5. Theo de Raadt and Damien Miller
   3.777 -
   3.778 -Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
   3.779 -2001-2002 Damien Miller. All rights reserved.
   3.780 -
   3.781 -Redistribution and use in source and binary forms, with or without
   3.782 -modification, are permitted provided that the following conditions are met:
   3.783 -
   3.784 -   1. Redistributions of source code must retain the above copyright notice,
   3.785 -   this list of conditions and the following disclaimer.
   3.786 -
   3.787 -   2. Redistributions in binary form must reproduce the above copyright
   3.788 -   notice, this list of conditions and the following disclaimer in the
   3.789 -   documentation and/or other materials provided with the distribution.
   3.790 -
   3.791 -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
   3.792 -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   3.793 -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   3.794 -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.795 -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   3.796 -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   3.797 -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   3.798 -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   3.799 -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   3.800 -POSSIBILITY OF SUCH DAMAGE.  3.2.6. Todd C. Miller
   3.801 -
   3.802 -Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
   3.803 -
   3.804 -Permission to use, copy, modify, and distribute this software for any purpose
   3.805 -with or without fee is hereby granted, provided that the above copyright
   3.806 -notice and this permission notice appear in all copies.
   3.807 -
   3.808 -THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
   3.809 -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   3.810 -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR
   3.811 -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   3.812 -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
   3.813 -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
   3.814 -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  3.2.7. Thomas
   3.815 -Winischhofer
   3.816 -
   3.817 -Copyright (C) 2001-2004 Thomas Winischhofer
   3.818 -
   3.819 -Redistribution and use in source and binary forms, with or without
   3.820 -modification, are permitted provided that the following conditions are met:
   3.821 -
   3.822 -   1. Redistributions of source code must retain the above copyright notice,
   3.823 -   this list of conditions and the following disclaimer.
   3.824 -
   3.825 -   2. Redistributions in binary form must reproduce the above copyright
   3.826 -   notice, this list of conditions and the following disclaimer in the
   3.827 -   documentation and/or other materials provided with the distribution.
   3.828 -
   3.829 -   3. The name of the author may not be used to endorse or promote products
   3.830 -   derived from this software without specific prior written permission.
   3.831 -
   3.832 -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   3.833 -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   3.834 -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   3.835 -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   3.836 -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   3.837 -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   3.838 -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   3.839 -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   3.840 -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   3.841 -POSSIBILITY OF SUCH DAMAGE.  3.3. NVIDIA Corp
   3.842 -
   3.843 -Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
   3.844 -
   3.845 -NOTICE TO USER: The source code is copyrighted under U.S. and international
   3.846 -laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design
   3.847 -patents pending on the design and interface of the NV chips. Users and
   3.848 -possessors of this source code are hereby granted a nonexclusive, royalty-free
   3.849 -copyright and design patent license to use this code in individual and
   3.850 -commercial software.
   3.851 -
   3.852 -Any use of this source code must include, in the user documentation and
   3.853 -internal comments to the code, notices to the end user as follows:
   3.854 -
   3.855 -Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and
   3.856 -foreign countries.
   3.857 -
   3.858 -NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
   3.859 -CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
   3.860 -WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
   3.861 -THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
   3.862 -FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
   3.863 -FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
   3.864 -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   3.865 -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
   3.866 -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.  3.4. GLX Public
   3.867 -License
   3.868 -
   3.869 -GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
   3.870 -
   3.871 -Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
   3.872 -grants permission to Recipient (defined below), under Recipient's copyrights
   3.873 -in the Original Software (defined below), to use, copy, modify, merge,
   3.874 -publish, distribute, sublicense and/or sell copies of Subject Software
   3.875 -(defined below), and to permit persons to whom the Subject Software is
   3.876 -furnished in accordance with this License to do the same, subject to all of
   3.877 -the following terms and conditions, which Recipient accepts by engaging in any
   3.878 -such use, copying, modifying, merging, publishing, distributing, sublicensing
   3.879 -or selling:
   3.880 -
   3.881 -1. Definitions.
   3.882 -
   3.883 -    (a) "Original Software" means source code of computer software code which
   3.884 -    is described in Exhibit A as Original Software.
   3.885 -
   3.886 -    (b) "Modifications" means any addition to or deletion from the substance
   3.887 -    or structure of either the Original Software or any previous
   3.888 -    Modifications. When Subject Software is released as a series of files, a
   3.889 -    Modification means (i) any addition to or deletion from the contents of a
   3.890 -    file containing Original Software or previous Modifications and (ii) any
   3.891 -    new file that contains any part of the Original Code or previous
   3.892 -    Modifications.
   3.893 -
   3.894 -    (c) "Subject Software" means the Original Software or Modifications or the
   3.895 -    combination of the Original Software and Modifications, or portions of any
   3.896 -    of the foregoing.
   3.897 -
   3.898 -    (d) "Recipient" means an individual or a legal entity exercising rights
   3.899 -    under, and complying with all of the terms of, this License. For legal
   3.900 -    entities, "Recipient" includes any entity which controls, is controlled
   3.901 -    by, or is under common control with Recipient. For purposes of this
   3.902 -    definition, "control" of an entity means (a) the power, direct or
   3.903 -    indirect, to direct or manage such entity, or (b) ownership of fifty
   3.904 -    percent (50%) or more of the outstanding shares or beneficial ownership of
   3.905 -    such entity.
   3.906 -
   3.907 -2. Redistribution of Source Code Subject to These Terms. Redistributions of
   3.908 -Subject Software in source code form must retain the notice set forth in
   3.909 -Exhibit A, below, in every file. A copy of this License must be included in
   3.910 -any documentation for such Subject Software where the recipients' rights
   3.911 -relating to Subject Software are described. Recipient may distribute the
   3.912 -source code version of Subject Software under a license of Recipient's choice,
   3.913 -which may contain terms different from this License, provided that (i)
   3.914 -Recipient is in compliance with the terms of this License, and (ii) the
   3.915 -license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of
   3.916 -this License, which terms may not be modified or superseded by any other terms
   3.917 -of such license. If Recipient distributes the source code version under a
   3.918 -different license Recipient must make it absolutely clear that any terms which
   3.919 -differ from this License are offered by Recipient alone, not by SGI. Recipient
   3.920 -hereby agrees to indemnify SGI for any liability incurred by SGI as a result
   3.921 -of any such terms Recipient offers.
   3.922 -
   3.923 -3. Redistribution in Executable Form. The notice set forth in Exhibit A must
   3.924 -be conspicuously included in any notice in an executable version of Subject
   3.925 -Software, related documentation or collateral in which Recipient describes the
   3.926 -user's rights relating to the Subject Software. Recipient may distribute the
   3.927 -executable version of Subject Software under a license of Recipient's choice,
   3.928 -which may contain terms different from this License, provided that (i)
   3.929 -Recipient is in compliance with the terms of this License, and (ii) the
   3.930 -license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
   3.931 -this License, which terms may not be modified or superseded by any other terms
   3.932 -of such license. If Recipient distributes the executable version under a
   3.933 -different license Recipient must make it absolutely clear that any terms which
   3.934 -differ from this License are offered by Recipient alone, not by SGI. Recipient
   3.935 -hereby agrees to indemnify SGI for any liability incurred by SGI as a result
   3.936 -of any such terms Recipient offers.
   3.937 -
   3.938 -4. Termination. This License and the rights granted hereunder will terminate
   3.939 -automatically if Recipient fails to comply with terms herein and fails to cure
   3.940 -such breach within 30 days of the breach. Any sublicense to the Subject
   3.941 -Software which is properly granted shall survive any termination of this
   3.942 -License absent termination by the terms of such sublicense. Provisions which,
   3.943 -by their nature, must remain in effect beyond the termination of this License
   3.944 -shall survive.
   3.945 -
   3.946 -5. No Trademark Rights. This License does not grant any rights to use any
   3.947 -trade name, trademark or service mark whatsoever. No trade name, trademark or
   3.948 -service mark of SGI may be used to endorse or promote products derived from
   3.949 -the Subject Software without prior written permission of SGI.
   3.950 -
   3.951 -6. No Other Rights. This License does not grant any rights with respect to the
   3.952 -OpenGL API or to any software or hardware implementation thereof or to any
   3.953 -other software whatsoever, nor shall any other rights or licenses not
   3.954 -expressly granted hereunder arise by implication, estoppel or otherwise with
   3.955 -respect to the Subject Software. Title to and ownership of the Original
   3.956 -Software at all times remains with SGI. All rights in the Original Software
   3.957 -not expressly granted under this License are reserved.
   3.958 -
   3.959 -7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
   3.960 -applicable laws and regulations in connection with use and distribution of the
   3.961 -Subject Software, including but not limited to, all export and import control
   3.962 -laws and regulations of the U.S. government and other countries. Recipient may
   3.963 -not distribute Subject Software that (i) in any way infringes (directly or
   3.964 -contributorily) the rights (including patent, copyright, trade secret,
   3.965 -trademark or other intellectual property rights of any kind) of any other
   3.966 -person or entity or (ii) breaches any representation or warranty, express,
   3.967 -implied or statutory, which under any applicable law it might be deemed to
   3.968 -have been distributed.
   3.969 -
   3.970 -8. Claims of Infringement. If Recipient at any time has knowledge of any one
   3.971 -or more third party claims that reproduction, modification, use, distribution,
   3.972 -import or sale of Subject Software (including particular functionality or code
   3.973 -incorporated in Subject Software) infringes the third party's intellectual
   3.974 -property rights, Recipient must place in a well-identified web page bearing
   3.975 -the title "LEGAL" a description of each such claim and a description of the
   3.976 -party making each such claim in sufficient detail that a user of the Subject
   3.977 -Software will know whom to contact regarding the claim. Also, upon gaining
   3.978 -such knowledge of any such claim, Recipient must conspicuously include the URL
   3.979 -for such web page in the Exhibit A notice required under Sections 2 and 3,
   3.980 -above, and in the text of any related documentation, license agreement or
   3.981 -collateral in which Recipient describes end user's rights relating to the
   3.982 -Subject Software. If Recipient obtains such knowledge after it makes Subject
   3.983 -Software available to any other person or entity, Recipient shall take other
   3.984 -steps (such as notifying appropriate mailing lists or newsgroups) reasonably
   3.985 -calculated to inform those who received the Subject Software that new
   3.986 -knowledge has been obtained.
   3.987 -
   3.988 -9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
   3.989 -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
   3.990 -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
   3.991 -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
   3.992 -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
   3.993 -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
   3.994 -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
   3.995 -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
   3.996 -HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
   3.997 -
   3.998 -10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
   3.999 -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
  3.1000 -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
  3.1001 -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
  3.1002 -CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
  3.1003 -STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
  3.1004 -COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
  3.1005 -THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
  3.1006 -TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
  3.1007 -THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
  3.1008 -ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
  3.1009 -THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
  3.1010 -
  3.1011 -11. Indemnity. Recipient shall be solely responsible for damages arising,
  3.1012 -directly or indirectly, out of its utilization of rights under this License.
  3.1013 -Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from
  3.1014 -and against any loss, liability, damages, costs or expenses (including the
  3.1015 -payment of reasonable attorneys fees) arising out of Recipient's use,
  3.1016 -modification, reproduction and distribution of the Subject Software or out of
  3.1017 -any representation or warranty made by Recipient.
  3.1018 -
  3.1019 -12. U.S. Government End Users. The Subject Software is a "commercial item"
  3.1020 -consisting of "commercial computer software" as such terms are defined in
  3.1021 -title 48 of the Code of Federal Regulations and all U.S. Government End Users
  3.1022 -acquire only the rights set forth in this License and are subject to the terms
  3.1023 -of this License.
  3.1024 -
  3.1025 -13. Miscellaneous. This License represents the complete agreement concerning
  3.1026 -subject matter hereof. If any provision of this License is held to be
  3.1027 -unenforceable, such provision shall be reformed so as to achieve as nearly as
  3.1028 -possible the same economic effect as the original provision and the remainder
  3.1029 -of this License will remain in effect. This License shall be governed by and
  3.1030 -construed in accordance with the laws of the United States and the State of
  3.1031 -California as applied to agreements entered into and to be performed entirely
  3.1032 -within California between California residents. Any litigation relating to
  3.1033 -this License shall be subject to the exclusive jurisdiction of the Federal
  3.1034 -Courts of the Northern District of California (or, absent subject matter
  3.1035 -jurisdiction in such courts, the courts of the State of California), with
  3.1036 -venue lying exclusively in Santa Clara County, California, with the losing
  3.1037 -party responsible for costs, including without limitation, court costs and
  3.1038 -reasonable attorneys fees and expenses. The application of the United Nations
  3.1039 -Convention on Contracts for the International Sale of Goods is expressly
  3.1040 -excluded. Any law or regulation which provides that the language of a contract
  3.1041 -shall be construed against the drafter shall not apply to this License.
  3.1042 -
  3.1043 -Exhibit A
  3.1044 -
  3.1045 -The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13
  3.1046 -of the GLX Public License Version 1.0 (the "License"). You may not use this
  3.1047 -file except in compliance with those sections of the License. You may obtain a
  3.1048 -copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N.
  3.1049 -Shoreline Blvd., Mountain View, CA 94043 or at
  3.1050 -http://www.sgi.com/software/opensource/glx/license.html.
  3.1051 -
  3.1052 -Software distributed under the License is distributed on an "AS IS" basis. ALL
  3.1053 -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
  3.1054 -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
  3.1055 -INFRINGEMENT. See the License for the specific language governing rights and
  3.1056 -limitations under the License.
  3.1057 -
  3.1058 -The Original Software is GLX version 1.2 source code, released February, 1999.
  3.1059 -The developer of the Original Software is Silicon Graphics, Inc. Those
  3.1060 -portions of the Subject Software created by Silicon Graphics, Inc. are
  3.1061 -Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.  3.5. CID
  3.1062 -Font Code Public License
  3.1063 -
  3.1064 -CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
  3.1065 -
  3.1066 -Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
  3.1067 -hereby grants permission to Recipient (defined below), under SGI's copyrights
  3.1068 -in the Original Software (defined below), to use, copy, modify, merge,
  3.1069 -publish, distribute, sublicense and/or sell copies of Subject Software
  3.1070 -(defined below) in both source code and executable form, and to permit persons
  3.1071 -to whom the Subject Software is furnished in accordance with this License to
  3.1072 -do the same, subject to all of the following terms and conditions, which
  3.1073 -Recipient accepts by engaging in any such use, copying, modifying, merging,
  3.1074 -publication, distributing, sublicensing or selling:
  3.1075 -
  3.1076 -1. Definitions.
  3.1077 -
  3.1078 -    a. "Original Software" means source code of computer software code that is
  3.1079 -    described in Exhibit A as Original Software.
  3.1080 -
  3.1081 -    b. "Modifications" means any addition to or deletion from the substance or
  3.1082 -    structure of either the Original Software or any previous Modifications.
  3.1083 -    When Subject Software is released as a series of files, a Modification
  3.1084 -    means (i) any addition to or deletion from the contents of a file
  3.1085 -    containing Original Software or previous Modifications and (ii) any new
  3.1086 -    file that contains any part of the Original Code or previous
  3.1087 -    Modifications.
  3.1088 -
  3.1089 -    c. "Subject Software" means the Original Software or Modifications or the
  3.1090 -    combination of the Original Software and Modifications, or portions of any
  3.1091 -    of the foregoing.
  3.1092 -
  3.1093 -    d. "Recipient" means an individual or a legal entity exercising rights
  3.1094 -    under the terms of this License. For legal entities, "Recipient" includes
  3.1095 -    any entity that controls, is controlled by, or is under common control
  3.1096 -    with Recipient. For purposes of this definition, "control" of an entity
  3.1097 -    means (i) the power, direct or indirect, to direct or manage such entity,
  3.1098 -    or (ii) ownership of fifty percent (50%) or more of the outstanding shares
  3.1099 -    or beneficial ownership of such entity.
  3.1100 -
  3.1101 -    e. "Required Notice" means the notice set forth in Exhibit A to this
  3.1102 -    License.
  3.1103 -
  3.1104 -    f. "Accompanying Technology" means any software or other technology that
  3.1105 -    is not a Modification and that is distributed or made publicly available
  3.1106 -    by Recipient with the Subject Software. Separate software files that do
  3.1107 -    not contain any Original Software or any previous Modification shall not
  3.1108 -    be deemed a Modification, even if such software files are aggregated as
  3.1109 -    part of a product, or in any medium of storage, with any file that does
  3.1110 -    contain Original Software or any previous Modification.
  3.1111 -
  3.1112 -2. License Terms. All distribution of the Subject Software must be made
  3.1113 -subject to the terms of this License. A copy of this License and the Required
  3.1114 -Notice must be included in any documentation for Subject Software where
  3.1115 -Recipient's rights relating to Subject Software and/or any Accompanying
  3.1116 -Technology are described. Distributions of Subject Software in source code
  3.1117 -form must also include the Required Notice in every file distributed. In
  3.1118 -addition, a ReadMe file entitled "Important Legal Notice" must be distributed
  3.1119 -with each distribution of one or more files that incorporate Subject Software.
  3.1120 -That file must be included with distributions made in both source code and
  3.1121 -executable form. A copy of the License and the Required Notice must be
  3.1122 -included in that file. Recipient may distribute Accompanying Technology under
  3.1123 -a license of Recipient's choice, which may contain terms different from this
  3.1124 -License, provided that (i) Recipient is in compliance with the terms of this
  3.1125 -License, (ii) such other license terms do not modify or supersede the terms of
  3.1126 -this License as applicable to the Subject Software, (iii) Recipient hereby
  3.1127 -indemnifies SGI for any liability incurred by SGI as a result of the
  3.1128 -distribution of Accompanying Technology or the use of other license terms.
  3.1129 -
  3.1130 -3. Termination. This License and the rights granted hereunder will terminate
  3.1131 -automatically if Recipient fails to comply with terms herein and fails to cure
  3.1132 -such breach within 30 days of the breach. Any sublicense to the Subject
  3.1133 -Software that is properly granted shall survive any termination of this
  3.1134 -License absent termination by the terms of such sublicense. Provisions which,
  3.1135 -by their nature, must remain in effect beyond the termination of this License
  3.1136 -shall survive.
  3.1137 -
  3.1138 -4. Trademark Rights. This License does not grant any rights to use any trade
  3.1139 -name, trademark or service mark whatsoever. No trade name, trademark or
  3.1140 -service mark of SGI may be used to endorse or promote products derived from or
  3.1141 -incorporating any Subject Software without prior written permission of SGI.
  3.1142 -
  3.1143 -5. No Other Rights. No rights or licenses not expressly granted hereunder
  3.1144 -shall arise by implication, estoppel or otherwise. Title to and ownership of
  3.1145 -the Original Software at all times remains with SGI. All rights in the
  3.1146 -Original Software not expressly granted under this License are reserved.
  3.1147 -
  3.1148 -6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
  3.1149 -applicable laws and regulations in connection with use and distribution of the
  3.1150 -Subject Software, including but not limited to, all export and import control
  3.1151 -laws and regulations of the U.S. government and other countries. Recipient may
  3.1152 -not distribute Subject Software that (i) in any way infringes (directly or
  3.1153 -contributorily) the rights (including patent, copyright, trade secret,
  3.1154 -trademark or other intellectual property rights of any kind) of any other
  3.1155 -person or entity, or (ii) breaches any representation or warranty, express,
  3.1156 -implied or statutory, which under any applicable law it might be deemed to
  3.1157 -have been distributed.
  3.1158 -
  3.1159 -7. Claims of Infringement. If Recipient at any time has knowledge of any one
  3.1160 -or more third party claims that reproduction, modification, use, distribution,
  3.1161 -import or sale of Subject Software (including particular functionality or code
  3.1162 -incorporated in Subject Software) infringes the third party's intellectual
  3.1163 -property rights, Recipient must place in a well-identified web page bearing
  3.1164 -the title "LEGAL" a description of each such claim and a description of the
  3.1165 -party making each such claim in sufficient detail that a user of the Subject
  3.1166 -Software will know whom to contact regarding the claim. Also, upon gaining
  3.1167 -such knowledge of any such claim, Recipient must conspicuously include the URL
  3.1168 -for such web page in the Required Notice, and in the text of any related
  3.1169 -documentation, license agreement or collateral in which Recipient describes
  3.1170 -end user's rights relating to the Subject Software. If Recipient obtains such
  3.1171 -knowledge after it makes Subject Software available to any other person or
  3.1172 -entity, Recipient shall take other steps (such as notifying appropriate
  3.1173 -mailing lists or newsgroups) reasonably calculated to provide such knowledge
  3.1174 -to those who received the Subject Software.
  3.1175 -
  3.1176 -8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
  3.1177 -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
  3.1178 -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
  3.1179 -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
  3.1180 -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
  3.1181 -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
  3.1182 -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
  3.1183 -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
  3.1184 -HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
  3.1185 -
  3.1186 -9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
  3.1187 -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
  3.1188 -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM,
  3.1189 -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  3.1190 -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
  3.1191 -THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
  3.1192 -ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
  3.1193 -LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
  3.1194 -
  3.1195 -10. Indemnity. Recipient shall be solely responsible for damages arising,
  3.1196 -directly or indirectly, out of its utilization of rights under this License.
  3.1197 -Recipient will defend, indemnify and hold SGI and its successors and assigns
  3.1198 -harmless from and against any loss, liability, damages, costs or expenses
  3.1199 -(including the payment of reasonable attorneys fees) arising out of
  3.1200 -(Recipient's use, modification, reproduction and distribution of the Subject
  3.1201 -Software or out of any representation or warranty made by Recipient.
  3.1202 -
  3.1203 -11. U.S. Government End Users. The Subject Software is a "commercial item"
  3.1204 -consisting of "commercial computer software" as such terms are defined in
  3.1205 -title 48 of the Code of Federal Regulations and all U.S. Government End Users
  3.1206 -acquire only the rights set forth in this License and are subject to the terms
  3.1207 -of this License.
  3.1208 -
  3.1209 -12. Miscellaneous. This License represents the complete agreement concerning
  3.1210 -subject matter hereof. If any provision of this License is held to be
  3.1211 -unenforceable by any judicial or administrative authority having proper
  3.1212 -jurisdiction with respect thereto, such provision shall be reformed so as to
  3.1213 -achieve as nearly as possible the same economic effect as the original
  3.1214 -provision and the remainder of this License will remain in effect. This
  3.1215 -License shall be governed by and construed in accordance with the laws of the
  3.1216 -United States and the State of California as applied to agreements entered
  3.1217 -into and to be performed entirely within California between California
  3.1218 -residents. Any litigation relating to this License shall be subject to the
  3.1219 -exclusive jurisdiction of the Federal Courts of the Northern District of
  3.1220 -California (or, absent subject matter jurisdiction in such courts, the courts
  3.1221 -of the State of California), with venue lying exclusively in Santa Clara
  3.1222 -County, California, with the losing party responsible for costs, including
  3.1223 -without limitation, court costs and reasonable attorneys fees and expenses.
  3.1224 -The application of the United Nations Convention on Contracts for the
  3.1225 -International Sale of Goods is expressly excluded. Any law or regulation that
  3.1226 -provides that the language of a contract shall be construed against the
  3.1227 -drafter shall not apply to this License.
  3.1228 -
  3.1229 -Exhibit A
  3.1230 -
  3.1231 -Copyright (c) 1994-1999 Silicon Graphics, Inc.
  3.1232 -
  3.1233 -The contents of this file are subject to the CID Font Code Public License
  3.1234 -Version 1.0 (the "License"). You may not use this file except in compliance
  3.1235 -with the License. You may obtain a copy of the License at Silicon Graphics,
  3.1236 -Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
  3.1237 -or at http://www.sgi.com/software/opensource/cid/license.html
  3.1238 -
  3.1239 -Software distributed under the License is distributed on an "AS IS" basis. ALL
  3.1240 -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
  3.1241 -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF
  3.1242 -NON-INFRINGEMENT. See the License for the specific language governing rights
  3.1243 -and limitations under the License.
  3.1244 -
  3.1245 -The Original Software (as defined in the License) is CID font code that was
  3.1246 -developed by Silicon Graphics, Inc. Those portions of the Subject Software (as
  3.1247 -defined in the License) that were created by Silicon Graphics, Inc. are
  3.1248 -Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
  3.1249 -
  3.1250 -[NOTE: When using this text in connection with Subject Software delivered
  3.1251 -solely in object code form, Recipient may replace the words "this file" with
  3.1252 -"this software" in both the first and second sentences.] 3.6. Bitstream Vera
  3.1253 -Fonts Copyright
  3.1254 -
  3.1255 -The fonts have a generous copyright, allowing derivative works (as long as
  3.1256 -"Bitstream" or "Vera" are not in the names), and full redistribution (so long
  3.1257 -as they are not *sold* by themselves). They can be be bundled, redistributed
  3.1258 -and sold with any software.
  3.1259 -
  3.1260 -The fonts are distributed under the following copyright:
  3.1261 -
  3.1262 -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a
  3.1263 -trademark of Bitstream, Inc.
  3.1264 -
  3.1265 -Permission is hereby granted, free of charge, to any person obtaining a copy
  3.1266 -of the fonts accompanying this license ("Fonts") and associated documentation
  3.1267 -files (the "Font Software"), to reproduce and distribute the Font Software,
  3.1268 -including without limitation the rights to use, copy, merge, publish,
  3.1269 -distribute, and/or sell copies of the Font Software, and to permit persons to
  3.1270 -whom the Font Software is furnished to do so, subject to the following
  3.1271 -conditions:
  3.1272 -
  3.1273 -The above copyright and trademark notices and this permission notice shall be
  3.1274 -included in all copies of one or more of the Font Software typefaces.
  3.1275 -
  3.1276 -The Font Software may be modified, altered, or added to, and in particular the
  3.1277 -designs of glyphs or characters in the Fonts may be modified and additional
  3.1278 -glyphs or characters may be added to the Fonts, only if the fonts are renamed
  3.1279 -to names not containing either the words "Bitstream" or the word "Vera".
  3.1280 -
  3.1281 -This License becomes null and void to the extent applicable to Fonts or Font
  3.1282 -Software that has been modified and is distributed under the "Bitstream Vera"
  3.1283 -names.
  3.1284 -
  3.1285 -The Font Software may be sold as part of a larger software package but no copy
  3.1286 -of one or more of the Font Software typefaces may be sold by itself.
  3.1287 -
  3.1288 -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3.1289 -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
  3.1290 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
  3.1291 -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION
  3.1292 -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
  3.1293 -SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION
  3.1294 -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO
  3.1295 -USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
  3.1296 -
  3.1297 -Except as contained in this notice, the names of Gnome, the Gnome Foundation,
  3.1298 -and Bitstream Inc., shall not be used in advertising or otherwise to promote
  3.1299 -the sale, use or other dealings in this Font Software without prior written
  3.1300 -authorization from the Gnome Foundation or Bitstream Inc., respectively. For
  3.1301 -further information, contact: fonts at gnome dot org.  3.7. Bigelow & Holmes
  3.1302 -Inc and URW++ GmbH Luxi font license
  3.1303 -
  3.1304 -Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
  3.1305 -code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a
  3.1306 -registered trademark of Bigelow & Holmes Inc.
  3.1307 -
  3.1308 -Permission is hereby granted, free of charge, to any person obtaining a copy
  3.1309 -of these Fonts and associated documentation files (the "Font Software"), to
  3.1310 -deal in the Font Software, including without limitation the rights to use,
  3.1311 -copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
  3.1312 -Software, and to permit persons to whom the Font Software is furnished to do
  3.1313 -so, subject to the following conditions:
  3.1314 -
  3.1315 -The above copyright and trademark notices and this permission notice shall be
  3.1316 -included in all copies of one or more of the Font Software.
  3.1317 -
  3.1318 -The Font Software may not be modified, altered, or added to, and in particular
  3.1319 -the designs of glyphs or characters in the Fonts may not be modified nor may
  3.1320 -additional glyphs or characters be added to the Fonts. This License becomes
  3.1321 -null and void when the Fonts or Font Software have been modified.
  3.1322 -
  3.1323 -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3.1324 -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
  3.1325 -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
  3.1326 -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
  3.1327 -GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY
  3.1328 -GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
  3.1329 -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
  3.1330 -INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT
  3.1331 +used in advertising or otherwise to promote the sale, use or other dealings
  3.1332 +in this Software without prior written authorization from The Open Group.
  3.1333 +*
  3.1334 +* Author: Jim Fulton, MIT The Open Group
  3.1335 +*
  3.1336 +* Xlib Extension-Writing Utilities
  3.1337 +*
  3.1338 +* This package contains utilities for writing the client API for various
  3.1339 +* protocol extensions. THESE INTERFACES ARE NOT PART OF THE X STANDARD AND
  3.1340 +* ARE SUBJECT TO CHANGE!
  3.1341 +*/
  3.1342 +
  3.1343 +_____________________________
  3.1344 +Copyright notice for HPkeysym.h:
  3.1345 +/*
  3.1346 +
  3.1347 +Copyright 1987, 1998 The Open Group
  3.1348 +
  3.1349 +All Rights Reserved.
  3.1350 +
  3.1351 +The above copyright notice and this permission notice shall be included
  3.1352 +in all copies or substantial portions of the Software.
  3.1353 +
  3.1354 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3.1355 +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  3.1356 +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  3.1357 +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
  3.1358 +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  3.1359 +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  3.1360 +OTHER DEALINGS IN THE SOFTWARE.
  3.1361 +
  3.1362 +Except as contained in this notice, the name of The Open Group shall
  3.1363 +not be used in advertising or otherwise to promote the sale, use or
  3.1364 +other dealings in this Software without prior written authorization
  3.1365 +from The Open Group.
  3.1366 +
  3.1367 +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
  3.1368 +
  3.1369 +All Rights Reserved
  3.1370 +
  3.1371 +Permission to use, copy, modify, and distribute this software and its
  3.1372 +documentation for any purpose and without fee is hereby granted,
  3.1373 +provided that the above copyright notice appear in all copies and that
  3.1374 +both that copyright notice and this permission notice appear in
  3.1375 +supporting documentation, and that the names of Hewlett Packard
  3.1376 +or Digital not be
  3.1377 +used in advertising or publicity pertaining to distribution of the
  3.1378 +software without specific, written prior permission.
  3.1379 +
  3.1380 +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  3.1381 +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  3.1382 +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  3.1383 +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  3.1384 +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  3.1385 +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  3.1386  SOFTWARE.
  3.1387  
  3.1388 -Except as contained in this notice, the names of Bigelow & Holmes Inc. and
  3.1389 -URW++ GmbH. shall not be used in advertising or otherwise to promote the sale,
  3.1390 -use or other dealings in this Font Software without prior written
  3.1391 -authorization from Bigelow & Holmes Inc. and URW++ GmbH.
  3.1392 -
  3.1393 -For further information, contact:
  3.1394 -
  3.1395 -info@urwpp.de or design@bigelowandholmes.com
  3.1396 -
  3.1397 +HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD
  3.1398 +TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  3.1399 +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  3.1400 +PURPOSE. Hewlett-Packard shall not be liable for errors
  3.1401 +contained herein or direct, indirect, special, incidental or
  3.1402 +consequential damages in connection with the furnishing,
  3.1403 +performance, or use of this material.
  3.1404 +
  3.1405 +*/
  3.1406 +_____________________________________
  3.1407 +Copyright notice in keysym2ucs.h:
  3.1408 +
  3.1409 +Copyright 1987, 1994, 1998 The Open Group
  3.1410 +
  3.1411 +Permission to use, copy, modify, distribute, and sell this software and its
  3.1412 +documentation for any purpose is hereby granted without fee, provided that
  3.1413 +the above copyright notice appear in all copies and that both that
  3.1414 +copyright notice and this permission notice appear in supporting
  3.1415 +documentation.
  3.1416 +
  3.1417 +The above copyright notice and this permission notice shall be included
  3.1418 +in all copies or substantial portions of the Software.
  3.1419 +
  3.1420 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3.1421 +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  3.1422 +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  3.1423 +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
  3.1424 +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  3.1425 +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  3.1426 +OTHER DEALINGS IN THE SOFTWARE.
  3.1427 +
  3.1428 +Except as contained in this notice, the name of The Open Group shall
  3.1429 +not be used in advertising or otherwise to promote the sale, use or
  3.1430 +other dealings in this Software without prior written authorization
  3.1431 +from The Open Group.
  3.1432 +
  3.1433 +
  3.1434 +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
  3.1435 +
  3.1436 +All Rights Reserved
  3.1437 +
  3.1438 +Permission to use, copy, modify, and distribute this software and its
  3.1439 +documentation for any purpose and without fee is hereby granted,
  3.1440 +provided that the above copyright notice appear in all copies and that
  3.1441 +both that copyright notice and this permission notice appear in
  3.1442 +supporting documentation, and that the name of Digital not be
  3.1443 +used in advertising or publicity pertaining to distribution of the
  3.1444 +software without specific, written prior permission.
  3.1445 +
  3.1446 +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  3.1447 +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  3.1448 +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  3.1449 +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  3.1450 +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  3.1451 +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  3.1452 +SOFTWARE.
  3.1453 +
  3.1454 +*/
  3.1455  
  3.1456  --- end of LICENSE ---
  3.1457  
  3.1458 @@ -3325,7 +2815,7 @@
  3.1459  
  3.1460    version 1.2.11, January 15th, 2017
  3.1461  
  3.1462 -  Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
  3.1463 +  Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
  3.1464  
  3.1465    This software is provided 'as-is', without any express or implied
  3.1466    warranty.  In no event will the authors be held liable for any damages
  3.1467 @@ -3361,7 +2851,6 @@
  3.1468    Apache Xalan-Java 2.7.1 
  3.1469    Apache Xerces Java 2.10.0 
  3.1470    Apache XML Resolver 1.1 
  3.1471 -  Dynalink 0.5
  3.1472  
  3.1473  
  3.1474  --- begin of LICENSE ---
     4.1 --- a/src/jdk/nashorn/internal/codegen/CodeGenerator.java	Fri Jun 02 15:28:52 2017 -0700
     4.2 +++ b/src/jdk/nashorn/internal/codegen/CodeGenerator.java	Fri Jun 30 23:59:34 2017 -0700
     4.3 @@ -2454,11 +2454,6 @@
     4.4                      }
     4.5  
     4.6                      @Override
     4.7 -                    public boolean enterObjectNode(final ObjectNode objectNode) {
     4.8 -                        return false;
     4.9 -                    }
    4.10 -
    4.11 -                    @Override
    4.12                      public boolean enterDefault(final Node node) {
    4.13                          if (contains) {
    4.14                              return false;
    4.15 @@ -2526,7 +2521,8 @@
    4.16              oc = new FieldObjectCreator<Expression>(this, tuples) {
    4.17                  @Override
    4.18                  protected void loadValue(final Expression node, final Type type) {
    4.19 -                    loadExpressionAsType(node, type);
    4.20 +                    // Use generic type in order to avoid conversion between object types
    4.21 +                    loadExpressionAsType(node, Type.generic(type));
    4.22                  }};
    4.23          }
    4.24  
    4.25 @@ -2542,10 +2538,7 @@
    4.26          //handler
    4.27          if (restOfProperty) {
    4.28              final ContinuationInfo ci = getContinuationInfo();
    4.29 -            // Can be set at most once for a single rest-of method
    4.30 -            assert ci.getObjectLiteralMap() == null;
    4.31 -            ci.setObjectLiteralMap(oc.getMap());
    4.32 -            ci.setObjectLiteralStackDepth(method.getStackSize());
    4.33 +            ci.setObjectLiteralMap(method.getStackSize(), oc.getMap());
    4.34          }
    4.35  
    4.36          method.dup();
    4.37 @@ -4023,7 +4016,7 @@
    4.38                      void loadStack() {
    4.39                          assert assignNode.getWidestOperandType() == Type.INT;
    4.40                          if (isRhsZero(binaryNode)) {
    4.41 -                            loadExpressionAsType(binaryNode.lhs(), Type.INT);
    4.42 +                            loadExpression(binaryNode.lhs(), TypeBounds.INT, true);
    4.43                          } else {
    4.44                              loadBinaryOperands(binaryNode.lhs(), binaryNode.rhs(), TypeBounds.INT, true, false);
    4.45                              method.shr();
    4.46 @@ -5259,10 +5252,8 @@
    4.47          private Type[] stackTypes;
    4.48          // If non-null, this node should perform the requisite type conversion
    4.49          private Type returnValueType;
    4.50 -        // If we are in the middle of an object literal initialization, we need to update the map
    4.51 -        private PropertyMap objectLiteralMap;
    4.52 -        // Object literal stack depth for object literal - not necessarily top if property is a tree
    4.53 -        private int objectLiteralStackDepth = -1;
    4.54 +        // If we are in the middle of an object literal initialization, we need to update the property maps
    4.55 +        private Map<Integer, PropertyMap> objectLiteralMaps;
    4.56          // The line number at the continuation point
    4.57          private int lineNumber;
    4.58          // The active catch label, in case the continuation point is in a try/catch block
    4.59 @@ -5314,20 +5305,15 @@
    4.60              this.returnValueType = returnValueType;
    4.61          }
    4.62  
    4.63 -        int getObjectLiteralStackDepth() {
    4.64 -            return objectLiteralStackDepth;
    4.65 -        }
    4.66 -
    4.67 -        void setObjectLiteralStackDepth(final int objectLiteralStackDepth) {
    4.68 -            this.objectLiteralStackDepth = objectLiteralStackDepth;
    4.69 -        }
    4.70 -
    4.71 -        PropertyMap getObjectLiteralMap() {
    4.72 -            return objectLiteralMap;
    4.73 -        }
    4.74 -
    4.75 -        void setObjectLiteralMap(final PropertyMap objectLiteralMap) {
    4.76 -            this.objectLiteralMap = objectLiteralMap;
    4.77 +        void setObjectLiteralMap(final int objectLiteralStackDepth, final PropertyMap objectLiteralMap) {
    4.78 +            if (objectLiteralMaps == null) {
    4.79 +                objectLiteralMaps = new HashMap<>();
    4.80 +            }
    4.81 +            objectLiteralMaps.put(objectLiteralStackDepth, objectLiteralMap);
    4.82 +        }
    4.83 +
    4.84 +        PropertyMap getObjectLiteralMap(final int stackDepth) {
    4.85 +            return objectLiteralMaps == null ? null : objectLiteralMaps.get(stackDepth);
    4.86          }
    4.87  
    4.88          @Override
    4.89 @@ -5417,10 +5403,9 @@
    4.90          final int[]   stackStoreSpec = ci.getStackStoreSpec();
    4.91          final Type[]  stackTypes     = ci.getStackTypes();
    4.92          final boolean isStackEmpty   = stackStoreSpec.length == 0;
    4.93 -        boolean replacedObjectLiteralMap = false;
    4.94 +        int replacedObjectLiteralMaps = 0;
    4.95          if(!isStackEmpty) {
    4.96              // Load arguments on the stack
    4.97 -            final int objectLiteralStackDepth = ci.getObjectLiteralStackDepth();
    4.98              for(int i = 0; i < stackStoreSpec.length; ++i) {
    4.99                  final int slot = stackStoreSpec[i];
   4.100                  method.load(lvarTypes.get(slot), slot);
   4.101 @@ -5428,18 +5413,18 @@
   4.102                  // stack: s0=object literal being initialized
   4.103                  // change map of s0 so that the property we are initializing when we failed
   4.104                  // is now ci.returnValueType
   4.105 -                if (i == objectLiteralStackDepth) {
   4.106 +                final PropertyMap map = ci.getObjectLiteralMap(i);
   4.107 +                if (map != null) {
   4.108                      method.dup();
   4.109 -                    assert ci.getObjectLiteralMap() != null;
   4.110                      assert ScriptObject.class.isAssignableFrom(method.peekType().getTypeClass()) : method.peekType().getTypeClass() + " is not a script object";
   4.111 -                    loadConstant(ci.getObjectLiteralMap());
   4.112 +                    loadConstant(map);
   4.113                      method.invoke(ScriptObject.SET_MAP);
   4.114 -                    replacedObjectLiteralMap = true;
   4.115 +                    replacedObjectLiteralMaps++;
   4.116                  }
   4.117              }
   4.118          }
   4.119 -        // Must have emitted the code for replacing the map of an object literal if we have a set object literal stack depth
   4.120 -        assert ci.getObjectLiteralStackDepth() == -1 || replacedObjectLiteralMap;
   4.121 +        // Must have emitted the code for replacing all object literal maps
   4.122 +        assert ci.objectLiteralMaps == null || ci.objectLiteralMaps.size() == replacedObjectLiteralMaps;
   4.123          // Load RewriteException back.
   4.124          method.load(rewriteExceptionType, lvarCount);
   4.125          // Get rid of the stored reference
     5.1 --- a/src/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java	Fri Jun 02 15:28:52 2017 -0700
     5.2 +++ b/src/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java	Fri Jun 30 23:59:34 2017 -0700
     5.3 @@ -33,6 +33,7 @@
     5.4  import java.util.ArrayList;
     5.5  import java.util.Collections;
     5.6  import java.util.Deque;
     5.7 +import java.util.HashMap;
     5.8  import java.util.HashSet;
     5.9  import java.util.IdentityHashMap;
    5.10  import java.util.Iterator;
    5.11 @@ -122,9 +123,9 @@
    5.12          private final List<JumpOrigin> origins = new LinkedList<>();
    5.13          private Map<Symbol, LvarType> types = Collections.emptyMap();
    5.14  
    5.15 -        void addOrigin(final JoinPredecessor originNode, final Map<Symbol, LvarType> originTypes) {
    5.16 +        void addOrigin(final JoinPredecessor originNode, final Map<Symbol, LvarType> originTypes, final LocalVariableTypesCalculator calc) {
    5.17              origins.add(new JumpOrigin(originNode, originTypes));
    5.18 -            this.types = getUnionTypes(this.types, originTypes);
    5.19 +            this.types = calc.getUnionTypes(this.types, originTypes);
    5.20          }
    5.21      }
    5.22      private enum LvarType {
    5.23 @@ -185,12 +186,15 @@
    5.24      }
    5.25  
    5.26      @SuppressWarnings("unchecked")
    5.27 -    private static IdentityHashMap<Symbol, LvarType> cloneMap(final Map<Symbol, LvarType> map) {
    5.28 -        return (IdentityHashMap<Symbol, LvarType>)((IdentityHashMap<?,?>)map).clone();
    5.29 +    private static HashMap<Symbol, LvarType> cloneMap(final Map<Symbol, LvarType> map) {
    5.30 +        return (HashMap<Symbol, LvarType>)((HashMap<?,?>)map).clone();
    5.31      }
    5.32  
    5.33      private LocalVariableConversion createConversion(final Symbol symbol, final LvarType branchLvarType,
    5.34              final Map<Symbol, LvarType> joinLvarTypes, final LocalVariableConversion next) {
    5.35 +        if (invalidatedSymbols.contains(symbol)) {
    5.36 +            return next;
    5.37 +        }
    5.38          final LvarType targetType = joinLvarTypes.get(symbol);
    5.39          assert targetType != null;
    5.40          if(targetType == branchLvarType) {
    5.41 @@ -208,7 +212,7 @@
    5.42          return new LocalVariableConversion(symbol, branchLvarType.type, targetType.type, next);
    5.43      }
    5.44  
    5.45 -    private static Map<Symbol, LvarType> getUnionTypes(final Map<Symbol, LvarType> types1, final Map<Symbol, LvarType> types2) {
    5.46 +    private Map<Symbol, LvarType> getUnionTypes(final Map<Symbol, LvarType> types1, final Map<Symbol, LvarType> types2) {
    5.47          if(types1 == types2 || types1.isEmpty()) {
    5.48              return types2;
    5.49          } else if(types2.isEmpty()) {
    5.50 @@ -261,6 +265,11 @@
    5.51              final LvarType type2 = types2.get(symbol);
    5.52              union.put(symbol, widestLvarType(type1,  type2));
    5.53          }
    5.54 +        // If the two sets of symbols differ, there's a good chance that some of
    5.55 +        // symbols only appearing in one of the sets are lexically invalidated,
    5.56 +        // so we remove them from further consideration.
    5.57 +        // This is not strictly necessary, just a working set size optimization.
    5.58 +        union.keySet().removeAll(invalidatedSymbols);
    5.59          return union;
    5.60      }
    5.61  
    5.62 @@ -359,8 +368,6 @@
    5.63          if(t1.ordinal() < LvarType.INT.ordinal() || t2.ordinal() < LvarType.INT.ordinal()) {
    5.64              return LvarType.OBJECT;
    5.65          }
    5.66 -        // NOTE: we allow "widening" of long to double even though it can lose precision. ECMAScript doesn't have an
    5.67 -        // Int64 type anyway, so this loss of precision is actually more conformant to the specification...
    5.68          return LvarType.values()[Math.max(t1.ordinal(), t2.ordinal())];
    5.69      }
    5.70      private final Compiler compiler;
    5.71 @@ -368,7 +375,10 @@
    5.72      // Local variable type mapping at the currently evaluated point. No map instance is ever modified; setLvarType() always
    5.73      // allocates a new map. Immutability of maps allows for cheap snapshots by just keeping the reference to the current
    5.74      // value.
    5.75 -    private Map<Symbol, LvarType> localVariableTypes = new IdentityHashMap<>();
    5.76 +    private Map<Symbol, LvarType> localVariableTypes = Collections.emptyMap();
    5.77 +    // Set of symbols whose lexical scope has already ended.
    5.78 +    private final Set<Symbol> invalidatedSymbols = new HashSet<>();
    5.79 +
    5.80      // Stack for evaluated expression types.
    5.81      private final Deque<LvarType> typeStack = new ArrayDeque<>();
    5.82  
    5.83 @@ -464,9 +474,19 @@
    5.84  
    5.85      @Override
    5.86      public boolean enterBlock(final Block block) {
    5.87 +        boolean cloned = false;
    5.88          for(final Symbol symbol: block.getSymbols()) {
    5.89 -            if(symbol.isBytecodeLocal() && getLocalVariableTypeOrNull(symbol) == null) {
    5.90 -                setType(symbol, LvarType.UNDEFINED);
    5.91 +            if(symbol.isBytecodeLocal()) {
    5.92 +                if (getLocalVariableTypeOrNull(symbol) == null) {
    5.93 +                    if (!cloned) {
    5.94 +                        cloneOrNewLocalVariableTypes();
    5.95 +                        cloned = true;
    5.96 +                    }
    5.97 +                    localVariableTypes.put(symbol, LvarType.UNDEFINED);
    5.98 +                }
    5.99 +                // In case we're repeating analysis of a lexical scope (e.g. it's in a loop),
   5.100 +                // make sure all symbols lexically scoped by the block become valid again.
   5.101 +                invalidatedSymbols.remove(symbol);
   5.102              }
   5.103          }
   5.104          return true;
   5.105 @@ -1046,15 +1066,11 @@
   5.106              // throw an exception.
   5.107              reachable = true;
   5.108              catchBody.accept(this);
   5.109 -            final Symbol exceptionSymbol = exception.getSymbol();
   5.110              if(reachable) {
   5.111 -                localVariableTypes = cloneMap(localVariableTypes);
   5.112 -                localVariableTypes.remove(exceptionSymbol);
   5.113                  jumpToLabel(catchBody, endLabel);
   5.114                  canExit = true;
   5.115              }
   5.116 -            localVariableTypes = cloneMap(afterConditionTypes);
   5.117 -            localVariableTypes.remove(exceptionSymbol);
   5.118 +            localVariableTypes = afterConditionTypes;
   5.119          }
   5.120          // NOTE: if we had one or more conditional catch blocks with no unconditional catch block following them, then
   5.121          // there will be an unconditional rethrow, so the join point can never be reached from the last
   5.122 @@ -1204,7 +1220,7 @@
   5.123      }
   5.124  
   5.125      private void jumpToLabel(final JoinPredecessor jumpOrigin, final Label label, final Map<Symbol, LvarType> types) {
   5.126 -        getOrCreateJumpTarget(label).addOrigin(jumpOrigin, types);
   5.127 +        getOrCreateJumpTarget(label).addOrigin(jumpOrigin, types, this);
   5.128      }
   5.129  
   5.130      @Override
   5.131 @@ -1226,16 +1242,18 @@
   5.132  
   5.133          boolean cloned = false;
   5.134          for(final Symbol symbol: block.getSymbols()) {
   5.135 -            // Undefine the symbol outside the block
   5.136 -            if(localVariableTypes.containsKey(symbol)) {
   5.137 -                if(!cloned) {
   5.138 -                    localVariableTypes = cloneMap(localVariableTypes);
   5.139 -                    cloned = true;
   5.140 +            if(symbol.hasSlot()) {
   5.141 +                // Invalidate the symbol when its defining block ends
   5.142 +                if (symbol.isBytecodeLocal()) {
   5.143 +                    if(localVariableTypes.containsKey(symbol)) {
   5.144 +                        if(!cloned) {
   5.145 +                            localVariableTypes = cloneMap(localVariableTypes);
   5.146 +                            cloned = true;
   5.147 +                        }
   5.148 +                    }
   5.149 +                    invalidateSymbol(symbol);
   5.150                  }
   5.151 -                localVariableTypes.remove(symbol);
   5.152 -            }
   5.153  
   5.154 -            if(symbol.hasSlot()) {
   5.155                  final SymbolConversions conversions = symbolConversions.get(symbol);
   5.156                  if(conversions != null) {
   5.157                      // Potentially make some currently dead types live if they're needed as a source of a type
   5.158 @@ -1605,10 +1623,19 @@
   5.159          }
   5.160          assert symbol.hasSlot();
   5.161          assert !symbol.isGlobal();
   5.162 -        localVariableTypes = localVariableTypes.isEmpty() ? new IdentityHashMap<Symbol, LvarType>() : cloneMap(localVariableTypes);
   5.163 +        cloneOrNewLocalVariableTypes();
   5.164          localVariableTypes.put(symbol, type);
   5.165      }
   5.166  
   5.167 +    private void cloneOrNewLocalVariableTypes() {
   5.168 +        localVariableTypes = localVariableTypes.isEmpty() ? new HashMap<Symbol, LvarType>() : cloneMap(localVariableTypes);
   5.169 +    }
   5.170 +
   5.171 +    private void invalidateSymbol(final Symbol symbol) {
   5.172 +        localVariableTypes.remove(symbol);
   5.173 +        invalidatedSymbols.add(symbol);
   5.174 +    }
   5.175 +
   5.176      /**
   5.177       * Set a flag in the symbol marking it as needing to be able to store a value of a particular type. Every symbol for
   5.178       * a local variable will be assigned between 1 and 6 local variable slots for storing all types it is known to need
     6.1 --- a/src/jdk/nashorn/internal/codegen/SpillObjectCreator.java	Fri Jun 02 15:28:52 2017 -0700
     6.2 +++ b/src/jdk/nashorn/internal/codegen/SpillObjectCreator.java	Fri Jun 30 23:59:34 2017 -0700
     6.3 @@ -188,7 +188,8 @@
     6.4  
     6.5      @Override
     6.6      protected void loadValue(final Expression expr, final Type type) {
     6.7 -        codegen.loadExpressionAsType(expr, type);
     6.8 +        // Use generic type in order to avoid conversion between object types
     6.9 +        codegen.loadExpressionAsType(expr, Type.generic(type));
    6.10      }
    6.11  
    6.12      @Override
     7.1 --- a/src/jdk/nashorn/internal/codegen/WeighNodes.java	Fri Jun 02 15:28:52 2017 -0700
     7.2 +++ b/src/jdk/nashorn/internal/codegen/WeighNodes.java	Fri Jun 30 23:59:34 2017 -0700
     7.3 @@ -77,6 +77,7 @@
     7.4      static final long CALL_WEIGHT      = 10;
     7.5      static final long CATCH_WEIGHT     = 10;
     7.6      static final long COMPARE_WEIGHT   =  6;
     7.7 +    static final long CONST_WEIGHT     =  2;
     7.8      static final long CONTINUE_WEIGHT  =  1;
     7.9      static final long IF_WEIGHT        =  2;
    7.10      static final long LITERAL_WEIGHT   = 10;
    7.11 @@ -185,7 +186,7 @@
    7.12  
    7.13      @Override
    7.14      public Node leaveIdentNode(final IdentNode identNode) {
    7.15 -        weight += ACCESS_WEIGHT + identNode.getName().length() * 2;
    7.16 +        weight += ACCESS_WEIGHT;
    7.17          return identNode;
    7.18      }
    7.19  
    7.20 @@ -210,6 +211,11 @@
    7.21      @SuppressWarnings("rawtypes")
    7.22      @Override
    7.23      public boolean enterLiteralNode(final LiteralNode literalNode) {
    7.24 +        if (literalNode instanceof LiteralNode.PrimitiveLiteralNode) {
    7.25 +            weight += CONST_WEIGHT;
    7.26 +            return false;
    7.27 +        }
    7.28 +
    7.29          weight += LITERAL_WEIGHT;
    7.30  
    7.31          if (literalNode instanceof ArrayLiteralNode) {
     8.1 --- a/src/jdk/nashorn/internal/ir/debug/PrintVisitor.java	Fri Jun 02 15:28:52 2017 -0700
     8.2 +++ b/src/jdk/nashorn/internal/ir/debug/PrintVisitor.java	Fri Jun 30 23:59:34 2017 -0700
     8.3 @@ -397,7 +397,7 @@
     8.4  
     8.5      @Override
     8.6      public boolean enterVarNode(final VarNode varNode) {
     8.7 -        sb.append("var ");
     8.8 +        sb.append(varNode.isConst() ? "const " : varNode.isLet() ? "let " : "var ");
     8.9          varNode.getName().toString(sb, printTypes);
    8.10          printLocalVariableConversion(varNode.getName());
    8.11          final Node init = varNode.getInit();
     9.1 --- a/src/jdk/nashorn/internal/runtime/JSType.java	Fri Jun 02 15:28:52 2017 -0700
     9.2 +++ b/src/jdk/nashorn/internal/runtime/JSType.java	Fri Jun 30 23:59:34 2017 -0700
     9.3 @@ -457,6 +457,8 @@
     9.4              return toPrimitive((ScriptObject)obj, hint);
     9.5          } else if (isPrimitive(obj)) {
     9.6              return obj;
     9.7 +        } else if (hint == Number.class && obj instanceof Number) {
     9.8 +            return ((Number) obj).doubleValue();
     9.9          } else if (obj instanceof JSObject) {
    9.10              return toPrimitive((JSObject)obj, hint);
    9.11          } else if (obj instanceof StaticClass) {
    10.1 --- a/src/jdk/nashorn/internal/runtime/arrays/ArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    10.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/ArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    10.3 @@ -107,14 +107,13 @@
    10.4  
    10.5          @Override
    10.6          public ArrayData ensure(final long safeIndex) {
    10.7 -            if (safeIndex > 0L) {
    10.8 -                if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
    10.9 -                    return new SparseArrayData(this, safeIndex + 1);
   10.10 -                }
   10.11 -                //known to fit in int
   10.12 -                return toRealArrayData((int)safeIndex);
   10.13 -           }
   10.14 -           return this;
   10.15 +            assert safeIndex >= 0L;
   10.16 +            if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
   10.17 +                return new SparseArrayData(this, safeIndex + 1);
   10.18 +            }
   10.19 +            //known to fit in int
   10.20 +            return toRealArrayData((int)safeIndex);
   10.21 +
   10.22          }
   10.23  
   10.24          @Override
   10.25 @@ -133,8 +132,8 @@
   10.26          }
   10.27  
   10.28          @Override
   10.29 -        public void shiftLeft(final int by) {
   10.30 -            //nop, always empty or we wouldn't be of this class
   10.31 +        public ArrayData shiftLeft(final int by) {
   10.32 +            return this; //nop, always empty or we wouldn't be of this class
   10.33          }
   10.34  
   10.35          @Override
   10.36 @@ -451,13 +450,13 @@
   10.37      /**
   10.38       * Shift the array data left
   10.39       *
   10.40 -     * TODO: explore start at an index and not at zero, to make these operations
   10.41 -     * even faster. Offset everything from the index. Costs memory but is probably
   10.42 -     * worth it
   10.43 +     * TODO: This is used for Array.prototype.shift() which only shifts by 1,
   10.44 +     * so we might consider dropping the offset parameter.
   10.45       *
   10.46       * @param by offset to shift
   10.47 +     * @return New arraydata (or same)
   10.48       */
   10.49 -    public abstract void shiftLeft(final int by);
   10.50 +    public abstract ArrayData shiftLeft(final int by);
   10.51  
   10.52      /**
   10.53       * Shift the array right
    11.1 --- a/src/jdk/nashorn/internal/runtime/arrays/ArrayFilter.java	Fri Jun 02 15:28:52 2017 -0700
    11.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/ArrayFilter.java	Fri Jun 30 23:59:34 2017 -0700
    11.3 @@ -68,9 +68,10 @@
    11.4      }
    11.5  
    11.6      @Override
    11.7 -    public void shiftLeft(final int by) {
    11.8 +    public ArrayData shiftLeft(final int by) {
    11.9          underlying.shiftLeft(by);
   11.10          setLength(underlying.length());
   11.11 +        return this;
   11.12      }
   11.13  
   11.14      @Override
    12.1 --- a/src/jdk/nashorn/internal/runtime/arrays/ByteBufferArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    12.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/ByteBufferArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    12.3 @@ -82,7 +82,7 @@
    12.4      }
    12.5  
    12.6      @Override
    12.7 -    public void shiftLeft(final int by) {
    12.8 +    public ArrayData shiftLeft(final int by) {
    12.9          throw unsupported("shiftLeft");
   12.10      }
   12.11  
    13.1 --- a/src/jdk/nashorn/internal/runtime/arrays/DeletedArrayFilter.java	Fri Jun 02 15:28:52 2017 -0700
    13.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/DeletedArrayFilter.java	Fri Jun 30 23:59:34 2017 -0700
    13.3 @@ -76,9 +76,10 @@
    13.4      }
    13.5  
    13.6      @Override
    13.7 -    public void shiftLeft(final int by) {
    13.8 +    public ArrayData shiftLeft(final int by) {
    13.9          super.shiftLeft(by);
   13.10          deleted.shiftLeft(by, length());
   13.11 +        return this;
   13.12      }
   13.13  
   13.14      @Override
    14.1 --- a/src/jdk/nashorn/internal/runtime/arrays/DeletedRangeArrayFilter.java	Fri Jun 02 15:28:52 2017 -0700
    14.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/DeletedRangeArrayFilter.java	Fri Jun 30 23:59:34 2017 -0700
    14.3 @@ -101,10 +101,12 @@
    14.4      }
    14.5  
    14.6      @Override
    14.7 -    public void shiftLeft(final int by) {
    14.8 +    public ArrayData shiftLeft(final int by) {
    14.9          super.shiftLeft(by);
   14.10          lo = Math.max(0, lo - by);
   14.11          hi = Math.max(-1, hi - by);
   14.12 +
   14.13 +        return isEmpty() ? getUnderlying() : this;
   14.14      }
   14.15  
   14.16      @Override
    15.1 --- a/src/jdk/nashorn/internal/runtime/arrays/IntArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    15.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/IntArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    15.3 @@ -176,8 +176,15 @@
    15.4      }
    15.5  
    15.6      @Override
    15.7 -    public void shiftLeft(final int by) {
    15.8 -        System.arraycopy(array, by, array, 0, array.length - by);
    15.9 +    public ArrayData shiftLeft(final int by) {
   15.10 +        if (by >= length()) {
   15.11 +            shrink(0);
   15.12 +        } else {
   15.13 +            System.arraycopy(array, by, array, 0, array.length - by);
   15.14 +        }
   15.15 +        setLength(Math.max(0, length() - by));
   15.16 +
   15.17 +        return this;
   15.18      }
   15.19  
   15.20      @Override
    16.1 --- a/src/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    16.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    16.3 @@ -121,8 +121,14 @@
    16.4      }
    16.5  
    16.6      @Override
    16.7 -    public void shiftLeft(final int by) {
    16.8 -        System.arraycopy(array, by, array, 0, array.length - by);
    16.9 +    public ArrayData shiftLeft(final int by) {
   16.10 +        if (by >= length()) {
   16.11 +            shrink(0);
   16.12 +        } else {
   16.13 +            System.arraycopy(array, by, array, 0, array.length - by);
   16.14 +        }
   16.15 +        setLength(Math.max(0, length() - by));
   16.16 +        return this;
   16.17      }
   16.18  
   16.19      @Override
    17.1 --- a/src/jdk/nashorn/internal/runtime/arrays/ObjectArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    17.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/ObjectArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    17.3 @@ -98,8 +98,14 @@
    17.4      }
    17.5  
    17.6      @Override
    17.7 -    public void shiftLeft(final int by) {
    17.8 -        System.arraycopy(array, by, array, 0, array.length - by);
    17.9 +    public ArrayData shiftLeft(final int by) {
   17.10 +        if (by >= length()) {
   17.11 +            shrink(0);
   17.12 +        } else {
   17.13 +            System.arraycopy(array, by, array, 0, array.length - by);
   17.14 +        }
   17.15 +        setLength(Math.max(0, length() - by));
   17.16 +        return this;
   17.17      }
   17.18  
   17.19      @Override
    18.1 --- a/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    18.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    18.3 @@ -36,7 +36,8 @@
    18.4   * Handle arrays where the index is very large.
    18.5   */
    18.6  class SparseArrayData extends ArrayData {
    18.7 -    static final int MAX_DENSE_LENGTH = 1024 * 1024;
    18.8 +    /** Maximum size for dense arrays */
    18.9 +    static final int MAX_DENSE_LENGTH = 128 * 1024;
   18.10  
   18.11      /** Underlying array. */
   18.12      private ArrayData underlying;
   18.13 @@ -51,11 +52,11 @@
   18.14          this(underlying, length, new TreeMap<Long, Object>());
   18.15      }
   18.16  
   18.17 -    SparseArrayData(final ArrayData underlying, final long length, final TreeMap<Long, Object> sparseMap) {
   18.18 +    private SparseArrayData(final ArrayData underlying, final long length, final TreeMap<Long, Object> sparseMap) {
   18.19          super(length);
   18.20          assert underlying.length() <= length;
   18.21          this.underlying = underlying;
   18.22 -        this.maxDenseLength = Math.max(MAX_DENSE_LENGTH, underlying.length());
   18.23 +        this.maxDenseLength = underlying.length();
   18.24          this.sparseMap = sparseMap;
   18.25      }
   18.26  
   18.27 @@ -89,38 +90,49 @@
   18.28      }
   18.29  
   18.30      @Override
   18.31 -    public void shiftLeft(final int by) {
   18.32 -        underlying.shiftLeft(by);
   18.33 +    public ArrayData shiftLeft(final int by) {
   18.34 +        underlying = underlying.shiftLeft(by);
   18.35  
   18.36          final TreeMap<Long, Object> newSparseMap = new TreeMap<>();
   18.37  
   18.38          for (final Map.Entry<Long, Object> entry : sparseMap.entrySet()) {
   18.39              final long newIndex = entry.getKey().longValue() - by;
   18.40 -            if (newIndex < maxDenseLength) {
   18.41 -                underlying = underlying.set((int) newIndex, entry.getValue(), false);
   18.42 -            } else if (newIndex >= 0) {
   18.43 -                newSparseMap.put(Long.valueOf(newIndex), entry.getValue());
   18.44 +            if (newIndex >= 0) {
   18.45 +                if (newIndex < maxDenseLength) {
   18.46 +                    final long oldLength = underlying.length();
   18.47 +                    underlying = underlying.ensure(newIndex)
   18.48 +                            .set((int) newIndex, entry.getValue(), false)
   18.49 +                            .safeDelete(oldLength, newIndex - 1, false);
   18.50 +                } else {
   18.51 +                    newSparseMap.put(Long.valueOf(newIndex), entry.getValue());
   18.52 +                }
   18.53              }
   18.54          }
   18.55  
   18.56          sparseMap = newSparseMap;
   18.57          setLength(Math.max(length() - by, 0));
   18.58 +
   18.59 +        return sparseMap.isEmpty() ? underlying : this;
   18.60      }
   18.61  
   18.62      @Override
   18.63      public ArrayData shiftRight(final int by) {
   18.64          final TreeMap<Long, Object> newSparseMap = new TreeMap<>();
   18.65 +        // Move elements from underlying to sparse map if necessary
   18.66          final long len = underlying.length();
   18.67          if (len + by > maxDenseLength) {
   18.68 -            for (long i = maxDenseLength - by; i < len; i++) {
   18.69 +            // Length of underlying array after shrinking, before right-shifting
   18.70 +            final long tempLength = Math.max(0, maxDenseLength - by);
   18.71 +            for (long i = tempLength; i < len; i++) {
   18.72                  if (underlying.has((int) i)) {
   18.73                      newSparseMap.put(Long.valueOf(i + by), underlying.getObject((int) i));
   18.74                  }
   18.75              }
   18.76 -            underlying = underlying.shrink((int) (maxDenseLength - by));
   18.77 +            underlying = underlying.shrink((int) tempLength);
   18.78 +            underlying.setLength(tempLength);
   18.79          }
   18.80  
   18.81 -        underlying.shiftRight(by);
   18.82 +        underlying = underlying.shiftRight(by);
   18.83  
   18.84          for (final Map.Entry<Long, Object> entry : sparseMap.entrySet()) {
   18.85              final long newIndex = entry.getKey().longValue() + by;
   18.86 @@ -135,14 +147,6 @@
   18.87  
   18.88      @Override
   18.89      public ArrayData ensure(final long safeIndex) {
   18.90 -        // Usually #ensure only needs to be called if safeIndex is greater or equal current length.
   18.91 -        // SparseArrayData is an exception as an index smaller than our current length may still
   18.92 -        // exceed the underlying ArrayData's capacity. Because of this, SparseArrayData invokes
   18.93 -        // its ensure method internally in various places where other ArrayData subclasses don't,
   18.94 -        // making it safe for outside uses to only call ensure(safeIndex) if safeIndex >= length.
   18.95 -        if (safeIndex < maxDenseLength && underlying.length() <= safeIndex) {
   18.96 -            underlying = underlying.ensure(safeIndex);
   18.97 -        }
   18.98          if (safeIndex >= length()) {
   18.99              setLength(safeIndex + 1);
  18.100          }
  18.101 @@ -167,8 +171,7 @@
  18.102      public ArrayData set(final int index, final Object value, final boolean strict) {
  18.103          if (index >= 0 && index < maxDenseLength) {
  18.104              final long oldLength = underlying.length();
  18.105 -            ensure(index);
  18.106 -            underlying = underlying.set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.107 +            underlying = underlying.ensure(index).set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.108              setLength(Math.max(underlying.length(), length()));
  18.109          } else {
  18.110              final Long longIndex = indexToKey(index);
  18.111 @@ -183,8 +186,7 @@
  18.112      public ArrayData set(final int index, final int value, final boolean strict) {
  18.113          if (index >= 0 && index < maxDenseLength) {
  18.114              final long oldLength = underlying.length();
  18.115 -            ensure(index);
  18.116 -            underlying = underlying.set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.117 +            underlying = underlying.ensure(index).set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.118              setLength(Math.max(underlying.length(), length()));
  18.119          } else {
  18.120              final Long longIndex = indexToKey(index);
  18.121 @@ -198,8 +200,7 @@
  18.122      public ArrayData set(final int index, final double value, final boolean strict) {
  18.123          if (index >= 0 && index < maxDenseLength) {
  18.124              final long oldLength = underlying.length();
  18.125 -            ensure(index);
  18.126 -            underlying = underlying.set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.127 +            underlying = underlying.ensure(index).set(index, value, strict).safeDelete(oldLength, index - 1, strict);
  18.128              setLength(Math.max(underlying.length(), length()));
  18.129          } else {
  18.130              final Long longIndex = indexToKey(index);
    19.1 --- a/src/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java	Fri Jun 02 15:28:52 2017 -0700
    19.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java	Fri Jun 30 23:59:34 2017 -0700
    19.3 @@ -98,7 +98,7 @@
    19.4      }
    19.5  
    19.6      @Override
    19.7 -    public void shiftLeft(final int by) {
    19.8 +    public ArrayData shiftLeft(final int by) {
    19.9          throw new UnsupportedOperationException();
   19.10      }
   19.11  
    20.1 --- a/src/jdk/nashorn/internal/runtime/arrays/UndefinedArrayFilter.java	Fri Jun 02 15:28:52 2017 -0700
    20.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/UndefinedArrayFilter.java	Fri Jun 30 23:59:34 2017 -0700
    20.3 @@ -77,9 +77,10 @@
    20.4      }
    20.5  
    20.6      @Override
    20.7 -    public void shiftLeft(final int by) {
    20.8 +    public ArrayData shiftLeft(final int by) {
    20.9          super.shiftLeft(by);
   20.10          undefined.shiftLeft(by, length());
   20.11 +        return this;
   20.12      }
   20.13  
   20.14      @Override
    21.1 --- a/src/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java	Fri Jun 02 15:28:52 2017 -0700
    21.2 +++ b/src/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java	Fri Jun 30 23:59:34 2017 -0700
    21.3 @@ -39,9 +39,13 @@
    21.4  import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker;
    21.5  import jdk.internal.dynalink.support.CallSiteDescriptorFactory;
    21.6  import jdk.nashorn.api.scripting.JSObject;
    21.7 +import jdk.nashorn.api.scripting.ScriptObjectMirror;
    21.8  import jdk.nashorn.internal.lookup.MethodHandleFactory;
    21.9  import jdk.nashorn.internal.lookup.MethodHandleFunctionality;
   21.10 +import jdk.nashorn.internal.runtime.Context;
   21.11  import jdk.nashorn.internal.runtime.JSType;
   21.12 +import jdk.nashorn.internal.runtime.ScriptRuntime;
   21.13 +import jdk.nashorn.internal.objects.Global;
   21.14  
   21.15  /**
   21.16   * A Dynalink linker to handle web browser built-in JS (DOM etc.) objects as well
   21.17 @@ -141,9 +145,9 @@
   21.18      }
   21.19  
   21.20      private static GuardedInvocation findCallMethod(final CallSiteDescriptor desc) {
   21.21 -        MethodHandle mh = JSOBJECT_CALL;
   21.22 +        MethodHandle mh = NashornCallSiteDescriptor.isScope(desc)? JSOBJECT_SCOPE_CALL : JSOBJECT_CALL;
   21.23          if (NashornCallSiteDescriptor.isApplyToCall(desc)) {
   21.24 -            mh = MH.insertArguments(JSOBJECT_CALL_TO_APPLY, 0, JSOBJECT_CALL);
   21.25 +            mh = MH.insertArguments(JSOBJECT_CALL_TO_APPLY, 0, mh);
   21.26          }
   21.27          final MethodType type = desc.getMethodType();
   21.28          mh = type.parameterType(type.parameterCount() - 1) == Object[].class ?
   21.29 @@ -171,6 +175,8 @@
   21.30              final int index = getIndex((Number)key);
   21.31              if (index > -1) {
   21.32                  return ((JSObject)jsobj).getSlot(index);
   21.33 +            } else {
   21.34 +                return ((JSObject)jsobj).getMember(JSType.toString(key));
   21.35              }
   21.36          } else if (isString(key)) {
   21.37              final String name = key.toString();
   21.38 @@ -188,7 +194,12 @@
   21.39          if (key instanceof Integer) {
   21.40              ((JSObject)jsobj).setSlot((Integer)key, value);
   21.41          } else if (key instanceof Number) {
   21.42 -            ((JSObject)jsobj).setSlot(getIndex((Number)key), value);
   21.43 +            final int index = getIndex((Number)key);
   21.44 +            if (index > -1) {
   21.45 +                ((JSObject)jsobj).setSlot(index, value);
   21.46 +            } else {
   21.47 +                ((JSObject)jsobj).setMember(JSType.toString(key), value);
   21.48 +            }
   21.49          } else if (isString(key)) {
   21.50              ((JSObject)jsobj).setMember(key.toString(), value);
   21.51          }
   21.52 @@ -214,6 +225,19 @@
   21.53          }
   21.54      }
   21.55  
   21.56 +    // This is used when a JSObject is called as scope call to do undefined -> Global this translation.
   21.57 +    @SuppressWarnings("unused")
   21.58 +    private static Object jsObjectScopeCall(final JSObject jsObj, final Object thiz, final Object[] args) {
   21.59 +        final Object modifiedThiz;
   21.60 +        if (thiz == ScriptRuntime.UNDEFINED && !jsObj.isStrictFunction()) {
   21.61 +            final Global global = Context.getGlobal();
   21.62 +            modifiedThiz = ScriptObjectMirror.wrap(global, global);
   21.63 +        } else {
   21.64 +            modifiedThiz = thiz;
   21.65 +        }
   21.66 +        return jsObj.call(modifiedThiz, args);
   21.67 +    }
   21.68 +
   21.69      private static final MethodHandleFunctionality MH = MethodHandleFactory.getFunctionality();
   21.70  
   21.71      // method handles of the current class
   21.72 @@ -225,6 +249,7 @@
   21.73      private static final MethodHandle JSOBJECT_GETMEMBER     = findJSObjectMH_V("getMember", Object.class, String.class);
   21.74      private static final MethodHandle JSOBJECT_SETMEMBER     = findJSObjectMH_V("setMember", Void.TYPE, String.class, Object.class);
   21.75      private static final MethodHandle JSOBJECT_CALL          = findJSObjectMH_V("call", Object.class, Object.class, Object[].class);
   21.76 +    private static final MethodHandle JSOBJECT_SCOPE_CALL    = findOwnMH_S("jsObjectScopeCall", Object.class, JSObject.class, Object.class, Object[].class);
   21.77      private static final MethodHandle JSOBJECT_CALL_TO_APPLY = findOwnMH_S("callToApply", Object.class, MethodHandle.class, JSObject.class, Object.class, Object[].class);
   21.78      private static final MethodHandle JSOBJECT_NEW           = findJSObjectMH_V("newObject", Object.class, Object[].class);
   21.79  
    22.1 --- a/src/jdk/nashorn/internal/runtime/linker/NashornLinker.java	Fri Jun 02 15:28:52 2017 -0700
    22.2 +++ b/src/jdk/nashorn/internal/runtime/linker/NashornLinker.java	Fri Jun 30 23:59:34 2017 -0700
    22.3 @@ -251,15 +251,15 @@
    22.4      @Override
    22.5      public Comparison compareConversion(final Class<?> sourceType, final Class<?> targetType1, final Class<?> targetType2) {
    22.6          if(sourceType == NativeArray.class) {
    22.7 -            // Prefer lists, as they're less costly to create than arrays.
    22.8 -            if(isList(targetType1)) {
    22.9 -                if(!isList(targetType2)) {
   22.10 +            // Prefer those types we can convert to with just a wrapper (cheaper than Java array creation).
   22.11 +            if(isArrayPreferredTarget(targetType1)) {
   22.12 +                if(!isArrayPreferredTarget(targetType2)) {
   22.13                      return Comparison.TYPE_1_BETTER;
   22.14                  }
   22.15 -            } else if(isList(targetType2)) {
   22.16 +            } else if(isArrayPreferredTarget(targetType2)) {
   22.17                  return Comparison.TYPE_2_BETTER;
   22.18              }
   22.19 -            // Then prefer arrays
   22.20 +            // Then prefer Java arrays
   22.21              if(targetType1.isArray()) {
   22.22                  if(!targetType2.isArray()) {
   22.23                      return Comparison.TYPE_1_BETTER;
   22.24 @@ -281,8 +281,8 @@
   22.25          return Comparison.INDETERMINATE;
   22.26      }
   22.27  
   22.28 -    private static boolean isList(final Class<?> clazz) {
   22.29 -        return clazz == List.class || clazz == Deque.class;
   22.30 +    private static boolean isArrayPreferredTarget(final Class<?> clazz) {
   22.31 +        return clazz == List.class || clazz == Collection.class || clazz == Queue.class || clazz == Deque.class;
   22.32      }
   22.33  
   22.34      private static final MethodHandle IS_SCRIPT_OBJECT = Guards.isInstance(ScriptObject.class, MH.type(Boolean.TYPE, Object.class));
    23.1 --- a/test/script/basic/JDK-8030182_2.js	Fri Jun 02 15:28:52 2017 -0700
    23.2 +++ b/test/script/basic/JDK-8030182_2.js	Fri Jun 30 23:59:34 2017 -0700
    23.3 @@ -31,7 +31,7 @@
    23.4  var str = "";
    23.5  
    23.6  // large code to force splitting
    23.7 -for (i = 0; i < 1000; ++i)
    23.8 +for (i = 0; i < 2000; ++i)
    23.9      str +="o = new Object()\n";
   23.10  
   23.11  str +="g()";
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/test/script/basic/JDK-8163945.js	Fri Jun 30 23:59:34 2017 -0700
    24.3 @@ -0,0 +1,48 @@
    24.4 +/*
    24.5 + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
    24.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.7 + *
    24.8 + * This code is free software; you can redistribute it and/or modify it
    24.9 + * under the terms of the GNU General Public License version 2 only, as
   24.10 + * published by the Free Software Foundation.
   24.11 + *
   24.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   24.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   24.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   24.15 + * version 2 for more details (a copy is included in the LICENSE file that
   24.16 + * accompanied this code).
   24.17 + *
   24.18 + * You should have received a copy of the GNU General Public License version
   24.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   24.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   24.21 + *
   24.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   24.23 + * or visit www.oracle.com if you need additional information or have any
   24.24 + * questions.
   24.25 + */
   24.26 +
   24.27 +/**
   24.28 + * JDK-8163945: Honor Number type hint in toPrimitive on Numbers
   24.29 + *
   24.30 + * @test
   24.31 + * @run
   24.32 + */
   24.33 +
   24.34 +function assertLessThan(a, b) {
   24.35 +    Assert.assertTrue(a < b);
   24.36 +    Assert.assertTrue(a <= b);
   24.37 +    Assert.assertFalse(a >= b);
   24.38 +    Assert.assertFalse(a > b);
   24.39 +}
   24.40 +
   24.41 +assertLessThan(new java.lang.Long(2), new java.lang.Long(10));
   24.42 +assertLessThan(new java.lang.Long(2), 10);
   24.43 +assertLessThan(2, new java.lang.Long(10));
   24.44 +
   24.45 +assertLessThan(new java.math.BigInteger(2), new java.math.BigInteger(10));
   24.46 +assertLessThan(new java.math.BigInteger(2), 10);
   24.47 +assertLessThan(2, new java.math.BigInteger(10));
   24.48 +
   24.49 +assertLessThan(new java.util.concurrent.atomic.AtomicInteger(2), new java.util.concurrent.atomic.AtomicInteger(10));
   24.50 +assertLessThan(new java.util.concurrent.atomic.AtomicInteger(2), 10);
   24.51 +assertLessThan(2, new java.util.concurrent.atomic.AtomicInteger(10));
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/test/script/basic/JDK-8166902.js	Fri Jun 30 23:59:34 2017 -0700
    25.3 @@ -0,0 +1,43 @@
    25.4 +/*
    25.5 + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
    25.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.7 + * 
    25.8 + * This code is free software; you can redistribute it and/or modify it
    25.9 + * under the terms of the GNU General Public License version 2 only, as
   25.10 + * published by the Free Software Foundation.
   25.11 + * 
   25.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   25.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   25.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   25.15 + * version 2 for more details (a copy is included in the LICENSE file that
   25.16 + * accompanied this code).
   25.17 + * 
   25.18 + * You should have received a copy of the GNU General Public License version
   25.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   25.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   25.21 + * 
   25.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   25.23 + * or visit www.oracle.com if you need additional information or have any
   25.24 + * questions.
   25.25 + */
   25.26 +
   25.27 +/**
   25.28 + * JDK-8166902: Nested object literal property maps not reset in optimistic recompilation
   25.29 + *
   25.30 + * @test
   25.31 + * @run
   25.32 + */
   25.33 +
   25.34 +var o = {
   25.35 +    a: "A",
   25.36 +    b: "B"
   25.37 +};
   25.38 +
   25.39 +var m = {
   25.40 +    x: { z: o.a },
   25.41 +    y: o.b
   25.42 +};
   25.43 +
   25.44 +Assert.assertEquals(m.x.z, "A");
   25.45 +Assert.assertEquals(m.y, "B");
   25.46 +
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/test/script/basic/JDK-8170594.js	Fri Jun 30 23:59:34 2017 -0700
    26.3 @@ -0,0 +1,45 @@
    26.4 +/*
    26.5 + * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
    26.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.7 + * 
    26.8 + * This code is free software; you can redistribute it and/or modify it
    26.9 + * under the terms of the GNU General Public License version 2 only, as
   26.10 + * published by the Free Software Foundation.
   26.11 + * 
   26.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   26.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   26.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   26.15 + * version 2 for more details (a copy is included in the LICENSE file that
   26.16 + * accompanied this code).
   26.17 + * 
   26.18 + * You should have received a copy of the GNU General Public License version
   26.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   26.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   26.21 + * 
   26.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   26.23 + * or visit www.oracle.com if you need additional information or have any
   26.24 + * questions.
   26.25 + */
   26.26 +
   26.27 +/**
   26.28 + * JDK-8170594: >>>=0 generates invalid bytecode for BaseNode LHS
   26.29 + *
   26.30 + * @test
   26.31 + * @run
   26.32 + */
   26.33 +
   26.34 +var obj1 = {x: "100"};
   26.35 +(function (o, p) {
   26.36 + if (p) {
   26.37 +   o.x >>>= 0;
   26.38 + }
   26.39 +})(obj1, true)
   26.40 +Assert.assertTrue(obj1.x === 100)
   26.41 +
   26.42 +var obj2 = ["100"];
   26.43 +(function (o, p) {
   26.44 + if (p) {
   26.45 +   o[0] >>>= 0;
   26.46 + }
   26.47 +})(obj2, true)
   26.48 +Assert.assertTrue(obj2[0] === 100)
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/test/script/basic/JDK-8171219.js	Fri Jun 30 23:59:34 2017 -0700
    27.3 @@ -0,0 +1,57 @@
    27.4 +/*
    27.5 + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
    27.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.7 + * 
    27.8 + * This code is free software; you can redistribute it and/or modify it
    27.9 + * under the terms of the GNU General Public License version 2 only, as
   27.10 + * published by the Free Software Foundation.
   27.11 + * 
   27.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   27.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   27.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   27.15 + * version 2 for more details (a copy is included in the LICENSE file that
   27.16 + * accompanied this code).
   27.17 + * 
   27.18 + * You should have received a copy of the GNU General Public License version
   27.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   27.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   27.21 + * 
   27.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   27.23 + * or visit www.oracle.com if you need additional information or have any
   27.24 + * questions.
   27.25 + */
   27.26 +
   27.27 +/**
   27.28 + * JDK-8171219: Missing checks in sparse array shift() implementation
   27.29 + *
   27.30 + * @test
   27.31 + * @run
   27.32 + */
   27.33 +
   27.34 +var a = [];
   27.35 +a[1048577] = 1;
   27.36 +a.shift();
   27.37 +a[1] = 2;
   27.38 +a.shift();
   27.39 +var ka = Object.keys(a);
   27.40 +Assert.assertTrue(ka.length === 2);
   27.41 +Assert.assertTrue(ka[0] === '0');
   27.42 +Assert.assertTrue(ka[1] === '1048575');
   27.43 +Assert.assertTrue(a.length === 1048576);
   27.44 +Assert.assertTrue(a[0] === 2);
   27.45 +Assert.assertTrue(a[1048575] = 1);
   27.46 +
   27.47 +var b = [];
   27.48 +b[1048577] = 1;
   27.49 +b.unshift(2);
   27.50 +b.shift();
   27.51 +b[1] = 3;
   27.52 +b.shift();
   27.53 +var kb = Object.keys(b);
   27.54 +Assert.assertTrue(kb.length === 2);
   27.55 +Assert.assertTrue(kb[0] === '0');
   27.56 +Assert.assertTrue(kb[1] === '1048576');
   27.57 +Assert.assertTrue(b.length === 1048577);
   27.58 +Assert.assertTrue(b[0] === 3);
   27.59 +Assert.assertTrue(b[1048576] = 1);
   27.60 +
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/test/script/basic/JDK-8171849.js	Fri Jun 30 23:59:34 2017 -0700
    28.3 @@ -0,0 +1,47 @@
    28.4 +/*
    28.5 + * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
    28.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.7 + * 
    28.8 + * This code is free software; you can redistribute it and/or modify it
    28.9 + * under the terms of the GNU General Public License version 2 only, as
   28.10 + * published by the Free Software Foundation.
   28.11 + * 
   28.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   28.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   28.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   28.15 + * version 2 for more details (a copy is included in the LICENSE file that
   28.16 + * accompanied this code).
   28.17 + * 
   28.18 + * You should have received a copy of the GNU General Public License version
   28.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   28.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   28.21 + * 
   28.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   28.23 + * or visit www.oracle.com if you need additional information or have any
   28.24 + * questions.
   28.25 + */
   28.26 +
   28.27 +/**
   28.28 + * JDK-8171849: Collection and Queue conversions not prioritized for Arrays
   28.29 + *
   28.30 + * @test
   28.31 + * @run
   28.32 + */
   28.33 +
   28.34 +var acp = new (Java.type("jdk.nashorn.test.models.ArrayConversionPreferences"))
   28.35 +
   28.36 +var a = [1, "", {}]
   28.37 +
   28.38 +Assert.assertTrue(acp.testCollectionOverMap(a))
   28.39 +Assert.assertTrue(acp.testCollectionOverArray(a))
   28.40 +Assert.assertTrue(acp.testListOverMap(a))
   28.41 +Assert.assertTrue(acp.testListOverArray(a))
   28.42 +Assert.assertTrue(acp.testListOverCollection(a))
   28.43 +Assert.assertTrue(acp.testQueueOverMap(a))
   28.44 +Assert.assertTrue(acp.testQueueOverArray(a))
   28.45 +Assert.assertTrue(acp.testQueueOverCollection(a))
   28.46 +Assert.assertTrue(acp.testDequeOverMap(a))
   28.47 +Assert.assertTrue(acp.testDequeOverArray(a))
   28.48 +Assert.assertTrue(acp.testDequeOverCollection(a))
   28.49 +Assert.assertTrue(acp.testDequeOverQueue(a))
   28.50 +Assert.assertTrue(acp.testArrayOverMap(a))
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/test/script/basic/JDK-8176511.js	Fri Jun 30 23:59:34 2017 -0700
    29.3 @@ -0,0 +1,50 @@
    29.4 +/*
    29.5 + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
    29.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.7 + * 
    29.8 + * This code is free software; you can redistribute it and/or modify it
    29.9 + * under the terms of the GNU General Public License version 2 only, as
   29.10 + * published by the Free Software Foundation.
   29.11 + * 
   29.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   29.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   29.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   29.15 + * version 2 for more details (a copy is included in the LICENSE file that
   29.16 + * accompanied this code).
   29.17 + * 
   29.18 + * You should have received a copy of the GNU General Public License version
   29.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   29.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   29.21 + * 
   29.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   29.23 + * or visit www.oracle.com if you need additional information or have any
   29.24 + * questions.
   29.25 + */
   29.26 +
   29.27 +/**
   29.28 + * JDK-8176511: JSObject property access is broken for numeric keys outside the int range
   29.29 + *
   29.30 + * @test
   29.31 + * @run
   29.32 + */
   29.33 +
   29.34 +
   29.35 +var reassignWithNewGlobal = loadWithNewGlobal({
   29.36 +    script: '(function (o, i) { o[i] = o[i]; })', name: 'internal.js'
   29.37 +
   29.38 +});
   29.39 +
   29.40 +function test(i) {
   29.41 +    var o = {};
   29.42 +    o[i] = true;
   29.43 +    var before = JSON.stringify(o);
   29.44 +    reassignWithNewGlobal(o, i);
   29.45 +    var after = JSON.stringify(o);
   29.46 +    Assert.assertEquals(before, after);
   29.47 +}
   29.48 +
   29.49 +test(-2147483649);
   29.50 +test(-2147483648);
   29.51 +test(2147483647);
   29.52 +test(2147483648);
   29.53 +
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/test/script/basic/es6/JDK-8168373.js	Fri Jun 30 23:59:34 2017 -0700
    30.3 @@ -0,0 +1,44 @@
    30.4 +/*
    30.5 + * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
    30.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    30.7 + * 
    30.8 + * This code is free software; you can redistribute it and/or modify it
    30.9 + * under the terms of the GNU General Public License version 2 only, as
   30.10 + * published by the Free Software Foundation.
   30.11 + * 
   30.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   30.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   30.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   30.15 + * version 2 for more details (a copy is included in the LICENSE file that
   30.16 + * accompanied this code).
   30.17 + * 
   30.18 + * You should have received a copy of the GNU General Public License version
   30.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   30.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   30.21 + * 
   30.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   30.23 + * or visit www.oracle.com if you need additional information or have any
   30.24 + * questions.
   30.25 + */
   30.26 +
   30.27 +/**
   30.28 + * JDK-8168373: don't emit conversions for symbols outside their lexical scope
   30.29 + *
   30.30 + * @test
   30.31 + * @run
   30.32 + * @option --language=es6
   30.33 + */
   30.34 +
   30.35 +function p() { return false } // "predicate"
   30.36 +function r(x) { return x } // "read"
   30.37 +
   30.38 +(function() {
   30.39 +  try { // Try creates control flow edges from assignments into catch blocks.
   30.40 +    // Lexically scoped, never read int variable (undefined at catch block) but still with a cf edge into catch block.
   30.41 +    // Since it's never read, it's not written either (Nashorn optimizes some dead writes).
   30.42 +    let x = 0; 
   30.43 +    if (p()) { throw {}; } // We need `p()` so this block doesn't get optimized away, for possibility of a `throw` 
   30.44 +    x = 0.0; // change the type of x to double
   30.45 +    r(x); // read x otherwise it's optimized away
   30.46 +  } catch (e) {} // under the bug, "throw" will try to widen unwritten int x to double for here and cause a verifier error
   30.47 +})()
    31.1 --- a/test/src/jdk/nashorn/api/scripting/test/ScriptObjectMirrorTest.java	Fri Jun 02 15:28:52 2017 -0700
    31.2 +++ b/test/src/jdk/nashorn/api/scripting/test/ScriptObjectMirrorTest.java	Fri Jun 30 23:59:34 2017 -0700
    31.3 @@ -41,6 +41,7 @@
    31.4  import javax.script.ScriptEngine;
    31.5  import javax.script.ScriptEngineManager;
    31.6  import javax.script.ScriptException;
    31.7 +import jdk.nashorn.api.scripting.AbstractJSObject;
    31.8  import jdk.nashorn.api.scripting.JSObject;
    31.9  import jdk.nashorn.api.scripting.ScriptObjectMirror;
   31.10  import org.testng.annotations.Test;
   31.11 @@ -386,4 +387,41 @@
   31.12          assertTrue(func.isFunction());
   31.13          assertEquals(func.call(e.eval("this"), "hello"), "hello world");
   31.14      }
   31.15 +
   31.16 +    // @bug 8170565: JSObject call() is passed undefined for the argument 'thiz'
   31.17 +    @Test
   31.18 +    public void jsObjectThisTest() throws Exception {
   31.19 +        final ScriptEngineManager engineManager = new ScriptEngineManager();
   31.20 +        final ScriptEngine e = engineManager.getEngineByName("nashorn");
   31.21 +        e.put("func", new AbstractJSObject() {
   31.22 +            @Override
   31.23 +            public boolean isFunction() { return true; }
   31.24 +
   31.25 +            @Override
   31.26 +            public Object call(Object thiz, Object...args) {
   31.27 +                return thiz;
   31.28 +            }
   31.29 +        });
   31.30 +
   31.31 +        assertTrue((boolean)e.eval("func() === this"));
   31.32 +
   31.33 +        // check that there is no blind undefined->Global translation!
   31.34 +        assertTrue((boolean)e.eval("typeof(Function.prototype.call.call(func, undefined)) == 'undefined'"));
   31.35 +
   31.36 +        // make sure that strict functions don't get translated this for scope calls!
   31.37 +        e.put("sfunc", new AbstractJSObject() {
   31.38 +            @Override
   31.39 +            public boolean isFunction() { return true; }
   31.40 +
   31.41 +            @Override
   31.42 +            public boolean isStrictFunction() { return true; }
   31.43 +
   31.44 +            @Override
   31.45 +            public Object call(Object thiz, Object...args) {
   31.46 +                return thiz;
   31.47 +            }
   31.48 +        });
   31.49 +
   31.50 +        assertTrue((boolean)e.eval("typeof sfunc() == 'undefined'"));
   31.51 +    }
   31.52  }
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/test/src/jdk/nashorn/test/models/ArrayConversionPreferences.java	Fri Jun 30 23:59:34 2017 -0700
    32.3 @@ -0,0 +1,74 @@
    32.4 +/*
    32.5 + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
    32.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.7 + *
    32.8 + * This code is free software; you can redistribute it and/or modify it
    32.9 + * under the terms of the GNU General Public License version 2 only, as
   32.10 + * published by the Free Software Foundation.  Oracle designates this
   32.11 + * particular file as subject to the "Classpath" exception as provided
   32.12 + * by Oracle in the LICENSE file that accompanied this code.
   32.13 + *
   32.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   32.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   32.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   32.17 + * version 2 for more details (a copy is included in the LICENSE file that
   32.18 + * accompanied this code).
   32.19 + *
   32.20 + * You should have received a copy of the GNU General Public License version
   32.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   32.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   32.23 + *
   32.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   32.25 + * or visit www.oracle.com if you need additional information or have any
   32.26 + * questions.
   32.27 + */
   32.28 +
   32.29 +package jdk.nashorn.test.models;
   32.30 +
   32.31 +import java.util.Collection;
   32.32 +import java.util.Deque;
   32.33 +import java.util.List;
   32.34 +import java.util.Map;
   32.35 +import java.util.Queue;
   32.36 +
   32.37 +public class ArrayConversionPreferences {
   32.38 +    public boolean testCollectionOverMap(final Collection x) { return true; }
   32.39 +    public boolean testCollectionOverMap(final Map x) { return false; }
   32.40 +
   32.41 +    public boolean testCollectionOverArray(final Collection x) { return true; }
   32.42 +    public boolean testCollectionOverArray(final Object[] x) { return false; }
   32.43 +
   32.44 +    public boolean testListOverMap(final List x) { return true; }
   32.45 +    public boolean testListOverMap(final Map x) { return false; }
   32.46 +
   32.47 +    public boolean testListOverArray(final List x) { return true; }
   32.48 +    public boolean testListOverArray(final Object[] x) { return false; }
   32.49 +
   32.50 +    public boolean testListOverCollection(final List x) { return true; }
   32.51 +    public boolean testListOverCollection(final Collection x) { return false; }
   32.52 +
   32.53 +    public boolean testQueueOverMap(final Queue x) { return true; }
   32.54 +    public boolean testQueueOverMap(final Map x) { return false; }
   32.55 +
   32.56 +    public boolean testQueueOverArray(final Queue x) { return true; }
   32.57 +    public boolean testQueueOverArray(final Object[] x) { return false; }
   32.58 +
   32.59 +    public boolean testQueueOverCollection(final Queue x) { return true; }
   32.60 +    public boolean testQueueOverCollection(final Collection x) { return false; }
   32.61 +
   32.62 +    public boolean testDequeOverMap(final Deque x) { return true; }
   32.63 +    public boolean testDequeOverMap(final Map x) { return false; }
   32.64 +
   32.65 +    public boolean testDequeOverArray(final Deque x) { return true; }
   32.66 +    public boolean testDequeOverArray(final Object[] x) { return false; }
   32.67 +
   32.68 +    public boolean testDequeOverCollection(final Deque x) { return true; }
   32.69 +    public boolean testDequeOverCollection(final Collection x) { return false; }
   32.70 +
   32.71 +    public boolean testDequeOverQueue(final Deque x) { return true; }
   32.72 +    public boolean testDequeOverQueue(final Queue x) { return false; }
   32.73 +
   32.74 +    public boolean testArrayOverMap(final Object[] x) { return true; }
   32.75 +    public boolean testArrayOverMap(final Map x) { return false; }
   32.76 +}
   32.77 +

mercurial